Мобильное тестирование — проверка приложения на соответствие требованиям, выявление дефектов и оценка качества перед выпуском. Главная задача — убедиться, что приложение не подведёт пользователя в первые секунды. По данным Dimensional Research, 61% пользователей удаляют приложение после одного неудачного опыта. А снижение рейтинга с 4,5 до 4,0 снижает количество установок на 30–40% — такую зависимость фиксирует AppsFlyer.
Тестирование мобильных приложений существенно отличается от веб-тестирования: здесь нужно учитывать тысячи моделей устройств, аппаратные ограничения, нестабильные сетевые условия и разрешения операционной системы. В статье разберём виды тестирования, ключевые особенности iOS и Android, инструменты QA и подход к автоматизации.
Сделайте следующий шаг в карьере
Подберите обучение, которое поможет освоить новые компетенции
Мобильное тестирование — отдельная дисциплина с собственными вызовами. Браузерные DevTools здесь недоступны, а вместо двух-трёх браузеров — тысячи комбинаций моделей, ОС и оболочек. Баг в разработке в 100 раз дешевле, чем в продакшене, поэтому особенности мобильного тестирования важно понимать с первого этапа.
| Параметр |
Мобильное |
Веб |
|---|---|---|
| Среда | Нативная ОС (iOS / Android) | Браузер |
| Сеть | Wi-Fi, 4G/3G, роуминг, потеря сигнала | Обычно стабильный интернет |
| Фрагментация | Тысячи моделей и версий ОС | Конечное число браузеров |
| Обновления | Через App Store / Google Play | Мгновенно на сервере |
| Разрешения | Камера, GPS, микрофон, NFC, биометрия | Минимальные |
| Прерывания | Звонки, уведомления, свёртывание | Практически отсутствуют |
Android представлен тысячами моделей с версиями ОС от 8 до 15 и кастомными оболочками — MIUI (Xiaomi), One UI (Samsung), ColorOS (OPPO). Каждая оболочка добавляет поведенческие отличия, которые невозможно предусмотреть без реального устройства. iOS предсказуемее по парку, но старые iPhone 8 и XR всё ещё активно используются — их нельзя игнорировать.
Аппаратные ограничения — отдельный фактор: бюджетный смартфон с 2 ГБ RAM не справится с нагрузкой, рассчитанной на флагманы. Решение — матрица устройств по аналитике реальной аудитории: флагманы + средний сегмент + бюджетные модели.
Приложение должно работать не только на быстром Wi-Fi, но и в метро на 3G, в роуминге и при полной потере сигнала. Переключение между сетями в середине загрузки файла — отдельный тестовый сценарий, который часто упускают.
Прерывания специфичны для мобильного: входящий звонок или системное уведомление выбивают приложение из активного состояния. Данные формы при этом должны сохраниться. Разрешения ОС — камера, GPS, микрофон, NFC — тестируются в двух состояниях: при согласии и при отказе. Приложение не должно падать с необработанным исключением, если пользователь не дал доступ к геолокации.
Тип приложения напрямую определяет инструменты, подходы и объём тестирования — поэтому разобраться в нём нужно до написания первого тест-кейса.
Нативные приложения пишутся на Swift (iOS) или Kotlin (Android), обеспечивают максимальную производительность и полный доступ к hardware: камере, GPS, NFC, биометрии. Тестируются нативными фреймворками — XCTest для iOS, Espresso для Android. Оба фреймворка охватывают определённые виды тестирования ПО — от юнит-тестов до UI-сценариев, — что важно учитывать при формировании стратегии покрытия.
Гибридные приложения работают через WebView-оболочку и создаются быстрее, но уступают нативным по скорости и UX. При тестировании важно проверять поведение WebView на разных версиях Android System WebView — они обновляются независимо от приложения.
Веб-приложения открываются в мобильном браузере без установки: кроссплатформенность достигается сразу, но доступ к функциям устройства ограничен. Тестирование во многом пересекается с адаптивным веб-тестированием.

Тестирование мобильных приложений — система, а не набор случайных проверок. Пропуск любого вида создаёт слепые зоны: безопасное и быстрое приложение может оказаться неудобным, а красивое — падать на бюджетных устройствах.
| Вид тестирования |
Цель |
Когда проводить |
Инструменты |
|---|---|---|---|
| Функциональное | Проверить соответствие требованиям | На каждом спринте | Ручное, Appium |
| UI/UX | Проверить интерфейс и удобство | После UI-изменений | Ручное, Percy |
| Производительности | Скорость, память, battery drain | Перед релизом | Xcode Instruments, Android Profiler |
| Совместимости | Корректность на разных устройствах и версиях ОС | Перед релизом | Firebase Test Lab, BrowserStack |
| Безопасности | Защита данных, HTTPS, аутентификация | Каждый релиз | MobSF, Burp Suite |
| Регрессионное | Убедиться, что новый код не сломал старое | После каждого изменения | Appium, Espresso, XCTest |
| Нагрузочное | Поведение при высокой нагрузке | Перед крупными релизами | JMeter, Gatling |
Чтобы системно освоить эти методики и выйти в профессию, можно пройти курс Тестировщик программного обеспечения от ProfiFuture — 7 недель онлайн, с господдержкой 75% стоимости.
Функциональное тестирование проверяет, делает ли приложение то, что описано в требованиях. Это базовый вид — без него остальное теряет смысл.
Тестирование делится на три потока. Позитивное (happy path): пользователь делает всё правильно — вводит корректные данные, нажимает нужные кнопки, получает ожидаемый результат. Негативное: намеренно неверные действия — неправильный пароль, буквы в числовое поле, отправка пустой формы.
Edge cases — граничные и нестандартные сценарии: первый запуск приложения, пустые состояния (нет контента, нет интернета), максимальные значения полей, эмодзи в полях ввода, дата 29 февраля, смена часового пояса в середине сессии. Сюда же входят push-уведомления и проверка API-интеграций.
Тест-кейс — основной инструмент. Он описывает не только ЧТО проверить (как чеклист), но и КАК: предусловия, пошаговые действия и ожидаемый результат. Разница принципиальна при регрессионном тестировании.
Производительность — то, что пользователь чувствует сразу. Если приложение стартует дольше трёх секунд, часть аудитории его уже закрыла.
| Метрика |
Описание |
Целевое значение |
|---|---|---|
| Cold start | Запуск с нуля, без кэша | < 3 сек |
| Warm start | Возврат из фона | < 1,5 сек |
| Screen load | Загрузка отдельного экрана | < 1 сек |
| FPS | Плавность анимаций и скролла | 60 кадров/сек |
| Memory usage | Потребление оперативной памяти | < 200 МБ |
| Crash rate | Доля сессий с падением | < 1% |
| Battery drain | Расход заряда за сессию | Оценивается индивидуально |
Три вида нагрузочного тестирования: нагрузочное (поведение при нормальной нагрузке, стабильность), стресс-тестирование (точка отказа, восстановление после пика), выносливость (утечки памяти за долгую сессию — 4–8 часов).
Инструменты: Xcode Instruments для iOS, Android Profiler для Android. Типичные решения: медленный старт — lazy loading; лагающий скролл — оптимизация изображений; утечки памяти — очистка кэша.
Матрица устройств строится на аналитике реальной аудитории — берётся Top-10 по популярности. Для нового продукта без накопленных данных: флагманы (последний iPhone, Samsung Galaxy S), средний сегмент (Pixel, Redmi Note), бюджетные устройства (Realme, базовые Xiaomi). Обязательно — минимальная поддерживаемая версия ОС, там чаще всего возникают проблемы совместимости.
Эмулятор или реальное устройство — вопрос задачи. Эмуляторы: ежедневная работа и CI/CD — быстрые, бесплатные, легко переключать конфигурации. Реальные устройства: финальное тестирование и hardware-функции — камера, NFC, биометрия, GPS. Облачные фермы — Firebase Test Lab, AWS Device Farm, BrowserStack — предоставляют сотни реальных устройств без физического парка в офисе. Отчёты содержат видео и скриншоты сбоев.
Безопасность — зона юридической ответственности: утечка данных пользователей влечёт штрафы и репутационные потери.
Три домена проверок. Хранение данных: пароли и токены хранятся только в Keychain (iOS) или Keystore (Android), не в обычных файлах; кэш очищается при logout. Сетевая безопасность: только HTTPS, certificate pinning там, где критично. Аутентификация: пароли хэшируются, есть защита от brute force.
OWASP Mobile Top 10 — стандарт для аудита безопасности: хардкод секретов в коде, небезопасное хранение данных, незащищённый HTTP-трафик. Инструменты: MobSF (статический анализ APK/IPA), Burp Suite (перехват HTTPS), Frida (динамический анализ во время выполнения). Минимальный аудит — перед каждым релизом; полный — регулярно, по расписанию.
Пирамида тестирования определяет, сколько каких тестов писать и когда их запускать. Модель работает для мобильных приложений без изменений и задаёт стратегию автоматизации.
Unit-тесты (70%) — самые быстрые и дешёвые. Тестируют изолированные функции и методы. Запускаются при каждом коммите; целевое покрытие критичной бизнес-логики — не менее 80%. Проблемы обнаруживаются за секунды.
Интеграционные тесты (20%) проверяют взаимодействие компонентов: как модуль авторизации работает с базой данных, как экран оплаты взаимодействует с платёжным шлюзом. Запускаются при merge в основную ветку.
E2E-тесты (10%) — самые медленные и самые ценные с точки зрения пользовательского опыта. Воспроизводят полные сценарии: регистрация → онбординг → первая покупка → выход. Запускаются перед релизом.
Регрессионное тестирование встроено в CI/CD: после каждого изменения кода автоматически прогоняются интеграционные тесты и smoke. Это позволяет обнаружить поломку сразу, а не накануне релиза.

Мобильные приложения используют функции, которых нет в вебе: push-уведомления, диплинки, биометрию, фоновый режим. Каждая требует отдельных тестовых сценариев — стандартными чеклистами не обойтись, и особенности мобильного тестирования здесь проявляются наиболее наглядно.
Push-уведомления тестируются в трёх состояниях приложения: активное, фоновый режим, экран заблокирован. Нужно убедиться, что уведомление приходит в каждом из них и открывает корректный экран.
Диплинки (глубокие ссылки) — схема://путь — нельзя открыть из обычного браузера или текстового редактора. Рабочие способы: чат в Slack (диплинки кликабельны), приложение Deeplink Tester на Android, команды ADB в терминале. Проверяйте не только факт открытия приложения, но и то, что открывается конкретный экран, а не главная страница.
Разрешения тестируются при согласии и при отказе. Приложение не должно падать, если пользователь не дал доступ к геолокации или микрофону — это обязательный негативный сценарий.
Поведение в фоне зависит от назначения: музыкальный плеер продолжает воспроизведение, видеоплеер — ставит на паузу. Оба поведения корректны, но каждое нужно явно протестировать.
Прерывания — входящий звонок, системное уведомление — не должны приводить к потере данных в незаконченной форме или к вылету приложения.
Биометрия особенно критична для банковских приложений: FaceID, отпечаток пальца, PIN-код — все три сценария, включая случай, когда биометрия не распознана.
Доступность (accessibility): тёмная тема — уже стандарт, не опция; высокий контраст, крупные кнопки; экранные дикторы VoiceOver (iOS) и TalkBack (Android) должны корректно озвучивать интерфейс. Смена ориентации экрана: адаптивная вёрстка обязательна — или явная блокировка ориентации. Третьего варианта, когда интерфейс просто ломается, быть не должно.
Пора сменить профессию? Начните с понятного плана
Подберите программу под ваш опыт, цели и желаемый формат занятости
Не все пользователи обновляются сразу. В продакшене одновременно живут несколько версий приложения — и все они должны корректно работать с текущим бэкендом.
При обновлении тестируют: установку, сохранение данных (сессии, настройки, файлы), обратную совместимость с форматом хранилища. Пользователь не должен обнаружить, что после обновления его корзина опустела или настройки сбросились.
Feature flag позволяет включать новый функционал постепенно. Принудительное обновление — перевод базы на новую версию через непропускаемый экран — отдельный сценарий для тестирования.
Набор инструментов зависит от задачи: ручное тестирование, автоматизация, безопасность или бета-тестирование. Один инструмент не закрывает всё — QA-инженер работает со стеком. Особого внимания заслуживает автоматизация тестирования: она охватывает разные подходы и инструменты, которые существенно различаются по назначению и порогу входа.
| Инструмент |
Платформа |
Назначение |
Стоимость |
|---|---|---|---|
| ADB | Android | Управление устройством, логи | Бесплатно |
| Charles | iOS / Android | Перехват HTTPS-трафика | Платно |
| Fiddler | iOS / Android | Перехват HTTP(S)-трафика | Бесплатно / Платно |
| TestFlight | iOS | Бета-тестирование | Бесплатно |
| Firebase App Distribution | iOS / Android | Бета-тестирование | Бесплатно |
| Appium | iOS / Android | Автоматизация UI-тестов | Бесплатно (open source) |
| Espresso | Android | Нативная автоматизация UI | Бесплатно |
| XCTest / XCUITest | iOS | Нативная автоматизация UI | Бесплатно (в Xcode) |
| Firebase Test Lab | iOS / Android | Облачная ферма устройств | Платно (есть бесплатный лимит) |
| MobSF | iOS / Android | Анализ безопасности APK/IPA | Бесплатно (open source) |
ADB (Android Debug Bridge) — командная строка для управления Android-устройствами: установка APK, снятие логов через logcat, изменение настроек, эмуляция событий. Используется и при ручном тестировании, и в автоматизированных пайплайнах.
Charles и Fiddler перехватывают HTTPS-трафик мобильного устройства — замена браузерным DevTools, которые в мобильном контексте недоступны. Через них видны запросы к API, заголовки и тела ответов.
TestFlight — стандартный инструмент бета-тестирования для iOS: бесплатный, позволяет откатиться на предыдущую версию. Firebase App Distribution выполняет аналогичную роль для Android и iOS.

Нативные фреймворки: XCTest / XCUITest (iOS, бесплатно в составе Xcode), Espresso (Android, нативный UI), JUnit (unit-тесты на Android).
Кроссплатформенные: Appium — наиболее популярный, работает по WebDriver-протоколу, поддерживает iOS и Android. Maestro — простой синтаксис и быстрый старт, подходит для небольших команд. Flutter Driver используется для приложений на Flutter.
Выбор фреймворка зависит от стека разработки и требований к CI/CD-интеграции.
Firebase Test Lab, AWS Device Farm, BrowserStack, Sauce Labs — реальные устройства в облаке без необходимости держать физический парк в офисе.
Интеграция с CI/CD позволяет запускать тесты на сотнях устройств автоматически. Отчёты приходят с видеозаписью сессии и скриншотами сбоев — их удобно прикладывать к баг-репортам.
Автоматизация оправдана при частых релизах (2 и более в месяц) и долгоживущих проектах от года. Что автоматизировать: регрессионные тесты, smoke-тесты, API-тесты, критичные бизнес-сценарии. Что не автоматизировать: нестабильный функционал, UX-тестирование, одноразовые проверки, исследовательское тестирование.
ROI считается просто: smoke вручную занимает 4 часа, в автоматическом режиме — 30 минут. При 20 запусках в месяц и ставке 2 000 ₽/час экономия составляет 140 000 ₽ ежемесячно.
Пайплайн CI/CD: коммит запускает unit-тесты и линтеры; merge в основную ветку — интеграционные тесты и smoke; финальный релиз — полный набор: регрессионное, нагрузочное и тестирование безопасности. Такой подход встраивает качество в процесс разработки, а не добавляет его в самом конце.

Перед каждым релизом тестирование мобильных приложений проходит через четыре блока проверок.
Функциональность: критичные пользовательские сценарии, негативные кейсы, edge cases (эмодзи, 29 февраля, максимальные значения полей), интеграции с API и push-уведомлениями.
Производительность: cold start менее 3 секунд, FPS не ниже 60, отсутствие утечек памяти, crash rate ниже 1%.
Совместимость: Top-10 устройств из матрицы, тёмная тема, минимальная поддерживаемая версия ОС, обе ориентации экрана.
Безопасность: хранение данных только в защищённых хранилищах, весь трафик через HTTPS, отсутствие секретов в коде.
Таймлайн: за 2 недели до релиза — полное регрессионное тестирование; за 1 неделю — баг-фикс; за 3 дня — smoke на финальном билде. Критерий готовности: crash rate ниже 1%, все критичные баги закрыты.

Мобильное тестирование учитывает фрагментацию тысяч моделей устройств (особенно Android), аппаратные ограничения (батарея, память), нестабильные сетевые условия (метро, роуминг) и разрешения ОС (камера, GPS, микрофон). В вебе критичны браузеры и адаптивная вёрстка — в мобильном добавляются прерывания (звонки, уведомления), управление жестами, версионирование приложения и процесс установки через магазин.
Эмуляторы подходят для ежедневной работы и CI/CD: быстрые, бесплатные, легко переключать конфигурации. Реальные устройства необходимы для финального тестирования и проверки hardware-функций — камеры, NFC, биометрии, GPS. Облачные фермы (Firebase Test Lab, BrowserStack) — компромисс: реальные устройства без необходимости держать парк в офисе.
Пирамида тестирования — модель распределения видов тестирования: 70% unit-тестов (при каждом коммите, покрытие ≥ 80% критичной логики), 20% интеграционных (проверяют взаимодействие компонентов при merge), 10% E2E-тестов (полные пользовательские сценарии, перед релизом). Модель применима к мобильным приложениям без изменений и определяет стратегию автоматизации.
Android: тысячи моделей, версии ОС 8–15, кастомные оболочки (MIUI, One UI, ColorOS) — фрагментация критична. iOS: закрытая экосистема (только App Store или TestFlight), модерация занимает несколько дней, платформа предсказуемее по устройствам. Языки разработки: Swift (iOS), Kotlin (Android). Среды разработки: Xcode и Android Studio соответственно.
Чеклист — список ЧТО нужно проверить, без деталей. Тест-кейс описывает КАК: предусловия, пошаговые действия, ожидаемый результат и условия проверки. Чеклист подходит для быстрых ежедневных проверок; тест-кейс — для регрессионного тестирования и документирования воспроизводимых сценариев.
Автоматизация оправдана при частых релизах (2+ в месяц) и долгоживущих проектах (от года). Автоматизировать стоит smoke-тесты, API-тесты и критичные бизнес-сценарии. Не автоматизировать: нестабильный функционал, UX-тестирование, одноразовые проверки. Ориентир ROI: smoke 4 часа → 30 минут; 20 запусков в месяц — 140 000 ₽ экономии.
Оптимально — взять аналитику аудитории и выбрать Top-10 устройств. Для нового продукта без данных: флагманы (последние iPhone, Samsung S-серия), средний сегмент (Pixel, Redmi Note), бюджетные устройства (Realme, базовые Xiaomi). Обязательно включить минимально поддерживаемую версию ОС — там чаще всего возникают проблемы совместимости.
Три домена: (1) хранение данных — только Keychain (iOS) или Keystore (Android), кэш очищается при logout; (2) сетевая безопасность — только HTTPS, certificate pinning; (3) аутентификация — пароли хэшируются, есть защита от brute force. Инструменты: MobSF (анализ APK/IPA), Burp Suite (перехват трафика), Frida (динамический анализ).
Открыть диплинк из обычного браузера или текстового редактора нельзя. Рабочие способы: чаты Slack (диплинки кликабельны), приложение Deeplink Tester на Android, команды ADB через терминал. Формат: схема://путь (например, tg://resolve?domain=example). Проверяйте, что ссылка открывает конкретный экран, а не главную страницу, и корректно работает при незалогиненном пользователе.
Пошаговый план: (1) изучить требования и пользовательские сценарии; (2) составить матрицу устройств; (3) написать тест-кейсы; (4) запустить функциональное тестирование на эмуляторе; (5) проверить edge cases; (6) перейти к тестированию производительности и безопасности перед релизом. QA-инженер подключается в идеале на этапе проектирования — не накануне релиза.
Превратите интерес к теме в новую профессию
Оставьте заявку — поможем выбрать программу и расскажем об условиях обучения
Оставить заявку