← Назад к вопросам

Какие тест-кейсы переворота телефона можно протестировать

1.2 Junior🔥 91 комментариев
#Мобильное тестирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# Тест-кейсы для проверки переворота (ротации) экрана телефона

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

1. Основная функциональность

1.1. Переворот в разных состояниях приложения

  • Приложение запущено, активно: экран корректно переворачивается.
  • Приложение в фоне: вернувшись в приложение, ориентация сохраняется или адаптируется к текущему положению девайса.
  • Во время загрузки/сплэш-скрина: поведение должно быть согласовано с дизайном (чаще — фиксированная ориентация).
  • При блокировке/разблокировке: ориентация экрана после разблокировки соответствует положению телефона.

1.2. Соответствие настройкам системы

  • При включенной/отключенной автоповороте:
    // Пример проверки через ADB (Android)
    adb shell settings put system accelerometer_rotation 0 // выкл.
    adb shell settings put system accelerometer_rotation 1 // вкл.
    
  • Изменение системной настройки автоповорота во время работы приложения.

1.3. Направления поворота

  • Портрет → Ландшафт (по часовой/против часовой).
  • Ландшафт → Портрет.
  • Переворот на 180 градусов (портрет/ландшафт).
  • Поворот вверх ногами (если поддерживается ОС/приложением).

2. Визуальная целостность и UI/UX

2.1. Адаптация интерфейса

  • Контент не обрезается, не появляется пустых областей.
  • Перерисовка элементов без мерцания или артефактов.
  • Корректное изменение макета (например, навигация снизу → сбоку).
  • Масштабирование контента (текст, изображения, видео) происходит пропорционально.

2.2. Элементы управления

  • Клавиатура появляется и скрывается корректно, не загораживает поля ввода.
  • Диалоги, тултипы, меню остаются на месте, не смещаются.
  • Анимации и переходы плавные, без резких скачков.

2.3. Состояние ввода данных

  • Фокус на поле ввода сохраняется.
  • Текст в полях ввода не теряется, не дублируется.
  • Курсор остается на своем месте.

3. Особые сценарии и интеграция

3.1. Медиаконтент

  • Видеоплеер: ориентация изменяется, видео продолжает воспроизводиться, элементы управления адаптируются.
  • Камера: переворот работает, кнопки управления доступны, превью отображается корректно.
  • Аудиоплеер: интерфейс адаптируется, воспроизведение не прерывается.

3.2. Внешние устройства и соединения

  • Подключение к проектору/TV (например, через HDMI, Miracast).
  • Использование с Bluetooth-клавиатурой.
  • Подключение/отключение зарядного устройства во время ротации.

3.3. Системные прерывания

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

4. Производительность и стабильность

4.1. Крайние сценарии

  • Быстрая, многократная ротация (стресс-тест).
  • Поворот во время активных операций: загрузка данных, отправка формы, навигация между экранами.
  • Работа в условиях слабого интернета/офлайн.
  • Поворот с открытой тяжелой анимацией/игрой.

4.2. Обработка ошибок

  • Краш/андрай приложения во время или после ротации.
  • Утечки памяти (проверка через профилировщик).
  • Поведение после восстановления из бэкапа.
  • Работа в альбомной ориентации на устройствах с «челкой»/вырезом — контент не должен уходить под них.

5. Специфика платформ

5.1. Android

  • Проверка onConfigurationChanged в активити.
  • Сохранение состояния (onSaveInstanceState/onRestoreInstanceState).
  • Разные версии ОС и кастомные прошивки (Samsung One UI, Xiaomi MIUI).
  • Гибридные приложения (WebView) — поведение контента внутри.

5.2. iOS

  • Поддержка всех ориентаций в Info.plist (UISupportedInterfaceOrientations).
  • Методы viewWillTransition(to:with:) и traitCollectionDidChange(_:).
  • Особенности iPad (поддержка разделенного экрана, многозадачность).
  • Safe Area — элементы интерфейса остаются в безопасной зоне.
// Пример проверки поддержки ориентаций в iOS
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return [.portrait, .landscapeLeft, .landscapeRight]
}

6. Инструменты и автоматизация

  • Эмуляторы/симуляторы для первоначальных проверок.
  • Физические устройства с разными размерами экранов, соотношениями сторон и ОС.
  • Автоматизация через Appium, Espresso (Android), XCUITest (iOS) для регрессионного тестирования.
  • Логирование и мониторинг крашей, связанных с изменением конфигурации.

Пример простого тест-кейса в Appium (Python):

from appium import webdriver

desired_caps = {
    'platformName': 'Android',
    'deviceName': 'emulator',
    'app': '/path/to/app.apk'
}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# Тест: поворот экрана во время ввода текста
text_field = driver.find_element_by_id('com.example:id/input_field')
text_field.send_keys('Test text')

# Поворот в ландшафт
driver.orientation = 'LANDSCAPE'
assert text_field.text == 'Test text', 'Текст не сохранился после ротации'

# Поворот обратно в портрет
driver.orientation = 'PORTRAIT'
assert driver.orientation == 'PORTRAIT', 'Ориентация не изменилась на портрет'

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