Rusau LearnВойти

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

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

Мобильные приложения бывают трёх типов: нативные пишут отдельно под Android и iOS, веб-приложение – это сайт, приспособленный под экран телефона, а гибридное соединяет веб-страницы с нативной оболочкой. Кроме обычных функциональных проверок, на телефоне проверяют прерывания вроде звонка или уведомления, установку и обновление, работу при плохой связи и смене сети, функции устройства, экраны, жесты и расход батареи. Тестируют на реальных устройствах, выбранных по статистике, и на эмуляторах, а интерфейс сверяют с гайдлайнами Android и iOS.

Мой видеоурок: Урок 23. Как тестировать мобильные приложения? Тестировщик мобильных приложенийОткрыть на YouTube
3 типа
нативные, гибридные и веб-приложения, примеры каждого просят на собеседовании
Прерывания
звонок или уведомление посреди работы, у сайта на компьютере такой проверки нет
Гайдлайны
правила дизайна Android и iOS, по ним сверяют интерфейс

Типы мобильных приложений

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

Веб-приложение – сайт, приспособленный под экран телефона, например мобильная версия ВКонтакте в браузере. Нативное приложение скачивают из магазина и пишут на языке платформы: Swift для iOS, Java или Kotlin для Android. Пример – Instagram. Гибридное приложение собрано из веб-страниц внутри нативной оболочки. Его тоже ставят из магазина, но часть экранов открывает веб-версию, как в некоторых агрегаторах новостей.

В свежих классификациях отдельно выделяют ещё кроссплатформенные приложения на Flutter или React Native и PWA. Их разбирает шпаргалка о типах мобильных приложений.

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

  • Веб-приложение

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

  • Нативное приложение

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

  • Гибридное приложение

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

На чём тестировать: статистика, устройства и эмуляторы

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

По возможности проверять стоит на реальном устройстве, а эмулятор брать, когда устройства нет. Звонки, уведомления, слабую сеть и разряд батареи эмулятор тоже умеет имитировать. В глоссарии ISTQB эмулятор принимает те же входные данные и выдаёт тот же результат, что настоящая система, а симулятор ведёт себя как она при контролируемых входных данных.

  • Версии систем

    Apple публикует доли версий iOS на developer.apple.com, а распределение версий Android показывает Android Studio при создании проекта. От версий зависит выбор устройств: не каждая версия iOS встаёт на любой iPhone.

  • Статистика рынка

    StatCounter показывает доли платформ, производителей, разрешений экрана и типов устройств по странам и за выбранный период. По таким данным видно, какие модели закупать в первую очередь.

  • Подборки устройств

    BrowserStack публикует списки моделей, которыми можно покрыть большинство пользователей при разном бюджете, от стартапа до крупной компании.

  • Эмуляторы и симуляторы

    Android Emulator входит в Android Studio, симулятор iOS – в Xcode. Через Android Studio подключают и настоящий телефон, чтобы снять с него логи для разработчика. У Genymotion есть парк виртуальных устройств и бесплатное пробное время.

  • Режим устройства в DevTools

    Для веб-приложения хватает Chrome DevTools: F12, затем Toggle device toolbar. Там выбирают разрешение или готовое устройство и смотрят, как ведёт себя адаптивная вёрстка.

  • Отладка по USB

    Если на Android включены режим разработчика и отладка по USB, Chrome на компьютере подключается к Chrome на телефоне через страницу chrome://inspect. По кнопке Inspect для вкладки открываются DevTools: видно её страницу с экрана телефона и все её запросы во вкладке Network, без сниффера вроде Charles или Fiddler.

Что проверяют только на телефоне

Мобильное приложение работает в условиях, которых у сайта на компьютере нет: посреди работы звонят, садится батарея, пропадает связь. Поэтому к обычным проверкам добавляется свой набор. Сколько проверок делать, зависит от требований заказчика и от времени на тестирование.

Допустим, пользователь оформляет заказ в приложении магазина и уже ввёл адрес, когда ему позвонили. После звонка он возвращается в приложение и видит введённый адрес на месте, корзина не опустела, приложение не перезапустилось. Тот же сценарий повторяют с push-уведомлением, с переходом с Wi-Fi на мобильную сеть на шаге оплаты и на низком заряде, когда телефон переходит в режим энергосбережения.

  • Прерывания

    Входящий звонок, исходящий звонок при свёрнутом приложении, push-уведомление или окно другого приложения, низкий заряд, подключение зарядки, сворачивание и разворачивание. После прерывания приложение не вылетает, не зависает и возвращается в то же состояние, если хватает оперативной памяти.

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

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

  • Сеть

    Работа через Wi-Fi и мобильные сети разных поколений, при хорошей связи, при плохой и без неё, потеря связи посреди действия и переключение, например с 4G на Wi-Fi.

  • Функции телефона

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

  • Экран

    Размеры, разрешения и форм-факторы, если заявлены и телефон, и планшет. Отдельно проверяют поворот: в вертикальном и горизонтальном положении всё должно отрисовываться правильно.

  • Жесты

    Нажатия, свайпы, увеличение и уменьшение щипком, а на некоторых моделях жесты костяшками пальцев.

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

    Скорость отклика на нажатие и свайп, расход оперативной памяти и поведение при падающем заряде. Стоит смотреть, не начинает ли приложение тормозить, хоть на каждых 10% батареи.

  • Карта памяти

    На Android приложение иногда ставят на карту памяти, и тогда установку, удаление и обновление проверяют и там.

Привычные виды тестирования на мобильном

Мобильные проверки идут вместе с привычными видами тестирования. Главным я считаю функциональное: приложение должно делать то, что заявлено в требованиях, и с него начинают.

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

  • Тестирование документации

    Требования к мобильному приложению проверяют так же, как к любому другому.

  • Юзабилити и интерфейс

    Расположение кнопок и элементов сверяют с гайдлайнами Android и iOS и с макетами UX-дизайнера.

  • Совместимость и конфигурации

    Приложение работает на заявленных версиях системы и моделях устройств.

  • Безопасность

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

  • Восстановление

    После сбоя приложение возвращается к работе и не теряет данные.

  • Локализация

    Тексты, форматы и интерфейс на каждом языке, под который выпускают приложение. Игры, например, часто выходят сразу на нескольких. В приложении бронирования отелей с немецким языком тестировщик переключает язык телефона и проходит бронирование целиком. Немецкие надписи обычно длиннее английских, поэтому ищут обрезанный текст на кнопках, а даты и цены сверяют с местным форматом: 05.11.2026 и 120,50 €.

  • Бета- и сертификационное тестирование

    Бета-версию отдают части пользователей до релиза. Под сертификационным тестированием я понимаю проверку на соответствие требованиям Apple и Google к публикации в магазине.

Гайдлайны Android и iOS

Гайдлайны – правила платформы о том, как приложение выглядит и ведёт себя: какими бывают элементы и где они стоят, как устроена навигация, как интерфейс отвечает на нажатия. У Android это рекомендации по дизайну на developer.android.com, основанные на Material Design, а у Apple это Human Interface Guidelines. Приложение, которое им не соответствует, магазин может отклонить.

Для тестировщика гайдлайны работают как готовая документация. Даже если требования к интерфейсу написаны скупо, по гайдлайну видно, как должен выглядеть и реагировать каждый элемент, и собирать требования становится проще.

Например, на Android системная кнопка или жест "Назад" со страницы товара в приложении магазина возвращает в каталог на то же место списка. На iPhone того же ждут от свайпа от левого края экрана. Если на каком-то экране свайп не срабатывает или выбрасывает в начало каталога, это расхождение с Human Interface Guidelines, и его заводят как баг.

Тому, кто идёт в мобильное тестирование, я советую выучить оба гайдлайна. На собеседовании спрашивают, какие бывают элементы интерфейса и чем они различаются на Android и iOS.

Видеоуроки, шпаргалки и задания

Я разбираю мобильное тестирование в нескольких уроках курса "Тестировщик с нуля" на YouTube. Двадцать третий урок посвящён типам приложений, статистике, гайдлайнам и эмуляторам, двадцать пятый – проверкам, которые нужны только на телефоне. В бесплатном базовом курсе по тестированию теме отведены уроки "Типы мобильных приложений" и "Особенности тестирования мобильных приложений", и после теории в них есть задания.

Шпаргалки разбирают типы приложений вместе с кроссплатформенными и PWA и особые проверки мобильного тестирования. В тренажёре по мобильным жестам нужно найти, что проверить в приложении помимо кнопок.

Курсы по теме

Вопросы и ответы

Какие бывают типы мобильных приложений?

Нативные, гибридные и веб-приложения. Нативные пишут отдельно под каждую платформу и ставят из магазина, веб-приложение – это сайт, приспособленный под телефон, а гибридное соединяет веб-страницы и нативную оболочку. В свежих классификациях отдельно выделяют ещё кроссплатформенные приложения и PWA.

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

К обычным видам тестирования добавляются проверки, которых у сайта на компьютере нет: прерывания звонком и уведомлениями, установка и обновление, плохая связь и смена сети, функции телефона, разные экраны и поворот, жесты, расход батареи и памяти. Интерфейс сверяют с гайдлайнами Android и iOS.

Что такое тестирование прерываний?

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

Чем эмулятор отличается от симулятора?

По глоссарию ISTQB эмулятор принимает те же входные данные и выдаёт тот же результат, что настоящая система, а симулятор ведёт себя как она при контролируемых входных данных. Android Emulator из Android Studio относится к эмуляторам, iOS Simulator из Xcode к симуляторам. По возможности проверять стоит на реальном устройстве.

Где взять устройства для тестирования мобильных приложений?

Список моделей составляют по статистике: StatCounter, сайты Android и Apple для разработчиков, подборки BrowserStack. Проще всего закупить эти устройства, а когда бюджета нет, взять эмулятор Android Studio, симулятор Xcode и сервисы виртуальных устройств вроде Genymotion.

Что спрашивают на собеседовании мобильного тестировщика?

По моему опыту, типы приложений с примерами, гайдлайны Android и iOS и различия их элементов, основные мобильные проверки, работу с эмуляторами и умение снимать логи с устройства.

Посмотреть программы курсов

Программа каждого курса открыта целиком: видны все модули, уроки и число шагов.

Все курсы

Здесь используются cookies: без них сайт не работает, и по ним видно, откуда о платформе узнают.Cookies нужны для входа и учёта переходов. Подробнее