Контекст
Когда QA-инженер переходит с web-проектов на мобильные, первое, что бросается в глаза — иллюзия сходства. Приложение на экране, форма, кнопки, переходы по страницам. Но под этой поверхностью — принципиально другая среда выполнения. Браузер изолирует web-приложение от операционной системы, предоставляя унифицированный слой. Мобильное приложение живёт прямо внутри ОС: оно конкурирует за оперативную память, реагирует на входящие звонки, теряет фокус при уведомлениях, работает с гироскопом и камерой. Тестировщик обязан учитывать это на каждом шаге.
- Web работает в sandbox браузера; mobile — непосредственно в ОС, с прямым доступом к hardware.
- Пользователь может прервать сессию звонком, уведомлением или нажатием кнопки Home в любую секунду.
- Мобильный трафик дорогой и нестабильный: переключение 4G → 3G → Wi-Fi происходит на ходу.
- Экранная клавиатура меняет layout страницы, закрывая активные поля ввода.
- Жесты (свайп, пинч, тап по двойному касанию) не имеют точных аналогов у мыши.
- Размер батареи и тепловыделение — реальные ограничения, которых нет у web в браузере.
Рабочий алгоритм
Чтобы не пропустить мобильно-специфические баги при подготовке тест-сьюта, пройдите по следующему чек-листу для каждой фичи.
- Определите, какие hardware-ресурсы использует фича: камера, GPS, Bluetooth, NFC, гироскоп.
- Пропишите сценарии прерывания: входящий звонок, SMS, push-уведомление другого приложения, кнопка Home, переключение многозадачности.
- Проверьте поведение при изменении сети: потеря сети, переключение между Wi-Fi и мобильным интернетом, режим полёта.
- Проверьте ориентацию экрана: portrait → landscape и обратно в середине сценария.
- Убедитесь, что клавиатура не перекрывает ключевые элементы управления (особенно кнопку «Сохранить» или «Отправить»).
- Добавьте сценарий с низким зарядом батареи или при включённом режиме энергосбережения.
- Убедитесь, что статус-бар (время, уведомления) не перекрывает контент приложения.
Пример из практики
В финтех-приложении для Android нужно было протестировать форму перевода денег. QA написал полный set позитивных и негативных тест-кейсов — как для web. Но релиз принёс баг P1: если пользователь вводил сумму, в этот момент приходил push с промо-акцией, пользователь тапал по уведомлению, потом возвращался в приложение через Recent Apps — введённая сумма обнулялась, а иконка загрузки зависала. Причина: активити не сохраняла состояние при переходе в background, а переинициализация компонента не восстанавливала viewmodel. Такой баг невозможно поймать web-подходом — нужен явный тест-кейс «прерывание в середине заполнения формы».
Частые ошибки
Новички в mobile QA регулярно воспроизводят одни и те же промахи, перенося web-привычки без адаптации.
- Тестируют только на одном устройстве с постоянным Wi-Fi — не воспроизводят реальную мобильную среду.
- Забывают про прерывания: не добавляют тест-кейсы на звонок, SMS и уведомление в середине сценария.
- Проверяют UI только в portrait — упускают критические переполнения при landscape.
- Не проверяют поведение после принудительного закрытия процесса (kill через Recent Apps) — приложение может не восстанавливать сессию.
- Игнорируют разрешения: не проверяют отказ пользователя в доступе к камере/геолокации на уровне системного диалога.