Разделы портала

Онлайн-тренинги

.
Мобильное тестирование, часть 3: советы и инструменты для автоматизации мобильного тестирования
10.07.2019 00:00

Автор: Кристин Джеквони (Kristin Jackvony)
Оригинал статьи
Перевод: Ольга Алифанова

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

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

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

Второй совет: Определитесь, будете вы тестировать на реальных устройствах или на эмуляторах.

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

Третий совет: Тестируйте что-то одно за раз.

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

Четвертый совет: Будьте готовы, что тесты придется перезапускать

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

Пятый совет: не стремитесь протестировать все устройства в мире

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

Шестой совет: делайте скриншоты.

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

Седьмой совет: используйте визуальную валидацию.

Визуальная валидация очень важна в мобильном тестировании. Множество багов, с которыми вы столкнетесь, будут связаны с неверным рендером элементов на экране. Вы можете тестировать на присутствие элемента, но если у вас нет способа сравнить скриншот с заранее подготовленным эталоном, вы не сможете убедиться, что элементы действительно видны пользователю. Applitools – отличный способ визуального сравнения. Он интегрируется с распространенным тест-ПО вроде Selenium, Appium, Protractor. При помощи Applitools можно встраивать визуальную верификацию напрямую в тесты и сохранять коллекцию скриншотов с каждого устройства, которое вы тестируете, для сравнения с эталонами.

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

Visual Studio App Center: продукт от Microsoft, позволяющий тестировать iOS и Android-приложения на реальных устройствах. Скриншот создается на каждом шаге теста, поэтому легко определить, в какой момент что-то пошло не так.

Appium: Инструмент с открытым исходным кодом. Интегрируется с Selenium, дает возможность тестировать на эмуляторах (или на реальных устройствах, если вы интегрируетесь с фермой устройств).

Sauce Labs: отлично подходит для тестирования на мобильных устройствах и через веб-браузеры под какой угодно ОС. Вы можете прогонять тесты на реальных устройствах или эмуляторах, и он также позволяет запускать тесты параллельно. Интегрируется с Selenium и Appium. Скриншот создается, если тест падает, и можно даже просматривать видео прогона тестов.

Perfecto: использует реальные устройства, интегрируется с Visual Studio, Appium, Selenium. Может имитировать реальные пользовательские условия – например, доступность сети и геолокацию.

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

Обсудить в форуме