Как тестировать устойчивость мобильного приложения к прерываниям (Interruption Testing)?

«Как тестировать устойчивость мобильного приложения к прерываниям (Interruption Testing)?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование на устойчивость к прерываниям проверяет, как приложение ведет себя при внешних событиях, которые могут его прервать или перевести в фоновый режим.

Типичные сценарии прерываний:

  • Входящий звонок или SMS.
  • Переключение на другое приложение.
  • Изменение ориентации экрана.
  • Потеря и восстановление сетевого соединения.
  • Низкий заряд батареи или переход в режим энергосбережения.
  • Уведомления от других приложений.

Что проверять:

  1. Сохранение состояния и данных (не должна теряться введенная информация).
  2. Корректное возобновление работы после возврата в приложение.
  3. Отсутствие крешей (падений) и утечек памяти.

Инструменты и примеры:

  • Espresso для Android: Можно эмулировать прерывания.
    @Test
    fun testOnIncomingCall() {
        onView(withId(R.id.input_field)).perform(typeText("Important Text"))
        // Эмуляция прерывания (например, нажатие Home)
        uiDevice.pressHome()
        // Возврат в приложение
        uiDevice.pressRecentApps()
        // Проверка, что текст сохранился
        onView(withId(R.id.input_field)).check(matches(withText("Important Text")))
    }
  • Monkey Testing: Генерация случайных событий (тапов, жестов, системных прерываний) для проверки общей стабильности.
  • Ручное тестирование: Систематическая проверка ключевых сценариев при различных прерываниях.