Top 5 Open Source Automation Tools for iOS and Android

Test Automation nowadays plays a very important aspect in software product testing. Hence more companies are focusing on providing Test automation services.  There are multiple positives to go for test automation. This includes minimizing test execution time, ensuring larger coverage in less time in critical release phases, and reliable and repetitive runs during the product development phase to ensure no regression issues are introduced. Also, it minimizes the risk of human error or negligence while doing repetitive regression testing cycles.

There are a lot of tools available in the market, both open-source and paid ones. Though there are pros and cons of using both paid and open-source tools, later categories of tools are widely used across the automation testing community. Choosing the right automation tool according to project requirements is the very tricky part, as it could get your test strategy past the winners to mark on the other side it could prove to be a disaster, decoupling testing and development planning in agile methodologies.

Below are 5 top open-source iOS and android automation tools that are most widely used and have wide community support.

1) Calabash (For Android and iOS)

android automation tools
Android automation tools

What it is – calabash is an open-source acceptance testing framework for Android and iOS automation. Calabash provides a separate library for Android and iOS automation. It’s a cross-platform framework and supports cucumber which enables an expression of the behaviour of the app in the natural English language implementing BDD (Behaviour Driven Development).

Calabash provides a bridge that allows cucumber tests to run and validate on iOS and Android. Cucumber tests are written as a list of statements that form a number of test scenarios. All the statements in Cucumber are defined using the Ruby language.

In Calabash, a cucumber statement must be defined only once but can be repeated for different scenarios of a cucumber script.

The actual tests are written in Gherkin, backed with Ruby code, and run in the context of the Cucumber Framework.


  1. Large Community Support.
  2. Simple and expressive English like test statements
  3. Supports all actions on the screen such as swipe, pinch, rotate, and tap.
  4. Large and enthusiastic community.
  5. Cross platform development support(same code works for Android as well as iOS devices)


  1. After the failure of the test steps, all subsequent steps will be skipped. This can cause more severe product issues to be missed out.
  2. Takes time to run tests as it always installs the App first by default. However, this setting can be overridden by a hook that we can configure in the code.
  3. Requires Calabash framework to be instrumented inside IPA file for iOS.
  4. We must have the code of the App in the case of iOS.
  5. Not friendly to languages other than Ruby.

2) Appium (Android and iOS)

android application automation
Android application automation

What it is – Appium is an open-source test automation framework by sauce labs for use with native, hybrid and mobile web apps. Appium library functions inside the framework and makes calls to the Appium server running in the background which operates the connected device. It uses JSONWireProtocol internally to interact with iOS and Android apps using Selenium’s WebDriver.

Unlike Calabash which mainly supports development in Ruby, Appium can be used in a framework with the language of your choice from Java, Python, Ruby and all others that the selenium-web driver supports.

The Appium server gets hosted on a Node server. One can start the Appium server by firing a set of Node commands. If using Appium Standalone Application as a server (installable downloaded from the Appium website), the ‘Inspector’ tool provides the ability to locate/identify/operate on all locators of the Application configured.


  1. Supports multiple languages.
  2. Does not require Source code access.
  3. Cross-platform script development.
  4. Large community support.
  5. Supports script recording on Mac
  6. Can extract identifiers using Appium Server application’s ‘Inspector’ tool.
  7. In-built support for ‘Selendroid’ by Appium Server desktop application.
  8. It also uses the vendor provided framework: UIAutomation for iOS, UIAutomator and Selendroid for Android 4.2+ and 2.3+ respectively.
  9. Supports physical devices as well as Emulators.
  10. Supports native, hybrid and mobile web application automation.


  1. Frequent unstable releases for Appium Server desktop application.
  2. Script recording is not available for Application server desktop applications for Windows OS.

3) Robotium (Android)

android automation
Android automation

What it is – Robotium is an open-source test framework for developing functional, system and acceptance test scenarios. It is very similar to selenium however only for android. It’s listed under Apache Licence 2.0.

Because of its simplicity and ability to create powerful and robust automation scenarios, it’s gaining popularity in the test automation community.

It uses run time binding to GUI components hence. It installs a test case suite as an application on an Android device or emulator and hence provides a real environment for the execution of tests.


  1. Easy to write test scripts in minimal time.
  2. Automation of pre-installed apps is possible.
  3. Automatically follows the current activity.
  4. Faster and more robust test execution as compared to Appium due to run time binding with GUI components.
  5. Can work without access to code or knowing the implementation of the app.
  6. Support for Activities, Dialogs, Toasts, Menus, Context Menus, and other Android SDK controls.


  1. Can’t handle flash or web components.
  2. Supports development in Java.
  3. Can be slow on older devices.
  4. Does not support automation of iOS devices which can be a deal-breaker where the test strategy involves automation of both android and iOS devices automation.
  5. No inbuilt support for record and playback. Paid tools are available for recording such as TestDroid and Robotium Recorder.

4) Frank (iOS)

android testing tools
Android testing tools

What it is – Frank is an iOS app automation framework that provides the ability to write test scenarios in structured English sentences using cucumber.

Frank requires it to be compiled inside the application under test and hence changes are mandatory to your source code. It’s a tool written mainly by fellow Thought workers that use a combination of Cucumber and JSON commands sent to a server running inside your native application and leverages UISpec to run the commands.


  1. Test scenarios are written in understandable English sentences with the help of the cucumber framework.
  2. Symbiote – Live inspection tool is included.
  3. Proves efficiency when the team is having experience with web automation framework with selenium, and cucumber.
  4. Active community support.
  5. Continuously expanding library.


  1. Limited support for gestures.
  2. A bit difficult to run tests on the device.
  3. Modification to the configuration file is required to run on real devices.
  4. The recording feature is not available.

5) UIAutomator (Android)

open source automation tools
Open-source automation tools

What it is – UI Automator is a test framework by Google that provides advanced UI testing of native Android apps and games. It’s a Java library containing API to create functional UI tests and also an execution engine to run the tests. This library comes inbuilt with Android SDK. Many tutorials are available for beginners to get started. The advantage is it gives special privileges to Junit test cases while running to access different processes. Even though it’s good and simpler for native app automation, it has very limited or almost no support for web view automation. It only supports devices with API level 16 and above, however, that should not be a big factor or deal-breaker as most of the apps these days support API level 19 and above.


  1. Simple and easy to learn tutorials are available.
  2. Library supported and maintained by Google community.
  3. The third party paid integration with cloud based test management is available.


  1. Supports only Android 4.1 and above.
  2. Script recording is not supported.
  3. Support is focused on Java.
  4. You can’t get current activity or Instrumentation.
  5. ‘WebView’ is not currently supported and hence hybrid apps.
  6. Library support is in Java only so it’s tough if someone wants to blend it with cucumber which is in ruby. However, Java has its own BDD frameworks which can be used, but not much in practice though.

Cheat Sheet for Open Source Automation Tools

android automation tools
android automation tools


  • Fabian Mannebach

    Your site is so fantastic. I’m going to come back here again.

  • Stevie Portilla

    There is noticeably a bundle to learn about this. I assume you made sure nice points in features also.

  • Arlie Mutters

    some truly interesting details you have written.

  • Trish Roskop

    I wanted to thank you for this wonderful read!! I absolutely loved every bit of it. I’ve got you bookmarked to look at new stuff you post…

  • Salvatore Demeglio

    Hi there, I found your blog via Google while searching for a related topic, your site came up, it looks good. I have bookmarked it in my google bookmarks.

  • Delora Hurston

    Hi! I could have sworn I’ve visited this site before but after going through a few of the posts I realized it’s new to me. Anyways, I’m definitely happy I stumbled upon it and I’ll be book-marking it and checking back frequently!

  • Wilton Hoist

    Greetings! Very helpful advice within this post! It’s the little changes that will make the greatest changes. Thanks for sharing!

  • Debora Bowlin

    Hey! Would you mind if I share your blog with my twitter group? There’s a lot of people that I think would really appreciate your content. Please let me know. Thanks

  • Adria Cowman

    You’re so interesting! I do not believe I’ve truly read through something like that before. So nice to discover somebody with a few genuine thoughts on this subject matter. Seriously.. thanks for starting this up. This web site is something that is needed on the internet, someone with some originality!

  • Mauricio Gaskell

    You should be a part of a contest for one of the most useful blogs on the web. I am going to recommend this web site!

  • Suzan Cuzzo

    You ought to be a part of a contest for one of the best websites on the net. I am going to recommend this website!

  • Bryon Maker

    You ought to take part in a contest for one of the most useful websites on the internet. I am going to recommend this site!

  • Edwardo Servey

    Hello just wanted to give you a quick heads up and let you know a few of the images aren’t loading correctly. I’m not sure why but I think its a linking issue. I’ve tried it in two different browsers and both show the same results.

  • Lionel Bandin

    Greetings I am so happy I found your weblog, I really found you by mistake, while I was searching on Bing for something else, Regardless I am here now and would just like to say thanks a lot for a remarkable post and a all round interesting blog (I also love the theme/design), I don’t have time to read it all at the minute but I have bookmarked it and also included your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep up the great job.

  • Dorian Elgen

    This website was… how do you say it? Relevant!! Finally I have found something which helped me. Thanks!

  • Tommy Demian

    Very nice article. I absolutely appreciate this site. Keep it up!

  • Jason Szczepanek

    After looking into a few of the blog articles on your website, I truly like your way of writing a blog. I added it to my bookmark website list and will be checking back in the near future. Take a look at my web site too and let me know how you feel.

Leave a Reply