Android Apps Testing in 2019 Ivan Katunou
About myself • Software Engineer in Test at Flo Health • 12 years of experience in IT, 9 years in automated testing • Organizer of Minsk Test Automation Meetup
Agenda 1. Introduction 2. Mobile Testing Basics 3. Infrastructure 4. Test Automation 5. Test Automation at Flo Health 6. Demo
http://www.wallpapermaiden.com/wallpaper/20209/futuristic-city-towers-buildings-digital-art-sci-fi/download/1920x1080 2014
https://1366x768wallpaper.com/games/takkar-mammoths-far-cry-primal-wallpaper--LWNW 2019
Mobile Team Android Developer QA Automation EngineerQA Engineer https://www.flaticon.com/categories/people
Agenda 1. Introduction 2. Mobile Testing Basics 3. Infrastructure 4. Test Automation 5. Test Automation at Flo Health 6. Demo
Mobile App Testing
Mind maps. Mnemonics https://badootech.badoo.com/mind-maps-for-fast-and-effective-testing-30aab6bea6f4
Official Documentation 1. Test apps on Android 2. Android Testing Codelab - Types of tests - Tools - Samples - Test project
Backend https://blog.aspiresys.com/digital/mobility/what-is-mobile-backend-as-a-service-mbaas/
Agenda 1. Introduction 2. Mobile Testing Basics 3. Infrastructure 4. Test Automation 5. Test Automation at Flo Health 6. Demo
Tools adb logcat pidcat
Developer Options
Tools adb logcat Developer options pidcat
Android Profiler
Tools adb logcat Developer options Android Profiler pidcat
Charles
Fiddler
Tools adb logcat Developer options Android Profiler Charles Fiddler pidcat
Crashlytics
Tools adb logcat Developer options Android Profiler Charles Fiddler Crashlytics pidcat
HockeyApp
Tools adb logcat Developer options Android Profiler Charles Fiddler Crashlytics HockeyApp pidcat
Emulator
Genymotion https://www.genymotion.com/
Emulator + Docker
Local Device Farm
Cloud Based Solutions
Agenda 1. Introduction 2. Mobile Testing Basics 3. Infrastructure 4. Test Automation 5. Test Automation at Flo Health 6. Demo
Mobile Test Pyramid https://developer.android.com/training/testing/fundamentals
Unit and Integration Levels https://developer.android.com/training/testing/fundamentals
Unit and Integration Levels
UI Test Automation https://developer.android.com/training/testing/fundamentals
UI Test Automation https://developer.android.com/training/testing/fundamentals
Criteria http://detodounpocofrl.blogspot.com/2016/05/los-famosos-checklist.html
Cross Platform Test Automation https://lab3.co.nz/native/
Agenda 1. Introduction 2. Mobile Testing Basics 3. Infrastructure 4. Test Automation 5. Test Automation at Flo Health 6. Demo
Tools Evaluation • Past experience (Appium, Robotium) • Real devices and emulators • Support • Java-based tests, additional libraries support • Speed of execution • Does not require instrumentation • Both local and cloud executions • Developers can write UI tests
Tools Evaluation
Espresso
Espresso
Android Test Orchestrator • Run each test in it’s own instrumentation process • Clear app state between tests
Kakao
Barista
Recent news from Google https://www.youtube.com/watch?v=wYMIadv9iF8
Android Test Part of Jetpack Common API for each level Run Espresso tests using Robolectric
Project Nitrogen Standalone binary written in Kotlin Unified test runner (including sharding, parallel and multidevice execution) youtu.be/-_kZC29sWAo Device management (simulated, virtual, real, device labs) Improves reporting and debugging Works with any build system Supports host and device plugins
Agenda 1. Introduction 2. Mobile Testing Basics 3. Infrastructure 4. Test Automation 5. Demo
Overall Results • POC development took less than one day • Started with covering manual QA acceptance tests • Requires periodic maintenance • Can be used with good old page object • Can reuse resources from the Android app project • Developing tests in Kotlin is a pleasure • Next steps: increase coverage
UI Bugs Experiment Stream A B C Total bugs 35 104 102 UI bugs 2 2 3 UI bugs/Total bugs ~6% ~2% ~3% Severity: 5 – Medium, 2 - Low
github.com/NavitaK/mobile-testing
Thank You! Any Questions?
Contacts • Ivan Katunou, Software Engineer in Test at Flo Health • ivan.katunou@gmail.com • @IvanKatunou (Telegram) • +375 29 259 56 42 (Viber, GSM)

Android Apps Testing in 2019