Зачем тестировать смену ориентации экрана в мобильном приложении?

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

Ответ

Тестирование смены ориентации (портретной на ландшафтную и обратно) необходимо, потому что пользователи часто вращают устройство для удобства просмотра контента, и приложение должно корректно адаптироваться к этому изменению.

Основные цели тестирования:

  • Сохранение состояния (State Retention): Данные на экране (текст в полях, позиция прокрутки, выбранные элементы) не должны теряться или сбрасываться при повороте. Это обеспечивается правильной обработкой событий жизненного цикла Activity/Fragment (onSaveInstanceState, onRestoreInstanceState).
  • Целостность UI: Элементы интерфейса не должны накладываться, обрезаться или становиться недоступными. Вёрстка должна перестраиваться в соответствии с новыми размерами экрана.
  • Функциональность: Все интерактивные элементы должны оставаться кликабельными, а клавиатура — корректно отображаться в обеих ориентациях.
  • Производительность: Перерисовка экрана при повороте не должна вызывать заметных лагов или падений приложения.

Пример ручного тест-кейса:

  1. Открыть экран с формой.
  2. Ввести текст в поле EditText.
  3. Повернуть устройство в ландшафтную ориентацию.
  4. Ожидаемый результат: Введённый текст сохраняется в поле, форма остаётся полностью видимой и функциональной.

Автоматизация (псевдокод):

// Используя UIAutomator или Appium можно симулировать поворот
device.setOrientationLeft(); // Поворот в ландшафт
// ... проверки состояния UI ...
device.setOrientationNatural(); // Возврат в портрет
// ... проверки, что состояние сохранилось ...

Игнорирование этого типа тестирования приводит к плохому пользовательскому опыту и восприятию приложения как ненадёжного.