Зачем тестировать Activity в Android-приложении?

«Зачем тестировать Activity в Android-приложении?» — вопрос из категории Мобильное тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Activity — это фундаментальный компонент UI в Android, представляющий собой один экран с пользовательским интерфейсом. Тестирование Activity необходимо для проверки корректности её жизненного цикла, визуального представления и взаимодействия с пользователем.

Ключевые аспекты тестирования Activity:

  • Жизненный цикл: Убедиться, что состояние сохраняется и восстанавливается при повороте экрана, сворачивании/разворачивании приложения или при его завершении системой. Например, введённый текст в поле не должен пропадать.
  • Навигация: Проверка корректных переходов (Intent) между Activity и передачи данных.
  • Взаимодействие с UI: Все элементы (кнопки, поля ввода, списки) должны реагировать на действия пользователя.
  • Визуальная целостность: Разметка (Layout) должна корректно отображаться на разных размерах и плотностях экрана.

Пример теста навигации с использованием Espresso (Kotlin):

@Test
fun clickLoginButton_navigatesToHomeActivity() {
    // Находим кнопку на текущей Activity (LoginActivity) и кликаем по ней
    onView(withId(R.id.button_login)).perform(click())

    // Проверяем, что был запущен Intent с целевой Activity (HomeActivity)
    intended(hasComponent(HomeActivity::class.java.name))
}

Тестирование Activity помогает выявить критические баги, связанные с управлением состоянием и навигацией, до того как они попадут к конечным пользователям.