Appium

appium.io/

Appium can test almost any mobile app: Android, ios, Web, Hybrid. It is a cross-platform tool, which means the same test case can be executed on different platforms.

Write test case languages: Java, Object-C,PHP,Ruby,Python, etc.

Appium features:

  • No additional apps need to be installed on the device
  • No need to recompile or change the app code
  • The Appium community is very active
  • Appium comes with a tool that can scan and analyze application Ui components – the Appium Ui Inspector.

Calabash

calaba.sh/

Calabash is an open source mobile testing tool developed and maintained by Xamarin that supports native and Hybrid apps on Ios and Android.

Mainly used for behavioral testing: gestures, screenshots

Espresso

Saucelabs.com/blog/the-to…

Espresso is a lightweight white box testing framework for Android Ui developed by Google. It executes test cases very quickly and can access the internal objects of the Ui. You can test WebView, hybrid applications, and only write test cases in Java

The disadvantage of Espresso is that you can only test one application at a time, and there is no access to the device’s resources. But you can use the blog to solve this problem: qathread.blogspot.com/2015/05/esp…

UI Automator

Developer.android.com/training/te…

UI Automator is an Android UI testing framework developed by Google. The core feature is cross-application testing, which can test switching between multiple installed applications or system applications.

It is a black-box testing tool, and it can only write test cases in Java. It consists of two parts of the API

  • UI Automator APIs: UI components used to manipulate apps
  • Device state APIs: used to access and perform actions on the device (e.g., changing the rotation of the device, pressing the back button, etc.)

The downside is that it only supports Android Native apps

Robotium

Github.com/RobotiumTec…

Robotium is an open source Android Ui framework. It came out in 2010, and now it’s a very reliable, stable tool.

Many articles and blogs surface Robotium as a black-box test, but I think it should be a grey-box test because, when you write test cases, you need to at least know the structure of the application (e.g., the name of the activity)

Robotium features

  • Supports native and hybrid applications
  • Can run in the real machine and simulator run
  • Supports all native components: Activities, Buttons, Menus, toasts, dialogs, and so on
  • Support gestures
  • You can control some functions of the device, such as changing the direction of the device, capturing the screen, and unlocking the device
  • Robotium Recoder is available for download on Eclipse and the Android Studio plug-in library. It is quick to execute test cases
  • The language for writing use cases is Java