Трудно представить современную жизнь без мобильных устройств и, соответственно, без мобильных приложений. Неотъемлемой частью разработки таких приложений является их тестирование. Грамотный подход к организации тестирования мобильного приложения позволит правильно оценить время на проверку и создать удобный и качественный продукт.
Цена ошибок при тестировании очень высока. Для коммерческих приложений она может выражаться в снижении числа пользователей и возможных клиентов, а также в ухудшении репутации компании-разработчика. Для приложений, участвующих в производственных процессах или социальных сферах, – в недовольстве пользователей и в потере прибыли.
Поэтому мы рассмотрим основные аспекты, на которые требуется обращать внимание при тестировании мобильных приложений.
Подготовка к планированию
Прежде чем приступать к подготовке плана тестирования, необходимо определить границы этого тестирования, то есть список платформ, операционных систем и устройств, на которых требуется провести тестирование мобильного приложения.
Выбор платформы обычно обусловлен назначением приложения и требованиями заказчика. Приложения для широкого круга пользователей чаще всего выпускаются на двух платформах: IOS и Android (по статистике 98% приложений создано на IOS и Android платформах, и лишь 2% используют остальные платформы). Узкоспециализированные приложения или игры, как правило, реализуются на одной платформе.
Выбор версии ОС. Лучше всего взять самые популярные версии с официальных сайтов developer.android.com и developer.apple.com. Не стоит забывать и про более старые версии, т.к. не все смартфоны и планшеты позволяют обновиться до популярной или свежей версии ОС, да и многие пользователи просто не хотят этого делать.
Во время работы над долгосрочным проектом необходимо пересматривать состав версий, выбранных для тестирования. В новых релизах могут не поддерживаться некоторые компоненты из предыдущих версий, что потребует доработки мобильного приложения.
Выбор моделей устройств. В связи с огромным числом производителей и моделей смартфонов и планшетов становится очевидным, что охватить при тестировании весь спектр устройств не получится. Следовательно, стоит выбирать несколько моделей, отличающихся друг от друга техническими характеристиками (размером и разрешением экрана, объемом памяти).
На покупке всего спектра мобильных устройств можно сэкономить, воспользовавшись эмуляторами. Придется повозиться с их установкой, но взамен вы получите доступ ко всем необходимым моделям и возможность быстро переключаться с одного устройства на другое. Эмуляторы незаменимы при тестировании верстки и геолокации. При этом нужно понимать, что эмулятор никогда не заменит реальное устройство. Также не стоит тратить время на симуляторы, т.к. они просто изображают окружение оригинального устройства и никак не затрагивают его начинку (железо), а ведь она может повлиять на результат.
Таким образом, для полного тестирования мобильного приложения можно ограничиться 3-4 реальными устройствами, а при необходимости провести выборочное тестирование (тестирование основных функций приложения) на эмуляторах.
Планирование работ по тестированию
После определения границ тестирования можно приступать к планированию самих работ. Необходимо отметить, что тестирование мобильного приложения занимает значительно больше времени, чем, например, веб-сайта или десктопного приложения, т.к. требуется учесть некоторые особенности и заложить время на следующие дополнительные проверки:
- тестирование требований на полноту и внутреннюю непротиворечивость;
- тестирование совместимости версий АПИ;
- тестирование работы приложения на разных физических устройствах;
- юзабилити-тестирование.
Подробнее рассмотрим каждый из этих пунктов.
Тестирование требований
На последнем проекте по тестированию мобильного приложения в сфере ЖКХ мы столкнулись с необходимостью тестирования требований. Это не было включено в обязательный набор проверок при тестировании доработок, но в процессе написания чек-листов мы не раз сталкивались с тем, что техническое задание было неполным (не учитывало специфику мобильных приложений или противоречило спецификациям для веб-приложения). Разработчики также могли при реализации требований не обратить внимания на этот факт и сделать так, как им казалось удобнее. В итоге мы получали на тестирование такую версию приложения, которая по-разному вела себя на разных платформах или вообще выпадала в системные ошибки при неучтенных в ЧТЗ комбинациях действий пользователя. Исправление уже реализованного функционала и его ретест требовали дополнительного времени. В конечном итоге мы стали еще до передачи требований в разработку проводить их оценку и формулировать указания аналитику на возможные трудности и неучтенные моменты.
Тестирование совместимости API
Еще один фактор, увеличивающий время тестирования, – это постоянно меняющаяся функциональность тех веб-приложения, по аналогии с которым реализовывалось мобильное приложение. Релизы программы не успевали за изменениями веб-версии, структура данных изменялась, и веб-сервисы переставали возвращать нужные для МП данные. В связи с этим неотъемлемой частью процесса стало тестирование API. Проверка состава и формата передаваемых и возвращаемых через REST-сервисы данных позволяет своевременно обнаруживать и исправлять те места, где мобильное приложение отстает от веб-версии. Более подробно об этом можно прочитать в статьях Освоение тестирования REST API и Автоматизация тестирования REST API при помощи Postman и JavaScript.
Тестирование на физических устройствах
На этапе функционального тестирования основных проверок на соответствие функций приложения спецификациям необходимо проводить тестирование поведения приложения в различных ситуациях, а именно:
- переход в фоновый режим при поступлении звонков и sms, срабатывании будильника;
- работу приложения при подключении к другим устройствам;
- работу с разными видами интернет-подключений (Wi-Fi, 4G, 3G);
- обработку ситуаций отсутствия связи (вывод сообщений при отключении интернет-соединения и корректное продолжение работы при его восстановлении);
- процесс переустановки и обновления приложения до новой версии.
Поскольку эти проверки очень сильно зависят от различных технических условий и специфических ситуаций, при их проведении не обойтись без реальных устройств. Более того, эмуляторы мобильных телефонов не дают вам реальных показателей скорости работы приложения, производительности и отзывчивости настоящего телефона. Также на эмуляторе трудно оценить и удобство приложения. Да, большую часть функционального тестирования можно провести с помощью эмуляторов, но проверить поведение приложения в реальных условиях можно лишь с использованием настоящих смартфонов и планшетов.
Юзабилити-тестирование
Еще одним неотъемлемым этапом тестирования МП является юзабилити-тестирование. Здесь очень важно обеспечить для пользователя максимальный комфорт при работе с приложением, который подразумевает выполнение следующих требований:
- быстрота работы;
- простота и понятность интерфейса;
- минимальный ввод данных с клавиатуры;
- наличие индикации (отклика) на действия пользователя.
Также необходимо, чтобы приложение соответствовало общепринятым стандартам (руководствам) по стилю.
Выше мы описали проверки для мобильных приложений, которые имеют принципиальные отличия от тестирования веб-сайта или десктопного приложения. При этом не стоит забывать о том, что потребуется провести полное функциональное и нагрузочное тестирование, тестирование безопасности и совместимости. Об этом можно прочитать в других статьях нашего блога:
Подводя итоги, можно сказать, что при тестировании мобильного приложения необходимо уделить особое внимание выбору парка устройств, на которых будет проводиться тестирование, учесть время на тестирование требований и API, а также осуществить полную качественную проверку поведения приложения в реальных условиях использования мобильного устройства. Самое же главное – обеспечить для пользователя простоту и удобство работы с данным мобильным приложением.