Как тестируют мобильные приложения?

Блог

Чем тестирование мобильных приложений отличается от сайтов и десктоп программ? Где чаще всего попадаются баги и как мы их ловим — рассказываем в этой статье.

Особенности мобильного тестирования

Главная особенность мобильного тестирования – необходимость проверок на большом количестве конфигураций устройств. Ведь на каждой модели телефона приложение может вести себя по-своему.

Относительная лёгкость данного тестирования в том, что обычно в мобильных приложениях нет громоздкого функционала и нужды в объёмных тестах. А главная сложность – в ширине функционала. С каждым обновлением увеличивается аппаратная и программная опциональность, используются дополнительные приспособления: сим-карты, наушники, стилусы, bluetooth-устройства и прочее. 

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

Чек-лист тестирования мобильного приложения

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

  • Поля ввода;
  • Пуш-уведомления;
  • Работа приложения в разных режимах: portrait/landscape, split screen;
  • Геолокация;
  • Прерывания;
  • Поддержка платёжных систем (если присутствуют платёжные транзакции);
  • Соответствие гайдлайнам операционных систем;
  • Влияние на производительность устройства.

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

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

1. Функциональное тестирование

Это тестирование проверяет, работает ли заложенный функционал в соответствии с предъявленными требованиями. В рамках функционального тестирования обязательно провести следующие  проверки: 

  • Тестирование процесса установки;
  • Эксплуатационное тестирование;
  • Тестирование возможности обновлений;
  • Тестирование процесса регистрации и авторизации;
  • Тестирование специфических для устройства функций;
  • Тестирование отправки и получения сообщений об ошибках;
  • Тестирование ресурсов: использование памяти, автоматическое освобождение ресурсов и т.д.;
  • Тестирование сервисов: функционирование как в режиме онлайн, так и в автономном режиме.

2. Внешние события или тестирование прерываний

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

3. Тестирование производительности

Здесь можно выделить 3 основных направления:

  • Производительность устройства
    Показывает насколько стабильно ПО функционирует на девайсах с различными параметрами и помогает убедиться, что пользователи не столкнутся с задержками или потерей данных во время использования мобильных приложений. К примеру, потенциально проблемным местом для продукта является потребление памяти и расход заряда батареи. Также на этом этапе проверяется скорость работы приложения.
  • Производительность сервера
    Этой проверкой можно узнать, насколько оперативно отвечает сервер и обрабатываются данные.
  • Производительность сети
    Основные тестируемые параметры этого уровня – задержка и пропускная способность. Работу приложения следует проверять подключением к различным сетям (3G-, 4G- и 5G-сети).

4. Тестирование безопасности

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

5. Тестирование юзабилити

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

Разница тестирования для Android и IOS

Операционные системы Google Android и Apple iOS имеют достаточное количество отличий. Идейная разница базовых отличий в следующем: 

  • Human Interface Guidelines (iOS) — про дружелюбность, лёгкость.
  • Material Design (Android) — смелость, сознательность и гибкость. 

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

Навигация

У Android, в отличии от iOS, есть два вида навигации назад. Одна осуществляется с помощью стрелки назад в Navigation Bar, другая – при помощи верхней стрелки, переходя на дочернюю страницу.В iOS практически не используют тени, а в Android происходит смена состояний.
Во верхнеуровневой навигации iOS рекомендует только один способ через Tab Bar, а у Android есть три способа: Navigation Drawer, Bottom Navigation Bar и Tabs.
Появление дочернего экрана в iOS происходит так: дочерняя страница появляется справа поверх материнской с эффектом slide in, а возвращение – slide out. У Android пользователю показывается иерархическая взаимосвязь с помощью осмысленной анимации.
Также необходимо учитывать разное поведение контента при скролле и разницу в поведении поиска. 

Размер экрана и разрешения

В данном случае ситуация с Android немного сложнее, так как устройств на этой базе операционной системы больше, чем на iOS. Следовательно, тестируя Android, придётся принимать во внимание большое количество гаджетов с разными параметрами экранов.
Невозможно проверить абсолютно все мобильные устройства, которые могут быть у пользователей. Но грамотная стратегия тестирования поможет приблизиться к совершенству. На помощь в тестировании большого парка устройств приходят эмуляторы (например Browserstack, Genymotion) и симуляторы (Android Studio или Xcode). Но в любом случае, лучше всего тестировать приложения на реальных девайсах.
Правильным шагом будет собрать статистику о наиболее популярных устройствах. А ещё важно проверить функционал на самой старой и самой новой из поддерживаемых ОС. Отдельное внимание – девайсам с кастомизированными прошивками: Xiaomi, Huawei, Samsung.

Анализ сетевого трафика

Не следует останавливаться только на анализе внешнего поведения программ. Также есть необходимость анализа сетевого трафика: обрыв сети и слабый интернет, исходящие запросы и полученные ответы.
Просмотр трафика позволит более глубоко погрузиться в оценку функциональности, обнаружить дефекты, которые не были заметны визуально, и точнее диагностировать причины их возникновения. Для этого используют трафик-снифферы. Например, Charles, Fiddler, Proxyman.

Подведём итог

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

Хотите, чтобы ваше приложение работало как часы, а пользователи были довольны? Обращайтесь к нам на hello@qualitica.ru.