The shift in the direction of cellular platforms is a robust development presently and Android is essentially the most broadly adopted cellular OS with an estimated market share above 80% in 2014. You must naturally take a look at all of the apps developed for Android and numerous open supply testing instruments and take a look at automation frameworks have been developed to attain this aim.
This text presents an inventory of open supply Android testing instruments. For every instrument you’ll get a small description of its options and tips to extra assets that discusses the instrument extra in particulars. Be at liberty to recommend any extra open supply Android software program testing framework or useful resource that you just suppose may be included on this article. Instruments are listed by alphabetical order. An inventory of open supply Android testing instruments tasks that aren’t lively can also be included on the finish of the article.
The open supply Android software program testing instruments talked about on this article are: Android Check Package, AndroidX Check Libraries, Appium, AssertJ Android, AutomationCore, Barista, calabash-android, Cortado, Detox, Fastbot-Android, Inexperienced Espresso, Macaca, Magneto, MATE, Mobly, Monkey, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid, Spoon, Check Butler
Updates
June 17 2025: added Maestro, mobileperf; up to date Magneto
April 11 2023: added AndroidX Check Libraries, Detox, Fastbot-Android
September 30 2019: added AutomationCore, MATE, Spoon
November 30 2017: up to date Android Check Package; eliminated AndroidJUnit4, NativeDriver; added Barista, Cortado, Inexperienced Espresso, Macaca, Mobly
January 24 2017: eliminated MonkeyTalk (acquired by Oracle); added AssertJ Android, Magneto, Check Butler
AndroidX Check Libraries
The AndroidX Check Library offers an intensive framework for testing Android apps. This library offers a set of APIs that let you shortly construct and run take a look at code in your apps, together with JUnit 4 and useful consumer interface (UI) checks. You possibly can run checks created utilizing these APIs from the Android Studio IDE or from the command line.
Web site: https://github.com/android/android-test
Android Check Package
The Android Check Package is the set of Google open supply testing instruments for Android. This library offers a set of APIs that let you shortly construct and run take a look at code in your apps, together with JUnit 4 and useful consumer interface (UI) checks. You possibly can run checks created utilizing these APIs from the Android Studio IDE or from the command line.
Web site: https://google.github.io/android-testing-support-library/
Extra assets
* Android software testing with the Android take a look at framework – Tutorial
* Espresso for Android is right here!
Appium
Appium is an open supply take a look at automation framework to be used with native and hybrid cellular apps. Appium drives iOS and Android apps utilizing the WebDriver JSON wire protocol. Appium’ philosophy is that testing native apps shouldn’t require together with an SDK or recompiling your app. Appium goals to automate any cellular app from any language and any take a look at framework, with full entry to back-end APIs and DBs from take a look at code. You possibly can write checks along with your favourite growth instruments with the Selenium WebDriver API and language-specific consumer libraries.
Web site: http://appium.io/
Extra assets
* Android UI testing with Appium
AssertJ Android
AssertJ Android is a set of AssertJ assertions geared towards testing Android. Writing checks will not be essentially the most glamorous a part of creating an Android software but it surely is a useful one. Utilizing libraries like JUnit and AssertJ present an important start line for writing checks. This library is an extension of AssertJ which goals to make it even simpler to check Android.
Web site: http://sq..github.io/assertj-android/
http://joel-costigliola.github.io/assertj/
AutomationCore
AutomationCore offers a whole testing platform for UI (Internet, iOS, Android, Win) and API testing. It offers a characteristic wealthy and viable testing resolution for finish to finish testing. They’re designed to be quick, scalable, dependable and adaptable to any necessities for ever rising tasks. AutomationCore has a modular design. Every challenge/element is handled as a module, totally able to interacting with each other. This permits for multi element and multiplatform testing. Eg. Create consumer via element A (API), validate in element B (internet), do motion in element C (Android), validate leads to element D (iOS)
Web site: https://github.com/autonomx/Autonomx
Barista
Barista makes creating UI take a look at sooner, simpler and extra predictable. Constructed on prime of Espresso, it offers a easy an discoverable API, eradicating many of the boilerplate and verbosity of frequent Espresso duties. You and your Android workforce will write checks with no effort.
Web site: https://github.com/SchibstedSpain/Barista
Calabash-android
Calabash lets you write and execute. Calabash is an open supply instrument to put in writing automated acceptance checks of cellular apps that helps Android and iOS native apps. Calabash consists of libraries that allow test-code to programmatically work together with native and hybrid apps. The interplay consists of a variety of end-user actions. Calabash may very well be in comparison with Selenium WebDriver. Nevertheless, it is very important understand that interacting with an online app from a desktop pc is vastly completely different than interacting with a local app utilizing a contact display. Calabash offers APIs which can be specialised to native apps working on contact display units.
Web site: http://calaba.sh/, https://github.com/calabash/calabash-android
Extra assets
* A greater strategy to take a look at Android functions utilizing Calabash
* Calabash Android: question language fundamentals
Cortado
Cortado is an open supply software program testing framework for Android that gives a layer of abstraction above Espresso, so it’s a bit simpler to make use of. As there’s Google Espresso beneath, you may nonetheless mess up your checks the identical method you’ll when utilizing pure Espresso. Cortado simply provides you a bit nicer strategy to talk with Espresso.
Web site: https://github.com/blipinsk/cortado
Detox
Detox is an open supply grey field end-to-end testing and automation framework for cellular apps. Excessive velocity native cellular growth requires us to undertake steady integration workflows, which implies our reliance on handbook QA has to drop considerably. Detox checks your cellular app whereas it’s working in an actual gadget/simulator, interacting with it similar to an actual consumer. Essentially the most tough a part of automated testing on cellular is the tip of the testing pyramid – E2E. The core drawback with E2E checks is flakiness – checks are normally not deterministic. We imagine the one strategy to deal with flakiness head on is by transferring from black field testing to grey field testing. That’s the place Detox comes into play.
- Cross Platform: Write cross-platform end-to-end checks in JavaScript. At the moment helps iOS and Android.
- Debuggable: Fashionable async-await API permits breakpoints in asynchronous checks to work as anticipated.
- Mechanically Synchronized: Stops flakiness on the core by monitoring asynchronous operations in your app.
- Made For CI: Execute your E2E checks on CI platforms like Travis CI, Circle CI or Jenkins with out grief.
- Runs on Gadgets: Acquire confidence to ship by testing your app on a tool/simulator similar to an actual consumer (not but supported on iOS).
- Check Runner Agnostic: Detox offers a set of APIs to make use of with any take a look at runner with out it. It comes with Jest integration out of the field.
Web sites: https://github.com/wix/Detox, https://wix.github.io/Detox/
Fastbot-Android
Fastbot-Android is an open supply model-based testing instrument for modeling GUI transitions to find app stability issues. It combines machine studying and reinforcement studying strategies to help discovery in a extra clever method. Fastbot is appropriate with a number of Android OS programs, together with authentic Android, Android 5-13 and a variation of modified Andriod-based system by home producers. Inherited from authentic Monkey, Fastbot permits for quick motion insertion as excessive as 12 actions per second. Knowledgeable system is supplied with the flexibility to customise deeply primarily based on wants from completely different enterprise traces. Fastbot is a model-based-testing instrument. Mannequin is construct through graph transition with the consideration of excessive reward alternative choice. Fastbot helps non-standard widgets by pc imaginative and prescient strategies equivalent to YOLOv3, ocr and cv segmentation.
Web site: https://github.com/bytedance/Fastbot_Android
Inexperienced Espresso
Inexperienced Espresso is an open supply Android library that permits you to run your acceptance checks written in Gherkin in your Android instrumentation checks utilizing the step definitions that you just declare. Options are written utilizing the Gherkin language. Every characteristic consists of a number of situations that describe completely different conditions with a purpose to take a look at that characteristic. Every situation consists of steps that may simulate consumer interactions with the UI.
Web site: https://github.com/mauriciotogneri/green-coffee
Macaca
Macaca is an open-source automation take a look at resolution for native, hybrid, cellular internet and internet software on cellular and desktop platforms. Macaca is “cross-platform”. It means you need to use the identical API to put in writing take a look at scripts, and identical take a look at scripts to check your apps working on units equivalent to iOS, Android or desktops. Macaca doesn’t restrict what languages you’ll use to put in writing your checks.
Web site: https://github.com/alibaba/macaca
Maestro
Maestro is an open supply end-to-end testing (E2E) platform for cellular and internet apps. It really works for each Android and iOS. Maestro is constructed on learnings from its predecessors (Appium, Espresso, UIAutomator, XCTest). It offers built-in tolerance to flakiness. UI components is not going to at all times be the place you anticipate them, display faucet is not going to at all times undergo, and many others. Maestro embraces the instability of cellular functions and units and tries to counter it. One other characteristic is the tolerance to delays. No must pepper your checks with sleep() calls. Maestro is aware of that it would take time to load the content material (i.e. over the community) and robotically waits for it (however now not than required).
With Maestro, you’re employed in quick iteration. Exams are interpreted, no must compile something. Maestro is ready to repeatedly monitor your take a look at information and rerun them as they alter. If has a declarative but highly effective syntax. Outline your checks in a yaml file. This instrument is easy to setup as Maestro is a single binary that works wherever.
Web site: https://github.com/mobile-dev-inc/Maestro, https://maestro.dev/
Magneto (archived in read-only in 2023)
Magneto is an open supply take a look at automation framework that enables to put in writing good and highly effective checks for Android apps. Magneto was constructed by Automation Engineers for Automation Engineers out of necessity for a cellular centric take a look at automation framework that’s simple to setup, run and make the most of. Magneto is written in Python for Android units. It makes use of the uiautomator instrument through a Python wrapper and pytest as a take a look at framework. Magneto could be triggered from CLI, IDE and CI.
Web site: https://github.com/MagnetoTesting/magneto
MATE
MATE is an open supply instrument for automated android app testing that includes numerous (genetic) algorithms. The challenge is split into two elements: the MATE framework and unit checks for android managed on this repository and a server that runs on a bunch machine which is liable for some evaluation that may not be carried out by the instrumentation checks themselves.
Web site: https://github.com/mate-android-testing/mate
Mobileperf by Alibaba
Mobileperf is a Python PC instrument that may acquire Android efficiency information: cpu,reminiscence,fps,logcat log,visitors,course of thread quantity,course of launch log.mobileperf additionally assist monkey take a look at. It helps most variations of Android OS from 5.0 to 10.0. You don’t want root gadget or to SDK. Mobileperf helps Mac, Lnux and Home windows.
Web site: https://github.com/alibaba/mobileperf
Mobly
Mobly is a Python-based take a look at framework that focuses on supporting take a look at instances that require a number of units, advanced environments, or customized {hardware} setups. Mobly can assist many several types of units and gear, and it’s simple to plug your individual gadget or customized gear/service into Mobly.
Website online: https://github.com/google/mobly and https://github.com/google/mobly-bundled-snippets
Monkey
The Monkey is a open supply software program testing instrument developed by Google that runs in your emulator or gadget and generates pseudo-random streams of consumer occasions equivalent to clicks, touches, or gestures, in addition to a variety of system-level occasions. You should use the Monkey to stress-test your apps in a random but repeatable method. The Monkey is a command-line instrument that that you would be able to run on any emulator occasion or on a tool. It sends a pseudo-random stream of consumer occasions into the system, which acts as a stress take a look at on the appliance software program you’re creating. Monkey generates occasions and sends them to the system. It additionally watches the system beneath take a look at and appears for 3 circumstances, which it treats specifically.
Website online: http://developer.android.com/instruments/assist/monkey.html
Robolectric
Robolectric is a unit take a look at framework that de-fangs the Android SDK jar so you may test-drive the event of your Android app. Exams run contained in the JVM in your workstation in second. Robolectric handles inflation of views, useful resource loading, and plenty of different stuff that’s carried out in native C code on Android units. This permits checks to do most issues you can do on an actual gadget. It’s simple to supply our personal implementation for particular SDK strategies too. Robolectric enables you to run your checks in your workstation, or in your Steady Integration atmosphere in an everyday JVM, with out an emulator.
Website online: http://robolectric.org/
Extra assets
* Higher Android Testing with Robolectric 2.0
Utilizing Robolectric for Android testing – Tutorial
RoboSpock
RoboSpock is an open supply take a look at framework for Android that gives a simple method of writing Conduct Pushed Improvement (BDD) specs with Groovy language and helps the Google Guice library. It combines two major options within the space: Robolectric and Spock framework.
Website online: http://robospock.org/
Extra assets
* RoboSpock – Conduct Pushed Improvement (BDD) for Android
Robotium
Robotium is an Android take a look at automation framework that has full assist for native and hybrid functions. Robotium makes it simple to put in writing highly effective and strong computerized black-box UI checks for Android functions. With the assist of Robotium, take a look at case builders can write operate, system and consumer acceptance take a look at situations, spanning a number of Android actions.
Website online: https://code.google.com/p/robotium/
Extra assets
* Robotium – Testing Android Person Interface
* Android consumer interface testing with Robotium – Tutorial
UIAutomator
The UIAutomator testing framework enables you to take a look at your consumer interface (UI) effectively by creating automated useful UI take a look at instances that may be run towards your app on a number of units.
Website online: http://developer.android.com/instruments/assist/uiautomator/index.html
Extra assets
* Computerized Android Testing with UiAutomator
Selendroid
Selendroid is a take a look at automation framework that drives off the UI of Android native and hybrid functions (apps) and the cellular internet. Exams are written utilizing the Selenium 2 consumer. Selendroid can be utilized on emulators and actual units and could be built-in as a node into the Selenium Grid for scaling and parallel testing.
Web site: http://selendroid.io/
Extra assets
* Cellular Check Automation with Selendroid
* Highway to setup Selendroid and create first take a look at script of android software
* Up and working with: Selendroid
Spoon
Spoon goals to simplify testing Android functions by distributing instrumentation take a look at execution and displaying the leads to a significant method. As an alternative of making an attempt to be a brand new type of testing, Spoon makes current instrumentation checks extra helpful. Utilizing the appliance APK and instrumentation APK, Spoon runs the checks on a number of units concurrently. As soon as all checks have accomplished a static HTML abstract is generated with detailed details about every gadget and take a look at. Along with merely working instrumentation checks, Spoon has the flexibility to snap screenshots at key factors throughout your checks that are then included within the output. This permits for visible inspection of take a look at executions throughout completely different units.
Web site: https://github.com/sq./spoon
Check Butler
Check Butler is an open supply Android testing instrument developed by LinkedIn. Check Butler is a two-part challenge. It consists of an Android library that your take a look at code can depend upon, in addition to a companion Android app apk that have to be put in in your Android emulator earlier than utilizing Check Butler. You possibly can construct the Check Butler APK your self from supply, or obtain the binary from Bintray.
Web site: https://github.com/linkedin/test-butler
Extra assets
* Open Sourcing Check Butler, Dependable Android Testing, at Your Service
* “Your Espresso, Sir!”, or Stepping Up Your UI Exams With Check Butler
Some discontinued tasks of Android testing instruments
An inventory of some seemingly discontinued open supply tasks (or at the least not up to date in latest months) for Android testing instruments that you just would possibly wish to test… and perhaps taking again to life.
Emmagee
Emmagee is a sensible, useful efficiency take a look at instrument for specified Android App, which may monitor CPU, reminiscence and community visitors. Moreover, it additionally offers a number of cool options equivalent to customizing interval of accumulating information, rendering real-time course of standing in a floating window, and rather more.
Website online: https://github.com/kevinkong/Emmagee
NativeDriver
NativeDriver is an implementation of the WebDriver API that drives of the UI of a local software quite than an online software.
Website online: https://github.com/sonixlabs/nativedriver
Sirocco
Scirocco is an open supply Software testing instrument from Sonix. It is possible for you to to entry mandatory testing units from Eclipse. As an alternative of hand operation, Scirocco offers computerized Android software’s testing functionalities. It helps Google NativeDriver and AndroidDriver as major testing library.
Website online: https://github.com/sonixlabs/scirocco-webdriver