Эмуляторы, симуляторы или тестовые фермы. Что выбрать для мобильного тестирования?

Привет! Меня зовут Татьяна Дерягина, я Mobile QA из команды мобильного тестирования в СберМаркете. Моя команда работает дистанционно, находясь в разных городах России. Хочу рассказать, как как мы адаптировались к процессу тестирования, без большого количества реальных девайсов и не потеряли качество продукта.

Корень проблемы

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

  • разрешение и диагональ экрана;

  • операционная система и её версия;

  • характеристики процессора;

  • объем оперативной и встроенной памяти. 

Каждый год растёт количество марок и моделей мобильных устройств, а перед тестировщиками всё острее встаёт вопрос о том, на каких гаджетах проводить тестирование.

Некоторые компании закупают парк девайсов специально для тестирования. Но при дистанционной работе он распределяется между членами команды. Именно поэтому на удалёнке многие тестировщики включают в парк тестовых устройств свои личные телефоны. Когда члену команды нужен девайс с определёнными характеристиками, он находит «счастливого» обладателя нужной модели среди членов команды и просит его произвести необходимые проверки. Существенный минус такого подхода — перекладывание работы между членами команды друг на друга.

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

Хочу рассказать о том, как решить эту проблему более оптимально.

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

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

 В первую очередь стоит оценить проект, над которым вы работаете:

  • масштаб и количество пользователей приложения;

  • под какие платформы (IOS или Android) и какие версии ОС разрабатывается проект;

  • должна ли быть поддержка работы приложения на планшетах;

  • поддерживаются ли девайсы Huawei без Google services;

  • этап развития проекта (возможно, это демо-версия, в которой необходимо проверить работоспособность лишь основных пользовательских сценариев).

Чтобы понять какой парк тестовых девайсов нам необходим, следует:

  • выяснить перечисленные выше особенности проекта;

  • проанализировать сроки и реалистично оценить нагрузку;

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

Также нужно иметь в виду, что iOS поддерживает обновления ОС для довольно старых моделей. Например, последняя версия iOS 16 доступна более чем на 20 девайсах, начиная с iPhone 8. Поэтому тестированием на  старых версиях iOS часто можно пренебречь. На Android же следует уделять внимание и прошлым версиям ОС, так как немалое количество пользователей с девайсами не самых свежих моделей, работающими, например, на Android 7-9.

Итак, вы определились со списком желаемых девайсов. Осталось выяснить, где их найти?

Вариант #1: Симуляторы и эмуляторы

Первая идея — использовать симуляторы или эмуляторы. 

Симуляторы виртуально воспроизводят поведение системы и её интерфейса. Симуляции имитируют выполнение кода. В большинстве случаев, для запуска симулятора, используются XCode или Android Studio.

Эмуляторы воссоздают все основные компоненты устройства, в том числе процессор, память и устройства ввода/вывода.

Симулятор  iOS
Симулятор iOS

Недостатки симуляторов и эмуляторов

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

  • медленном интернете;

  • получении звонка или СМС;

  • использовании камеры, микрофона или геолокации.

Работа приложения на симуляторе и эмуляторе может отличаться от работы на реальном девайсе ещё и по следующим причинам:

  • при тестировании не учитывается аппаратная часть приложения;

  • многое зависит от мощности компьютера, на котором выполняется тестирование. 

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

Вариант #2: Тестовые фермы

Тестовая ферма — это инструмент, который позволяет подключиться к реальному девайсу и выполнить полноценное тестирование. Экран устройства транслируется онлайн.

При желании, тестовую ферму можно организовать и с личными устройствами. В конце статьи я расскажу, как это сделать.

Подборка тестовых ферм

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

Samsung Test Lab

Бесплатная тестовая ферма с возможностью бронирования девайсов Samsung от 30 мин до 2 часов. Поддерживает режим удаленной отладки. 


Как использовать:
Зарегистрировать устройство из списка, выбрать ОС и локацию, запустить удаленный доступ к экрану. Откроется либо веб-страница с доступом к девайсу, либо автоматически скачается файл с расширением .jnlp. При запуске файла на macOS, необходимо разрешить запуск из системных настроек, иначе компьютер ругается на безопасность (Системные настройки -> Защита и безопасность -> Разрешить). При первом запуске попросит установить пакеты Java.

Экран с выбором характеристик девайса
Экран с выбором характеристик девайса
Запущенный девайс
Запущенный девайс

Huawei Cloud Debugging

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

Как использовать:

Перед использованием нужно зарегистрироваться. При регистрации просят загрузить документ, удостоверяющий личность, который действительно проверяют. Далее необходимо создать новый проект (Качество -> Облачная отладка) на боковой панели и зарезервировать интересующее устройство. В выбранное время устройство будет доступно на вкладке «Мои данные».

Платные тестовые фермы

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

Firebase Test Lab — ферма от Google. Позволяет тестировать приложение на различных реальных устройствах и конфигурациях IOS и Android. Все устройства расположены в центре обработки данных Google. Test Lab интегрирована с консолью Firebase, Android Studio и с интерфейсом командной строки gcloud. 

Бесплатно можно запустить 5 тестов в день на реальных устройствах и 10 тестов — на виртуальных. За большее придется платить 1$ за час на эмуляторе и 5$ за час на реальном устройстве.

AWS Device Farm — вариант от Amazon, ферма для тестирования на виртуальных и реальных устройствах. Первые 1000 минут бесплатно. Доступ более чем к 500 тестовым устройствам. Есть возможность написания скриптов с использованием Appium, Espresso, Robotium, UI Automation, XCTest и другие.

BrowserStack — позволяет выполнять тестирование как в ручном режиме так и используя Selenium или Appium. Есть ограничение на количество одновременных сессий. Если оплатить 199

SauceLabs — облачная платформа для автоматизированного тестирования веб-приложений и мобильных приложений. Тариф для ручного кроссбраузерного и мобильного тестирования — 39" class="formula inline"> в месяц с неограниченным количеством пользователей и временем на тестирование., Есть бесплатная пробная версия на 28 дней с доступным временем для тестирования 160 минут.

Симуляторы, эмуляторы и тестовые фермы — что выбрать?

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

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

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

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

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

Как и обещала: инструкция по созданию тестовой фермы

  1. Установите AnyDesc на управляемый девайс и на ПК или другой девайс, с которого будет происходить управление.

  2. При первом запуске на девайсе будет предложено установить плагин — без него удаленное управление будет невозможно.

  3. После установки плагина разрешите AnyDesc контролировать девайс (Специальные возможности -> Установленные службы -> Включить AnyDesc Control Service AD1).

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

    Данная последовательность настроек работает не для всех девайсах. Например, AnyDesc может не работать на Alcatel Idol 3 и Android 6, хотя успешно работает на Nokia 3.1 (Android 10), Nokia 8 (Android 9), Samsung A8 (Android 9), Huawei Y5 Prime (Android 8).

  4. После настройки девайса запустите AnyDesc на ПК, введите номер из AnyDesc на девайсе, и разрешите доступ со стороны ПК на девайсе.

  5. Вуаля! теперь можно управлять устройством через ПК. Для просмотра трафика приложения можно использовать SetCapture.

Мы завели соцсети с новостями и анонсами Tech-команды. Если хотите узнать, что под капотом высоконагруженного e-commerce, следите за нами там, где вам удобнее всего: Telegram, VK.