Сервисы
Open Solutions
496

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

Firebase Test Lab vs Microsoft App Center

В закладки

Мы в Open Solutions максимально автоматизируем процесс тестирования в наших проектах. Это позволяет заказчику сэкономить деньги, а нам - помогает максимально полно проверить функционал разрабатываемого нами продукта. В случае с мобильными приложениями, мы пришли к выбору сервиса автоматизации после того, как выстраивали систему на базе локальных ресурсов. Но со временем это стало неудобно из-за необходимости поддерживать актуальный парк устройств и заниматься их администрированием. Поэтому мы перешли на облачные фермы мобильных устройств и выбирали между Firebase Test Lab и Microsoft App Center. Об этом выборе мы и хотим рассказать в данной статье.

Что такое удаленные фермы устройств и зачем они нужны?

С каждым годом различных моделей и производителей мобильных устройств становится все больше и больше. Основное направление нашей компании - это заказная разработка ПО и нам попросту не выгодно покупать и содержать все модели телефонов. Нам на помощь пришли более крупные корпорации, такие как Microsoft или Google, а также сами производители мобильных устройств.

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

Какие преимущества дают удаленные фермы:

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

Но без недостатков тоже не обойтись:

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

Почему именно Firebase Test Lab и Microsoft App Center?

При выборе удаленной фермы мы исходили из практических соображений, поэтому выбирали из двух:

  • Firebase Test Lab. Потому что мы уже работаем в Firebase. Мы загружаем наши тестовые сборки приложений и собираем статистику. Удобно держать результаты автотестов в той же консоли. Достаточно зайти в одну систему и ты получишь полную информацию о своем приложении.
  • Microsoft App Center. Наша фирма является сертифицированным партнером Microsoft. Благодаря этому, нам доступна существенная скидка на использование всех сервисов, в том числе и App Center. А самый главный плюс - это большой выбор физических устройств.

Firebase Test Lab

Данный сервис предоставляется 11 виртуальных и 139 физических устройств для тестирования. Firebase дает возможность руками запускать 10 тестов на виртуальных и 5 тестов на физических устройствах в день совершенно бесплатно. За запуски через CI или увеличение доступных запусков в день придется платить.

Помимо запуска рукописных тестов, о них поговорим чуть позже, Test Lab умеет делать Robo-тесты. По сути это некое подобие monkey-тестов. Только здесь есть возможность задать тестовое окружение и, как говорится в документации, на одних и тех же данных тест будет выполнять одни и те же действия, что позволит проверить исправление ошибок.

К автотестам Firebase предъявляет ряд требований. Такие тесты должны быть написаны с использованием следующих фреймворков:

  • Grandle + JUnit + UIAutomator или Espresso для Android. UIAutomator используется для тестирования методом черного ящика. Espresso - белого.
  • XCUITests для iOS.

Основные сравнительные эксперименты мы проводили в части тестов на Android приложениях. Тестирование МП реализовывали методом черного ящика, поэтому выбрали следующий набор технологий: Grandle + JUnit + UIAutomator. До этого мы не были знакомы с UIAutomator независимо от Appium. Но разобраться получилось довольно быстро. Написание простенького теста на авторизацию с использованием PageObjects и отладка запусков в Firebase заняло около 3 дней.

Данные, которые мы получили по результатам прогона теста:

  • Список сценариев, которые выполнялись во время прогона.
  • Видео прогона.
  • Логи устройства.
  • Сведения о производительности.

Работа в Firebase Test Lab показалась довольно удобной, отчетность по результатам тестирования достаточно полная. Единственное - не хватало логов самих тестов дополнительно к логам телефона.

Microsoft App Center

App Center дает возможность тестировать на 374 смартфонах и 54 планшетах. Все устройства физические. На изучение инструмента дается пробный бесплатный период длиной в 30 дней. Далее начинает взиматься ежемесячная плата. Никаких ограничений по количеству устройств или количеству запусков в день нет.

Автотесты для запуска через App Center можно писать с использованием следующих фреймворков:

  • Maven + JUnit + Appium.
  • XCUITests для iOS.

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

Данные, которые мы получили по результатам прогона теста:

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

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

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

Выводы

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

Мы остановили свой выбор на Microsoft App Center, потому что фреймворки оказались более удобными и знакомыми, а за счет того, что Open Solutions является партнером Microsoft сервис получается для нас очень выгодным.

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

Если у вас есть опыт использования ферм - поделитесь, пожалуйста, своим экспириенсом, мы будем очень благодарны!

Анастасия, ведущий тестировщик, Open Solutions

{ "author_name": "Open Solutions", "author_type": "self", "tags": ["\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","microsoft","firebase"], "comments": 6, "likes": 4, "favorites": 20, "is_advertisement": false, "subsite_label": "services", "id": 166540, "is_wide": false, "is_ugc": true, "date": "Thu, 29 Oct 2020 10:28:04 +0300", "is_special": false }
Объявление на vc.ru Отключить рекламу
0
6 комментариев
Популярные
По порядку
Написать комментарий...
1

что по деньгам?

Ответить
0

У обеих компаний очень широкий спектр вариантов. Если резюмировать, то:
Firebase от 300$ за 90 дней 
Appcenter от 40$/месяц 

Подробнее тут:
https://cloud.google.com/free и https://docs.microsoft.com/ru-ru/appcenter/general/pricing соответственно.

Ответить
1

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

Ответить
0

Подобные ограничения если и есть, то не документированы. У нас был кейс когда в Appcenter не у всех iOS-устройств писались логи, но техподдержка быстро отвечает и исправляет подобные баги.
У ряда поставщиков есть бесплатный 30-дневный период для максимальной и честной проверки функционала и надежности фермы, можно им воспользоваться перед принятием решения.

Ответить
0

Ну когда не пишутся логи, это уже *косяк* сервиса, а не ограничение, но это да, думаю решаемо. Я имел в виду другое - например, в виртуалке всё ок, а в реале какой-нибудь memory leak или overflow случается. Я не программист, поэтому пример может не самый удачный, но суть вы поймёте.

Ответить
0

нет, такого опыта не было

Ответить

Комментарии

null