└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Mobile testing 2 | 3 | This is a curated list of mobile testing related resources. 4 | 5 | # Table of contents 6 | 7 | * [Books](#books) 8 | * [Mind maps, mnemonics](#mind-maps-mnemonics) 9 | * **Android** 10 | * [Official documentation](#official-documentation-android) 11 | * [Official presentations](#official-presentations-android) 12 | * [Tools](#tools-android) 13 | * [Virtualization](#virtualization-android) 14 | * [Local device farm](#local-device-farm-android) 15 | * [Native test automation tools and libraries](#native-test-automation-tools-and-libraries-android) 16 | * [Native test automation presentations](#native-test-automation-presentations-android) 17 | * [Native test automation articles](#native-test-automation-articles-android) 18 | * **iOS** 19 | * [Official documentation](#official-documentation-ios) 20 | * [Official presentations](#official-presentations-ios) 21 | * [Tools](#tools-ios) 22 | * [Native test automation trainings](#native-test-automation-trainings-ios) 23 | * [Native test automation articles](#native-test-automation-articles-ios) 24 | * [Native test automation presentations](#native-test-automation-presentations-ios) 25 | * [Mobile cloud services](#mobile-cloud-services) 26 | * [Mobile cloud presentations](#mobile-cloud-presentations) 27 | * [Test automation tools evaluation](#test-automation-tools-evaluation) 28 | * [Cross-platform best practices](#cross-platform-best-practices) 29 | 30 | # Books 31 | 32 | * [Testing Swift](https://www.hackingwithswift.com/store/testing-swift) by Paul Hudson 33 | * [Tap Into Mobile Application Testing](https://leanpub.com/testmobileapps) by Jonathan Kohl (2017) 34 | * [Hands-On Mobile App Testing: A Guide for Mobile Testers and Anyone Involved in the Mobile App Business](https://www.amazon.com/Hands-Mobile-App-Testing-Involved/dp/0134191714) by Daniel Knott (2015) 35 | * [Mobile Testing Tips: Experiences & Realities](https://www.amazon.com/Mobile-Testing-Tips-Experiences-Realities/dp/6056414035) by Baris Sarialioglu (2015) 36 | 37 | # Mind maps, mnemonics 38 | 39 | * [Mind Maps: for Fast and Effective Testing](https://badootech.badoo.com/mind-maps-for-fast-and-effective-testing-30aab6bea6f4) 40 | 41 | # Official documentation (Android) 42 | 43 | * [Test apps on Android](https://developer.android.com/training/testing/) 44 | * [Android Testing Codelab](https://codelabs.developers.google.com/codelabs/android-testing/index.html#0) 45 | * [Using Firebase Test Lab to Improve the Quality of your Mobile Apps](https://codelabs.developers.google.com/codelabs/firebase-test-lab/index.html) 46 | * [Automated Performance Testing Codelab](https://codelabs.developers.google.com/codelabs/android-perf-testing/index.html#0) 47 | * [AndroidX Test release notes](https://developer.android.com/jetpack/androidx/releases/test), [previous versions](https://developer.android.com/training/testing/release-notes) 48 | * [Test your app's accessibility](https://developer.android.com/training/accessibility/testing) 49 | 50 | # Official presentations (Android) 51 | 52 | * [Testing Android Apps at Scale with Nitrogen](https://www.youtube.com/watch?v=-_kZC29sWAo) (Android Dev Summit '18) 53 | * [Testing Rebooted (with AndroidX Test)](https://www.youtube.com/watch?v=4m2yYSTdvIg) (Android Dev Summit '18) 54 | * [Frictionless Android testing: write once, run everywhere](https://www.youtube.com/watch?v=wYMIadv9iF8) (Google I/O '18) 55 | * [Test-Driven Development on Android with the Android Testing Support Library](https://www.youtube.com/watch?v=pK7W5npkhho) (Google I/O '17) 56 | * [Going Green: Cleaning up the Toxic Mobile Environment](https://www.youtube.com/watch?v=aHcmsK9jfGU) (GTAC 2014) 57 | 58 | # Tools (Android) 59 | 60 | * [adb](https://developer.android.com/studio/command-line/adb) - a versatile command-line tool that lets you communicate with a device 61 | * [logcat](https://developer.android.com/studio/command-line/logcat) - a command-line tool that dumps a log of system messages, including stack traces when the device throws an error and messages that you have written from your app with the Log class 62 | * [pidcat](https://github.com/JakeWharton/pidcat) - Colored logcat script which only shows log entries for a specific application package 63 | * [Developer options](https://developer.android.com/studio/debug/dev-options) - lets you configure system behaviors that help you profile and debug your app performance 64 | * [Android Profiler](https://developer.android.com/studio/profile/android-profiler) - provides real-time data to help you to understand how your app uses CPU, memory, network, and battery resources 65 | * [Charles](https://www.charlesproxy.com/)/[Fiddler](https://www.telerik.com/fiddler) – debug proxy 66 | * [Crashlytics](https://docs.fabric.io/apple/crashlytics/overview.html) – crash reporting solution 67 | * [HockeyApp](https://hockeyapp.net/apps/) - a service that allows developers to recruit and manage testers, distribute apps, and collect crash reports, among other things 68 | 69 | # Virtualization (Android) 70 | 71 | * [Selenoid](https://github.com/aerokube/selenoid) - Selenium Hub successor running browsers and Android emulators within containers 72 | * [Docker-Android](https://github.com/butomo1989/docker-android) - Android in docker solution with noVNC supported and video recording 73 | * [swarmer](https://github.com/gojuno/swarmer) - Reactive tool to create and start multiple Android Emulators in parallel 74 | * [fastlane-plugin-automated-test-emulator-run](https://github.com/AzimoLabs/fastlane-plugin-automated-test-emulator-run) - Plugin dedicated for Android platform. Wraps gradle task/shell command used for launching instrumented tests. Provides start of as many AVDs with various configs as needed before test run, waits for boot, kills emulators and deletes them from hdd after tests are finished or disturbed. 75 | 76 | # Local device farm (Android) 77 | 78 | * [OpenSTF](https://openstf.io/) - Control and manage Android devices from your browser 79 | 80 | # Native test automation tools and libraries (Android) 81 | 82 | * [Espresso](https://developer.android.com/training/testing/espresso/) - The Espresso testing framework, provided by AndroidX Test, provides APIs for writing UI tests to simulate user interactions within a single target app 83 | * [Wait for it… IdlingResource and ConditionWatcher](https://medium.com/azimolabs/wait-for-it-idlingresource-and-conditionwatcher-602055f32356) 84 | * [Android Test Orchestrator](https://developer.android.com/training/testing/junit-runner#using-android-test-orchestrator) - run each test in it’s own instrumentation process, clear app state between tests 85 | * [Source code for Android Test](https://github.com/android/android-test) 86 | * [StackOverflow for Espresso](https://stackoverflow.com/questions/tagged/android-espresso) 87 | * [Issue Tracker for Android Test](https://issuetracker.google.com/issues?q=componentid:192735%2B) 88 | * [Kakao](https://github.com/agoda-com/Kakao) – “Nice and simple DSL for Espresso in Kotlin” 89 | * [Barista](https://github.com/SchibstedSpain/Barista) – “The guy who serves a great Espresso” 90 | * [Robolectric](http://robolectric.org/) - a framework that brings fast and reliable unit tests to Android. Tests run inside the JVM on your workstation in seconds 91 | 92 | # Native test automation presentations (Android) 93 | 94 | * [A practical guide to writing solid UI tests on Android](https://slideslive.com/38897360/a-practical-guide-to-writing-solid-ui-tests-on-android-en) by Valera Zakharov 95 | * [UI testing is so easy - said no developer ever](https://www.youtube.com/watch?v=SkkO6x6LhCQ) by Valera Zakharov 96 | * [Android Apps Testing in 2019](https://www.youtube.com/watch?v=aWLsGMsKsWM) by Ivan Katunou (Ru) 97 | * [Воркшоп по автотестам](https://www.youtube.com/watch?v=FExlaWfKENI) by Kaspersky Lab (Ru) 98 | 99 | # Native test automation articles (Android) 100 | 101 | * [Better Android Testing at Airbnb](https://medium.com/airbnb-engineering/better-android-testing-at-airbnb-3f5b90b9c40a) by AirBnb 102 | 103 | # Official documentation (iOS) 104 | 105 | * [XCTest](https://developer.apple.com/documentation/xctest) 106 | * [About Testing with Xcode](https://developer.android.com/training/testing/) (archived) 107 | * [Swift language guide](https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html) 108 | * [SwiftBook](https://swiftbook.ru/post/tutorials/unit-testing-ui-testing-tutorial/) - Swift language book (Ru) 109 | 110 | # Official presentations (iOS) 111 | 112 | * [Testing Tips & Tricks](https://developer.apple.com/videos/play/wwdc2018/417) (WWDC 2018) 113 | * [What's New in Testing](https://developer.apple.com/videos/play/wwdc2018/403/) (WWDC 2018) 114 | * [Engineering for Testability](https://developer.apple.com/videos/play/wwdc2017/414/) (WWDC 2017) 115 | * [What's New in Testing](https://developer.apple.com/videos/play/wwdc2017/409) (WWDC 2017) 116 | * [Advanced Testing and Continuous Integration](https://developer.apple.com/videos/play/wwdc2016/409) (WWDC 2016) 117 | * [Continuous Integration and Code Coverage in Xcode](https://developer.apple.com/videos/play/wwdc2015/410/) (WWDC 2015) 118 | * [UI Testing in Xcode](https://developer.apple.com/videos/wwdc/2015/?id=406) (WWDC 2015) 119 | 120 | # Tools (iOS) 121 | 122 | * [Automated UI-Testing for iOS Apps. How to make sure your app does what it's supposed to do](https://medium.com/mobile-quality/automated-ui-testing-for-ios-apps-cfe128ae6411) by Jan Olbrich 123 | * [EarlGrey](https://github.com/google/EarlGrey) by Google 124 | * [MixBox](https://github.com/avito-tech/Mixbox) by Avito 125 | 126 | # Native test automation trainings (iOS) 127 | 128 | * [Introduction to iOS Test Automation with XCUITest](https://testautomationu.applitools.com/introduction-to-ios-test-automation-with-xcuitest/) by Shashikant Jagtap 129 | 130 | # Native test automation articles (iOS) 131 | 132 | * [UI Testing](http://masilotti.com/topics/#ui-testing) by Joe Masilotti 133 | * [Getting started with Xcode UI testing in Swift](https://www.swiftbysundell.com/posts/getting-started-with-xcode-ui-testing-in-swift) by John Sundell 134 | * [Xcode UI Testing Cheat Sheet](https://www.hackingwithswift.com/articles/148/xcode-ui-testing-cheat-sheet) by Paul Hudson 135 | * [Hands-on XCUITest Features with Xcode 9](http://shashikantjagtap.net/hands-xcuitest-features-xcode-9/) by Shashikant Jagtap 136 | * [The iOS Testing Manifesto](https://blog.usejournal.com/the-ios-testing-manifesto-e1bc821cc4c3) by Hesham Salman 137 | * [Parallel testing: get feedback earlier, release faster. How to test your iOS apps with Xcode 10 effectively](https://medium.com/azimolabs/parallel-testing-get-feedback-earlier-release-faster-b66d4dd08930) by Paweł Zemsta 138 | * [Faster and more robust tests with Xcode 10](https://www.swiftbysundell.com/daily-wwdc/faster-and-more-robust-tests-with-xcode-10) by John Sundell 139 | * [Launch arguments in Swift](https://www.swiftbysundell.com/posts/launch-arguments-in-swift) by John Sundell 140 | 141 | # Native test automation presentations (iOS) 142 | 143 | * [iOS Test Automation at Continuous Delivery Pipeline](https://www.youtube.com/watch?v=ImR956OKTn4) by Igor Dorovskikh 144 | * [Scalable iOS Test Automation with XCUITest and Swift 3](https://www.youtube.com/watch?v=xOxvCcidIf0) by Igor Dorovskikh 145 | 146 | # Mobile cloud services 147 | 148 | * [Firebase Test lab](https://firebase.google.com/docs/test-lab/) (Android and iOS) - Test your app on devices hosted in a Google data center 149 | 150 | # Mobile cloud presentations 151 | 152 | * [Overview for device farms for mobile testing](https://www.youtube.com/watch?v=mzQltFHgnKk) by Anna Klueva (Ru) 153 | * [Тестирование мобильных приложений используя облачные сервисы](https://www.youtube.com/watch?v=fLb2T02UBMI) (Ru) by Дмитрий Лемешко (2017-02-26) 154 | 155 | # Test automation tools evaluation 156 | 157 | * [Mobile automation state in 2019](https://www.youtube.com/watch?v=0velJslwNn8) by Dmitry Lemeshko (Ru) 158 | * [The Shifting Landscape of Mobile Automation](https://www.youtube.com/watch?v=AV8p2aeqsOg) 159 | * [Mobile automation: three act tragedy](https://seleniumcamp.com/talk/mobile-automation-three-act-tragedy/) (Ru) 160 | * [Appium vs Espresso. Что выбрать и как использовать?](https://www.youtube.com/watch?v=A1_Xzcs_Fec) (Ru) 161 | * [СI/CD в iOS и Android](https://www.youtube.com/watch?v=y0wxtyUQZ1I) (Ru) 162 | * [Do Androids Dream of UI Testing?](https://arturdryomov.online/posts/do-androids-dream-of-ui-testing/) 163 | 164 | # Cross-platform best practices 165 | 166 | * [Making Your Appium Tests Fast and Reliable, Part 5: Setting Up App State](https://appiumpro.com/editions/23) --------------------------------------------------------------------------------