Официально рекомендуемый способ выполнения тестов пользовательского интерфейса на Android - это инструментарий, да. Взгляните на InstrumentationTestRunner . Существуют обертки для такого рода функций, которые делают его менее болезненным в использовании, один из них - Robotium , другой - Calculon .
Однако в наши дни большинство людей сходятся во мнении, что тестовая среда Google не работает. Это очень ненадежно, очень медленно, а API ужасны, что затрудняет написание и понимание тестов. Следовательно, большинство моих знакомых, использующих более крупные тестовые наборы, выбирают Robolectric , что отводит тестирование пользовательского интерфейса от устройства и Dalvik до простой старой JVM. Он прошел долгий путь и на самом деле очень полезен в наши дни. Проверьте это. Главный недостаток, конечно, заключается в том, что оно не будет на самом деле инструмент приложения на устройстве или даже визуализировать пользовательский интерфейс. Он делает утверждения на уровне кода, поэтому он не подходит для тестов черного ящика.
Другим способом «черного ящика» / сквозного тестирования вашего приложения является Selenium + NativeDriver . NativeDriver - это реализация API-интерфейсов WebDriver, поэтому вы можете запускать тесты в стиле Selenium на устройствах Android.
Еще один инструмент, о котором стоит упомянуть, - это собственный Android monkeyrunner (не тренажер Monkey UI, который просто отправляет случайные события на устройство, что делает его полезным для стресс-тестирования, но не для функционального тестирования). monkeyrunner - это мост устройства со сценарием Python, с помощью которого вы можете отправлять нажатия клавиш и нажатия для инструментов вашего приложения. Опять же, я бы не рекомендовал использовать его, поскольку он изобилует ошибками и имеет очень ограниченную функциональность. Однако он может выполнять и другие функции, например снимать скриншоты тестируемого приложения.