Тестирование мобильных приложений — в чем особенность?
Я искренне люблю мобильное тестирование, и в этой статье расскажу, что нужно знать, если вы решили погрузиться в эту область. Сделаю акцент на андроид, однако для ios большинство тезисов также применимы.
Начнем с девайсов
У ваших пользователей есть целый зоопарк устройств. Это могут быть планшеты и телефоны от различных производителей с разными версиями Андроида, разрешениями экрана, диагональю, прошивками и другими характеристиками. На Хабре есть хорошая статья про фрагментацию устройств на Андроид.
Как же учесть это, ведь невозможно протестировать приложение на всех вариантах устройств? Стоит выбирать наиболее популярные среди ваших пользователей девайсы, а еще тестировать на самой старой и самой новой из поддерживаемых ОС. Также важно проверять приложение девайсах с сильно кастомизированными прошивками. Например, xiaomi, huawei, samsung.
Перейдем к ui и ux
Для каждой из платформ существуют гайдлайны: Google Material Design для Android и Human Interface Guidlines для ios. В гайдлайнах описаны элементы интерфейса, их размеры, расположение на экране и не только. Гайдлайны нужны, чтобы создавать такой дизайн, который позволит пользователю не думать над простыми действиями. Например, над навигацией или выбором элементов. А еще гайдлайны пригодятся, чтобы один и тот же дизайн был одинаково функционален на разных девайсах и разных версиях платформы. Хорошее приложение должно следовать гайдлайнам, а тестировщик проверить это.
Кроме требований гайдлайнов, важно тестировать то, как пользователь взаимодействует с девайсом. Он может изменить размер шрифта, повернуть экран в ландшафтную ориентацию или свернуть приложение.
Рассмотрим разрешения
У каждого приложения на платформе Андроид есть список разрешений (permissions). Например, разрешения на доступ к файловой системе, местоположению или камере. В зависимости от функционала, приложение запрашивает их у системы. Для успешного тестирования стоит выяснить, при каких действиях приложение запрашивает разрешения, и протестировать эти действия с выданными разрешениями и без них.
Потестируем запросы
Приложение — это в первую очередь про фронтенд. Для взаимодействия с бекендом оно использует http-запросы. Запросы, как известно, могут возвращать разные коды ответа. Например, 400, 500 и другие. А также ответы могут приходить с таймаутом. Тут важно протестировать реакцию приложения на различные коды ответа, таймауты разной длины и измененное body ответа. Для тестирования подобных ситуаций используются снифферы — инструменты для перехвата трафика и подмены запросов и ответов. Снифферы позволяют изменять запрос и ответ целиком или частично. Самые популярные — это Charles и Fiddler. О работе с ними я постараюсь рассказать подробнее в отдельной статье.
Обновим приложение
У приложения на Андроид есть своя база данных, которая хранится прямо на устройстве. Добавляя новые фичи, разработчик меняет и базу: удаляет, изменяет, добавляет поля и таблицы. Чтобы протестировать это, обновим приложение до версии, в которой база изменена. После обновления нужно проверить тот функционал, который был затронут при разработке.
Используем функции девайса
Кроме вашего приложения, пользователь совершает очень много действий на девайсе. Как отреагирует приложение, если пользователь изменит часовой пояс, дату или время? А если девайс перезагрузят? А если сеть станет не доступна на несколько минут, или пользователь переключится с wi-fi на мобильную сеть? Казалось бы, это внешний функционал операционной системы, но он напрямую влияет на работу приложения. Протестируем поведение приложение в перечисленных условиях.
Давайте зарелизим
Если вы тестировали веб-приложения, то наверное знаете, что можно в любой момент выложить изменения в продакшн, используя пару нехитрых команд git. И буквально в считанные секунды ваши пользователи получат новый функционал. У мобильных приложений такие быстрые релизы невозможны.
Когда билд готов к релизу, его загружают в Play Market или App Store. Там приложение проходит ревью и становится доступным для скачивания. Однако пользователи получат новый релиз только когда обновятся. А это процесс не быстрый. У большинства пользователей может быть отключено автообновление, и они могут месяцами откладывать обновление вручную.
К счастью, в вашем приложении может присутствовать механизм принудительного обновления. Это может быть экран с просьбой обновиться и кнопкой или баннер с предупреждением. Все зависит от фантазии команды разработки.
Подытожим
Мобильные девайсы и платформы часто обновляются, Google меняет требования к разработке, а рынок мобильных приложений растет. Именно поэтому тестировать мобильные приложения всегда интересно!
Я описала лишь основные направления тестирования мобильных приложений. По каждому из них можно написать несколько более подробных статей, но я надеюсь, что мир мобильных приложений теперь стал для вас немного приветливей!
Как тестируют мобильные приложения?
Чем тестирование мобильных приложений отличается от сайтов и десктоп программ? Где чаще всего попадаются баги и как мы их ловим — рассказываем в этой статье.
Особенности мобильного тестирования
Главная особенность мобильного тестирования – необходимость проверок на большом количестве конфигураций устройств. Ведь на каждой модели телефона приложение может вести себя по-своему.
Относительная лёгкость данного тестирования в том, что обычно в мобильных приложениях нет громоздкого функционала и нужды в объёмных тестах. А главная сложность – в ширине функционала. С каждым обновлением увеличивается аппаратная и программная опциональность, используются дополнительные приспособления: сим-карты, наушники, стилусы, 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.
Тестировать мобильные приложения
Тестирование на мобильных приложениях — новая отрасль. Тут нет еще многих набитых шишек и готовых фреймворков и инструментов для тестирования.
Это сложно, но и безумно интересно — как отреагирует ПО, если тебе звонят или приходит смс? А если просто push-уведомление? А если свернуть экран? И многие другие вопросы, которые не возникнут в вебе или десктопе
Полезные статьи:
- Особенности тестирования мобильных приложений в целомПодробная статья от Константина Шлыкова
- Tips&Tricks начинающемуПополняемая статья для новичков
- Снятие скриншотов и логовiOS, Android, Blackberry
- Построение мобильной тест-лабораторииИсходная статья и комментарии
- Тестирование мобильных приложенийОбщее
- Тестирование мобильных приложений: tips & tricksХабрХабр, от компании Badoo
- Инструменты тестирования приложений для мобильных устройствОбзор вариантов и возможностей
- Подборка полезных ссылокот Екатерины Михеевой к докладу «Тысяча и один UI-баг»
Другие материалы:
- Чеклист для тестирования мобильных приложенийРаспечатай и применяй 🙂
- Типичные баги на мобильных устройствах3 телефона = 90% багов, а вам слабо?
- Эвристики, мнемоники в тестировании мобильных приложенийИ другие греческие слова исследовательского тестирования в докладе Владислава Романенко
- Тестирование игр на мобильных телефонахКурс молодого бойца, но чуток устаревший
- Тестирование мобильных приложений: начальный уровеньТренинг Арсения Батырова
© 2014 — 2023
ООО «Тестбейз»
ИНН 9727006330
ОГРН 1227700497309
Какие особенности есть при тестировании мобильных приложений
Тестирование мобильных приложений — особенности Quality assurance
Главная особенность тестирования мобильных приложений заключается в том, что QA инженеру нужно проверить корректность его работы на большом количестве устройств, поскольку на разных моделях оно может повести себя абсолютно непредсказуемо. Учитывая разнообразие мобильных телефонов на рынке, эта задача существенно усложняется.
Также при мобильном тестировании стоит учитывать другие значимые отличия приложений на смартфон от десктопных версий:
- мобильное приложение имеет ограниченные ресурсы и мощность;
- смартфоны могут работать на разных операционных системах и иметь разную конфигурацию компонентов;
- основная задача телефона — совершать звонки, и приложение не должно препятствовать этой функции;
- смартфоны используют разные типы подключений — 3G, 4G, Wi-Fi;
- качество соединения с интернетом на смартфоне не всегда стабильно, что нужно учитывать в приложении;
- мобильные приложения должны поддерживать несколько каналов ввода данных — клавиатура, голос, жесты и прочее.
- ОС смартфонов часто обновляется, и пользователь не должен испытывать каких-либо сложностей после каждого такого апгрейда и, в случае, если он отказался от его установки.
Кроме того, в процессе тестирования мобильного приложения QA-специалист обязан учитывать его тип — нативное, гибридное или PWA.
Quality assurance
Виды тестирования мобильных приложений Quality assurance
Существует два основных метода тестирования мобильных приложений : ручное и автоматизированное. Чаще всего, QA специалисты комбинируют эти подходы для получения наилучшего результата. Рассмотрим каждый из них подробнее.
Автоматизированное тестирование
Используется для проведения трудоемких и утомительных тестов, и позволяет получить быстрые, эффективные и точные результаты. Одновременно можно проводить несколько автоматизированных тестов на разных устройствах, что существенно ускоряет процесс проверки работоспособности проекта.
Чаще всего этот метод используется для:
- Регрессионного тестирования — когда нужно убедиться, что исправленные баги не повлияли на работоспособность на уже проверенный функционал.
- Тестирования производительности — автоматические тесты быстро и точно определяют, насколько быстро и стабильно приложение работает на разных гаджетах или в разных условиях.
- Повторное тестирование — в долгосрочной перспективе использование существующих сценариев тестирования становится очень рентабельным.
Ручное тестирование
Ручное тестирование позволяет получить первый пользовательский опыт реального человека. К тому же, для небольших проектов, разработка автоматизированных сценариев тестирования может оказаться слишком затратной.
Такой метод чаще всего используется для:
- Юзабилити-тестирования — тестировщик может определить, насколько приложение удобно для пользователя, и что в нем можно усовершенствовать для улучшения пользовательского опыта.
- Ad-hoc тестирования — своеобразный «краш-тест» для приложения, в ходе которого тестировщик выполняет хаотичные действия с целью взломать ПО и найти «узкие места».
Кроме того, ручное тестирование позволяет обнаружить проблемы, связанные со сложными вариантами использования приложения.
Quality assurance
Чек лист тестирования мобильного приложения Quality assurance
QA позволяет своевременно выявить наличие ошибок и на ранних этапах их устранить, а чтобы в ходе тестирования ничего не пропустить, мы подготовили чек лист тестирования мобильного приложения .
Функциональное тестирование
Основной вид тестирования, в ходе которого проверяется работоспособность всех функций приложения их взаимодействие, и соответствие заявленным требованиям.
Функциональное тестирование можно разделить на 4 этапа:
- Компонентное — проверка работоспособности компонентов приложения. Чаще всего выполняется программистами, а не тестировщиками.
- Интеграционное — проверяется взаимодействие всех компонентов продукта.
- Системное — тестировщик проходит по всем возможным сценариям работы с приложением, чтобы убедиться в корректности работы всего продукта.
- Приемочное — финальный этап функционального тестирования, в ходе которого QA-инженер должен удостовериться, что ПО соответствует техническому заданию, и все требования клиента удовлетворены.
Тестирование совместимости
Мобильные приложения могут использоваться на самых разнообразных устройствах, в том числе — устаревших. Поэтому, чтобы не потерять часть своей аудитории, в ходе QA нужно проверить корректность работы проекта на разных смартфонах с разными параметрами и конфигурациями.
- работа приложения на разных мощностях гаджетов;
- сколько свободной памяти нужно для корректной работы приложения;
- как отображается интерфейс на разных экранах;
- не мешает ли приложение другим функциям устройств.
Тестирование безопасности
Чаще всего приложение взаимодействует с личными данными пользователей, поэтому важно убедиться что эти данные находятся в безопасности.
Тестирование удобства использования
То, насколько пользователю будет удобно и комфортно пользоваться приложением, во многом предопределяет судьбу всего проекта, поэтому юзабилити тестируется в любом продукте, вне зависимости от его масштаба.
На этом этапе важно определить, насколько у приложения простой и понятный интерфейс, как много шагов нужно преодолеть человеку, чтобы совершить целевое действие, есть ли отвлекающие факторы и как от них избавиться, сможет ли клиент пользоваться приложением, держа гаджет одной рукой — например, находясь в общественном транспорте и т.д. Эти детали формируют пользовательский опыт, на основании которого аудитория будет принимать решение — оставить приложение в своем смартфоне или удалить.
Тестирование производительности
Помогает определить, насколько корректно продукт работает при разных уровнях нагрузки, и как поведет себя в критической ситуации — например, во время крупных скидок.