There are a wide variety of Mobile App Automation Tools on the marketplace. Some work better with iOS and some work better with Android, it depends on your needs.
The problem is, hardly any of the existing tools fully corresponds to your project requirements.
Robotium is a free Android UI testing tool. Software developers often describe it as Selenium for Android. Tests created by Robotium are written in Java. However, there is no Record and Play function in Robotium, and it does not provide screenshots.
The UIAutomator testing framework is an instrumentation-based API and is suitable for cross-app functional UI testing across system and installed apps. The framework is well-suited for writing black box-style automated tests, where the test code does not rely on internal implementation details of the target app.
End-to-End Testing on real iOS, Android Devices & Browsers
The Espresso testing framework provides APIs for writing UI tests to simulate user interactions within a single target app. A key benefit of using Espresso is that it provides automatic synchronization of test actions with the UI of the app you are testing.
The XCTest framework enables you to write unit tests for your Xcode projects that integrate seamlessly with the Xcode testing workflow. Xcode tests can be executed using command-line scripts or configured to be executed by bots on a Mac running Xcode Server automatically.
Apple has deprecated Instruments so we would highly recommend XCTest at this point.
For both Android and iOS
You will notice in the image that Appium and Calabash are “yes” for both iOS and Android. You can utilize them to write test cases once and use them on both iOS and Android. However, remember that Appium is just a wrapper on Apple’s Instruments command sets, and you may not have all the richness that Instruments provided before Apple deprecated Instruments. Also, Calabash uses private APIs to inspect your app’s view hierarchy. Apps that include the Calabash iOS Server will be rejected if they are submitted to the AppStore.
Appium is a free tool that can be used as a framework for the creation of automated tests for iOS and Android. It supports Android versions from 2.3 and later. Appium utilizes WebDriver interface for tests running and supports many programming languages, such as Java, C#, Ruby and others. But some automated test engineers complain that it provides poor/ insufficient reports.
Calabash is an Automated UI Acceptance Testing framework that allows you to write and execute tests that validate the functionality of iOS and Android Apps. While Calabash is completely free, Xamarin, the company that developed and maintains Calabash, provides a number of commercial products and services centered around Calabash and quality assurance for mobile.
Everyday we are finding new interesting tools to help with the automation process. However, TestGrid provides a complete Platform as a Service (PaaS). Our end-to-end solution encompasses simple and more accurate functional test automation tools, a cloud of real devices and a full suite of various smart tools to help you save time and money on your SDLC.