27-11-2020 08:31

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

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

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

Как запустить Windows-программы под Linux, или Когда вино приносит пользуВам будет интересно:Как запустить Windows-программы под Linux, или Когда вино приносит пользу

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

Симуляторы и эмуляторы

Для начала поймем, что такое симуляторы и эмуляторы.

IIoT под ударом: как защитить социальную инфраструктуру от кибератакВам будет интересно:IIoT под ударом: как защитить социальную инфраструктуру от кибератак

• Эмулятор – это виртуальное устройство, которое имитирует программную и «железную» части физического устройства. Ресурсы ограничены характеристиками имитирующего девайса.

• Симуляторы – имитируют оболочку, ограничиваются только ресурсами самой машины. Обычно данные инструменты поставляются вместе со средами разработки, такими как XCode и Android Studio. Эти инструменты позволяют имитировать поведение устройства, чаще всего ими пользуются разработчики для отладки создаваемых приложений.

Преимущества:

●     Позволяют запускать ваше приложение на виртуальном аналоге устройства.

●     Могут использоваться в работе с автотестами.

Недостатки:

●     Имеется ряд ограничений, таких как работа с камерой, звонки, или бесконтактная оплата. Для таких кейсов придется возвращаться к реальным устройствам и проверять на них.

Как добавить сервисы Google в смартфоны Huawei и Honor?Вам будет интересно:Как добавить сервисы Google в смартфоны Huawei и Honor?

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

Облачные фермы

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

Samsung Test Lab

Решение от одноименной компании позволяет протестировать ваше приложение на линейке устройств Samsung. Имеется возможность бронировать устройства на 30 минут и на 1 час.

Из основных плюсов: можно пользоваться бесплатно, достаточно оперативно добавляют новые флагманы.

Из основных минусов: девайсы общие, после тестирования устройство не сбрасывается, постоянно захламлено. В линейке только устройства компании Samsung.

FireBase Test Lab

Решение от компании Google. Позволяет протестировать ваше приложение более чем на 450 устройствах, чего должно хватить практически любому. Работать можно как с iOS-, так и с Android-устройствами. Есть возможность смотреть логи, настроить автоматизацию как обычные манки-тесты и как более осмысленные.

AWS Devices

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

Visual Studio App Center (ранее Xamarin Test Cloud)

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

И это только малая часть списка, облачных ферм много. Как и у любого решения, облачные фермы имеют как плюсы, так и минусы.

Преимущества:

●     Нет необходимости покупать большое количество реальных девайсов.

●     Можно найти устройство практически для любой ситуации.

●     Нет затрат на поддержку и ремонт тестовых устройств.

Недостатки:

●     Сетевая задержка, не позволяющая корректно отображать анимации.

●     Работать как с полноценной заменой физических устройств тоже проблематично из-за отсутствия тачскрина.

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

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

●     Цена иногда может быть достаточно высокой.

img

Локальные фермы

Если вариант с облачным решением вам не подходит, можно собрать собственную ферму. Для этого вам понадобятся железные или виртуальные машины для Android и физические MacMini или аналоги для iOS. В локальных фермах можно использовать как виртуальные девайсы, так и реальные устройства. Независимо от варианта настройка и поддержка локальных ферм отнимают достаточно много времени и сил, а также требуют высокого уровня компетенций ваших тестировщиков: они должны уметь работать с CI, средами разработки, отлично знать один из языков программирования. В случае с локальными фермами необходимо самим реализовывать все возможные обвязки и схемы взаимодействия устройств с кодом автотестов.

Преимущества:

●     Возможность глубокой кастомизации.

●     Отсутствие внешней зависимости от вендора.

●     Повышенный уровень безопасности: все данные находятся не где-то на чужих серверах, а у вас.

Недостатки:

●     Высокая стоимость поддержки.

●     Необходимость высокого уровня компетенций специалистов.

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

img

Старые добрые устройства

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

Преимущества:

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

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

●     Самые честные тесты по сравнению со всеми способами тестирования.

Недостатки:

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

●     Высокая стоимость поддержки: вздувшиеся батареи, порванные провода, разбитые экраны, брак и прочие неисправности – это то, с чем придется сталкиваться рано или поздно. А значит, необходимо закладывать бюджет и на это.

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

Итого

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

Выбор какого-то варианта не исключает возможности пользоваться остальными – наоборот, все они дополняют друг друга, позволяя обеспечить максимальное покрытие.

В каких ситуациях применять тот или иной инструмент – решать только вам.

Мобильные приложения

Журнал: Журнал IT-Expert, Подписка на журналы

Об авторах

Александр Наташкин

Александр Наташкин

Руководитель группы мобильного тестирования «ЮMoney» (ex «Яндекс.Деньги») Статьи

Поделиться: