Пролог
Тестирование – важный этап разработки, без которого нельзя гарантировать корректную и бесперебойную работу сайта / сервиса / мобильного приложения. Оно требует больших финансовых и временных затрат, но это того стоит.
Дороже всего тестировать мобильные приложения – и связано это, как правило, с несколькими факторами. Давайте вместе разберемся, с какими :)
Парк устройств
Самая большая сложность – необходимость иметь большой парк гаджетов, у каждого из которых свои особенности и характеристики, продиктованные разницей в операционных системах, а также техническими параметрами устройства.
Конечно, проверить приложение на абсолютно всех видах мобильных телефонов и планшетов невозможно. Однако нужно охватить как можно больше свойств на минимальном количестве устройств. В результате складывается внушительный набор проверок – и вот несколько основных:
Операционная система
Операционная система (далее ОС), пожалуй, самый важный фактор, на который стоит обратить внимание при тестировании. Если иного не сказано в требованиях, то современное мобильное приложение должно поддерживать и Android, и iOS, иначе пользователи просто не смогут работать с приложением, а заказчик потеряет аудиторию.
Версии ОС
Не менее важно проверить корректную работу приложения в разных версиях операционных систем. Обычно тестирование проводится на 2-3 последних популярных версиях, например, на 16 и 17 iOS, 12 и 13 Android.
Необходимо поддерживать и старые виды операционных систем, так как многие продолжают ими пользоваться. Каждая версия может работать с одними и теми же компонентами по-разному, что зачастую приводит к непредвиденным проблемам. Как правило, основные ограничения по использованию приложения приходятся именно на минимальную поддерживаемую версию ОС. Это умножает каждую проверку на 5-6 итераций.
Размер и разрешение экрана
Помимо тестирования приложения в популярных ОС и на разных версиях, нужно проверить его на устройствах с различным размером экрана. Для этого стоит брать минимум по 2-3 гаджета для каждой ОС:
- самых популярных среди пользователей размеров — 6-7 дюймов для смартфона и 9-12 для планшета
- минимальных используемых размеров с учетом поддерживаемых версий ОС — для телефона это 4-4,5 дюйма, для планшета – 7
Также необходимо проверить приложение на 2-3 типах устройств с разным разрешением и проверить корректность отображения элементов интерфейса при изменении масштаба на устройствах.
Важно понять, все ли элементы умещаются на экран, достаточный ли у них размер для полноценной работы, не перекрывают ли они друг друга, все ли тексты и подсказки на своих местах, понятно ли, к какому блоку функционала они принадлежат.
Производительность
Стоит проверить работу приложения и на устройстве с минимально возможной конфигурацией, что поможет посмотреть стабильность и производительность. Эти показатели оказывают сильное влияние на работу программы – например, она может просто закрыться, если ей не хватит памяти или скорости интернета.
Из-за большого разнообразия устройств, конфигураций и различных версий одну и ту же проверку тест-кейса необходимо провести минимум 4-6 раз — и это при условии что один девайс покрывает сразу несколько критериев проверки. Только так можно максимально протестировать все потенциальные виды устройств будущих пользователей.
Поведение приложения на устройствах
На этом особенности проверки не заканчиваются. Следующий важный момент – это тестирование поведения приложения в условиях, присущих только мобильным устройствам.
На что обязательно нужно обращать внимание при тестировании:
- как поведет себя система, если во время работы поступил телефонный звонок или смс,
- что произойдет с приложением, если его свернуть / развернуть / закрыть / остановить,
- насколько стабильно будет работать приложение на устройствах, где периодически возникает недостаток памяти,
- как работает приложение в условиях плохого приема сигнала – LTE, слабый Wi-Fi, перебои в работе Интернета или вообще его отсутствие, режим ожидания,
- как поведет себя система при смене ориентации экрана,
- насколько корректно будет работать приложение с определенными функциями на девайсах, где эти функции не поддерживаются – например, при отсутствии SIM-карты, карты памяти, GPS, гироскопа, при запрете доступа к камере,
- что будет с приложением при беспорядочных тапах, мультитаче, стандартных жестах управления в ОС – всё это часто приводит к некорректной работе.
Таким образом, нужно воссоздать все эти события и действия и проверить поведение приложения.
Прочие нюансы
Есть и еще ряд проверок, которые влияют на увеличение сроков и бюджета тестирования мобильных приложений.
Проверка обновлений
Например, тестирование обновлений приложения и версий операционных систем. Это важный шаг в разработке, так как доверие пользователя можно потерять буквально за пару минут. Представьте, вы обновили любимое приложение доставки еды, но вместо новых фич получили вылетающий сервис с кучей багов. Настроение испорчено, время потрачено, желудок всё еще урчит – да и вообще лучше бы старой версией пользовался. Вот, чтобы таких неприятных ситуаций не было, как и кучи гневных комментариев в Google Play и App Store, важно тестировать все обновления – проверять сохранность старых данных и корректное отображение новых.
Несистемные ошибки
Зачастую проверка или локализация ошибки усложняется из-за того, что приложение ведет себя неадекватно – например, прекращает функционировать по причинам, которые трудно искусственно воспроизвести.
Количество факторов, которые могут негативно повлиять на работу системы слишком велико. И, если ошибка несистемная, то её локализация может потребовать получение дополнительной информации через логи устройства. Для этого нужно подключиться к компьютеру, настроить соответствующее ПО, установить драйверы на каждое из устройств, что не всегда быстро.
А в операционной системе iOS, как правило, чтение логов вообще недоступно, поэтому приходится воспроизводить ошибку методом тыка, что ведёт к большим потерям времени. Также осложняется всё тем, что на мобильных устройствах проблематично посмотреть, например, список запросов и ответов к серверу, дабы установить, что же пошло не так.
Гайдлайн
Особенностью тестирования мобильных приложений является проверка того, что поведение и вид элементов, а также работа с ними соответствует общепринятым нормам для каждой ОС. Чтобы было понятнее, объясним. Гайдлайны мобильных приложений ― это набор рекомендаций для создания приложений, максимально удобных для пользователей разных платформ. С их помощью можно сделать интерфейс интуитивно понятным для каждой операционной системы.
Так, например, в гайдлайнах описаны:
- основные подходы в навигации,
- внешний вид удобного интерфейса,
- правила стиля, шрифтов, иконок,
- рекомендации по цветовым палитрам и формам,
- инструкции по работе со звуком и многое другое.
Соблюдение требований из гайдлайнов позволяет пользователям максимально быстро и комфортно разобраться в вашем приложении, поэтому важно сделать всё по правилам. Кроме того, если будут нарушены какие-то концепции гайдлайна, проект может просто не пройти проверку перед выкладкой в магазин приложений.
Стабильность
У мобильных сервисов гораздо меньше готовых фреймворков, технологий, шаблонов, чем у тех же web-приложений. Это увеличивает количество самописных элементов и решений, что в совокупности со сложной архитектурой мобильной платформы и множеством внешних факторов часто приводит к непредвиденным и неуловимым ошибкам в ходе проверки, тем самым существенно растягивая время на тестирование.
Эпилог
И это далеко не полный перечень сложностей, с которыми приходится сталкиваться при работе с мобильными приложениями. Но даже так понятно, что их тестирование – более ресурсоемкий и затратный вид тестирования, чем проверка веб или десктоп приложений.
Мобильные устройства имеют много отличий и определенную специфику работы, и всё это обязательно надо проверять. Поэтому на тестирование таких приложений принято закладывать больше времени и средств, чем на стандартное веб-приложение – да, даже если жертвуешь какими-то проверками :)