Тестирование мобильных приложений: с чего начать и что проверять

Мобильное приложение ломается не там, где веб. Логика может быть безупречной, но приложение упадёт от входящего звонка или потеряет данные при сворачивании.

Чем мобильное отличается от веба

Функциональная часть похожа: те же формы, те же сценарии, те же требования. Разница в среде, в которой всё это живёт.

ВебМобильное
Вкладка открыта, пока не закроютСистема может выгрузить приложение из памяти в любой момент
Сеть обычно стабильнаОбрывы, переключение Wi-Fi и мобильного, туннели, лифты
Прерываний почти нетЗвонки, уведомления, будильники, блокировка экрана
Разрешений не спрашиваютКамера, геолокация, контакты — и отказ надо обработать
Обновление незаметноОбновление через магазин, старые версии живут годами
Экраны разные, но предсказуемыеСотни устройств, вырезы, жесты, оболочки

Прерывания — главный источник дефектов

Если проверять только один класс вещей, проверяйте этот. Приложение живёт в среде, где его постоянно отвлекают.

💡 Проверка, которая находит больше всего

Свернуть приложение на пятнадцать минут и вернуться. Половина дефектов состояния живёт именно здесь: потерянная сессия, пустой экран, сброшенная форма, зависший индикатор загрузки.

Сеть и разрешения

Два блока, которые в вебе почти не проверяют, а в мобильном они обязательны.

Сеть: работа без интернета с понятным сообщением, медленное соединение, обрыв в середине операции, переключение Wi-Fi и мобильного на лету, режим полёта, включённая экономия трафика.

Разрешения: запрос приходит в момент использования и объясняет, зачем; отказ не роняет приложение, а даёт понятный сценарий; отзыв разрешения в системных настройках во время работы обрабатывается. Проверять нужно каждое: камеру, галерею, геолокацию, микрофон, контакты, уведомления.

Особенности платформ

iOSAndroid
Свайп от левого края — «назад»Системная кнопка «назад» обязана работать на каждом экране
Устройств меньше, важнее версии ОСОгромный парк устройств и оболочек
Разрешение спрашивают один раз, отказ окончателенМожно спрашивать повторно, есть «только в этот раз»
Строгая модерация App StoreРазные магазины, поддержка старых версий

Практический вывод: набор устройств для проверки берут не наугад, а по аналитике продукта — какие модели и версии реально у ваших пользователей. Гнаться за полным покрытием бессмысленно.

Инструменты

Прокси стоит освоить сразу: как только вы видите трафик приложения, все навыки из веб-тестирования начинают работать — коды ответов, тела запросов, авторизация. Про сами коды — в шпаргалке по HTTP.

Установка и обновление

Отдельный сценарий, который забывают проверять чаще остальных. Обновление устанавливается поверх предыдущей версии, а не на чистое устройство, — и именно там всплывают потерянные данные.

Производительность и ресурсы

В вебе на это смотрят выборочно, в мобильном — всегда: телефон замечает всё сразу, и пользователь тоже.

Отдельно — размер самого приложения и то, как быстро растёт кэш. Приложение, занявшее через месяц два гигабайта, удаляют первым при нехватке места.

С чего начать, если опыта нет

  1. Возьмите любое приложение на своём телефоне и пройдите по списку прерываний — звонок, сворачивание, обрыв сети. Вы удивитесь, сколько найдётся.
  2. Установите Android Studio и поработайте с эмулятором: научитесь ставить сборку и смотреть логи.
  3. Освойте adb logcat — хотя бы фильтрацию по имени приложения.
  4. Настройте прокси и посмотрите на трафик приложения: это мостик от веб-тестирования к мобильному.
  5. Оформите найденное по шаблону — получится первый блок мобильного портфолио.

Полный список проверок, который можно распечатать, — в чек-листе мобильного приложения.

Нужен ли iPhone для тестирования iOS?

Для полноценной проверки — да, симулятор не воспроизводит жесты, камеру и производительность. На старте можно обойтись симулятором на Mac или облачной фермой устройств.

Мобильное тестирование сложнее веба?

Не сложнее, но шире: добавляются среда, платформы и устройства. База при этом та же — техники проверки, работа с API и данными.

Берут ли новичков сразу на мобильное направление?

Да, но чаще ждут понимания веба и API — они всё равно под капотом. Мобильную специфику добирают уже на месте.