Calabash Calabash is an open source cross-platform framework for automating testing of Android and iOS applications. Each OS has its own add—on - Calabash iOS or Calabash Android. Testing can only be implemented in Ruby, which is a disadvantage of the framework [16]. The tool was developed by Xamarin, but it stopped supporting it in 2017, and now it is supported only by the community, as a result of which it is losing popularity in the test automation market
Espresso. Espresso is a free framework developed by Google, open source for test automation Android applications [17]. Supports Java programming languages and Kotlin. The advantages of Espresso include: the presence of a recorder with which you can record simple scripts and use them at the initial stage of automation; implementation of useful functions of automatic synchronization of tests with the user interface of the application, which allows you not to write various wait commands (commands for waiting to achieve a certain conditions); Easy to set up and support all Android versions;
- there is no need for a separate server to establish communication between the tool and the application under test, as in Appium; the launch is performed simultaneously with the application and provides quick test results to the developer [14]. Espresso is part of the Android Testing Support Library, which includes tools developed by Google for testing Android applications. Within the framework of this library, the AndroidJUnitRunner class is implemented, which allows you to run JUnit tests on Android devices, including those using test frameworks Espresso and UI Automator [14]. JUnit is the most well-known, and therefore the most used framework for writing and running repeatable tests in Java [18]. The downside is that Espresso requires access to the source code to run. Accordingly, this framework cannot work independently with other applications and the Android system. For these purposes, Google recommends using their other tool — UI Automator [17]. These two tools can be used together because they are parts of the same library. Thus, even in one test, you can combine the commands of both tools.
UI Automator UI Automator is a free open source framework developed by Google. Supports Android versions starting from 4.3. Supports Java and Kotlin programming languages [17]. Advantages:
- does not require the introduction of its own code into the project, that is, it can interact with already compiled applications; When working with UI Automator, you can use the capabilities of the Android system completely: for example, turn on geolocation, cal the system application, rotate the device, press the Home button or take a screenshot. UI Automator does not have its own recorder for tests, but there is a UI Automator Viewer utility that allows you to get data about elements of an application running on an emulator or a real device and shows locators of these elements. The hierarchical one is displayed immediately the structure of all elements, which is very convenient for their use in tests [14].