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

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

Вопрос № 1: на чем тестировать?

Каждый владелец программного продукта мечтает о том, чтобы его решение качественно работало на десятках или даже сотнях устройств. Однако всегда ли это возможно гарантировать? Очевидно, что чем больше устройств для тестирования будет выбрано, тем больше будут сроки и бюджет тестирования.

Варианты решения:

1. Использование эмуляторов. За неимением «живых» устройств многие тестировщики используют эмуляторы или симуляторы. С их помощью можно проверить состояние интерфейса, совместимость с браузером, провести базовые тесты.

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

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

2. Удаленное тестирование. Во многом данный способ схож с использованием эмуляторов. Сервисы удаленного тестирования предлагают веб-интерфейс для тестирования на удаленных устройствах. При этом вы также не сможете проверить взаимодействие приложения с реальным пользователем.

3. Тестирование на реальных устройствах. Тестирование на устройствах, с которыми работают пользователи — оптимальный вариант для получения информативных результатов. Главное преимущество данной стратегии — вы сможете посмотреть на приложение глазами реальных пользователей.

Как выбрать из всех девайсов на рынке те, которые подойдут именно вам?

Если приложение есть в App Store или Google Play, то можно собрать статистику по устройствам, на которые приложение чаще всего устанавливается пользователями. Если приложение только готовится к релизу, то стоит проанализировать целевую аудиторию, тренды рынка и выбрать для тестирования самые популярные устройства. Как правило, для тестирования одного продукта достаточно десятка устройств, которые охватят 90% пользователей. Остальные 10% можно закрыть, проведя, например, бета-тестирование. Разрешите пользователям редких девайсов самим рассказать о проблемах использования тестируемого приложения.

Вопрос № 2: как тестировать работу приложения в сети?

В каждой стране есть свои операторы мобильной связи. Суммарно в мире существует около 800 мобильных операторов, каждый из которых может поддерживать разные технологии соединения (LTE, CDMA, GSM). Каждая технология обладает уникальными характеристиками передачи и получения данных, количеством каналов связи и т. д.

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

Так, один из заказчиков в свое время хотел, чтобы для проверки приложения мы использовали соединение LTE, которое в то время не было запущено в Беларуси. Расспросив клиента, мы узнали, что для него важен не столько тип соединения, сколько тестирование приложения при высоких скоростях соединения. Тогда мы предложили тестировать на Wi-Fi со скоростью 40-50 Мбит/c. Данный вариант его устроил.

Еще один пример из практики: мы тестировали приложение, которое могло быть использовано только на территории США. Для авторизации необходимо было ввести американский номер телефона. Это условие можно легко обойти, попросив номер своих друзей или коллег из США. Однако нужно понимать, что настройки сетей операторов Беларуси и США будут разными. Важно ли это? Зависит от проекта.

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

Бывают случаи, когда работа приложения завязана на определенном операторе. Тогда географические границы невозможно преодолеть ни «заглушками», ни номерами телефонов друзей. Например, был у нас продукт, который был разработан для работы только на территории России. Для тестирования в Беларуси мы пробовали использовать роуминг, однако этого оказалось недостаточно.

Или вот еще один пример. Один из наших клиентов разрабатывал ПО для мобильных операторов. Разработанный продукт должен был использоваться индийскими операторами. Для проведения тестирования мы предложили использование VPN (тем более что у заказчика был офис в Индии, и местная команда могла помочь нам с настройками). Однако мы понимали, что VPN — не идеальный вариант, поскольку у него будут ограничения по скорости и ряду других важных технических параметров. Заказчик нас выслушал и настоял на том, чтобы наша команда отправилась в Индию для проведения тестов. Что ж делать, пришлось ехать.

Вопрос № 3: ручное или автоматизированное тестирование?

Мобильное тестирование может быть как ручным, так и автоматизированным. Несмотря на многочисленные плюсы автоматизации, затраты на переход от ручного тестирования к автоматизированному скорее всего будут не обоснованными на небольших и краткосрочных проектах. Создание набора универсальных автотестов, которые смогут быть запущены на Android и iOS, и их поддержка потребуют существенных вложений. Целесообразно же внедрять автоматизацию на длительных проектах (продолжительностью более трех месяцев), где планируется запуск множества однообразных тестов (например, регрессионных). Это поможет сэкономить время на ручном тестировании.

Подводя итог

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

Автор статьи — руководитель отдела тестирования мобильных приложений компании «Технологии качества» (бренд A1QA).