TОП 5 инструментов автоматизации тестирования

Популярность инструментов автоматизации в области тестирования ПО не вызывает сомнений. И это не случайно. Ведь именно внедрение автоматизированного тестирования позволяет ускорить процессы и повысить эффективность работы над проектами.

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

Appium

На текущий момент — одно из лучших решений в своей нише. Призван в помощь для UI-тестирования мобильных приложений.

Возможности:

  • Поиск элементов приложения по XPath, селектору или ID, и работа с ними (нажатие, ввод текста, скролл)
  • Поддерживаются и менее гибкие функции, такие как нажатия или свайпы по координатам на экране, или эмуляция нажатия аппаратных кнопок (назад, домой и т.п).

Плюсы:

  • Поддержка популярных мобильных ОС (Android, IOS)
  • Поддержка наиболее актуальных ЯП
  • Хорошее community
  • Достаточно просто устанавливается
  • Документация покрывает большинство возникающих вопросов

Минусы:

  • Не распознает элементы интерфейса в программах / играх, созданных на мультиплатформенных движках (например Unity, UnrealEngine)
  • Иногда бывают проблемы с синхронизацией

UIAutomatorviewer & UIAutomator

Оба инструмента распространяются в составе Android Studio. UIAutomatorviewer (далее viewer) — используется для распознавание Android UI-элементов, а UIAutomator представляет собой набор библиотек Java API для тестирования пользовательского интерфейса.

Возможности:

  • Основной целью viewer является получение информации о каждом видимом элементе интерфейса, будь то текст, название кнопки, её ID или другой атрибут
  • В принципе основные возможности взаимодействия с интерфейсом как и у Appium

Плюсы:

  • Простая интеграция в другие инструменты
  • Простое и “легковесное приложение” (а точнее скрипт) в составе Android SDK

Минусы:

  • Как и Appium viewer не распознает элементы интерфейса в приложениях, созданных на мультиплатформенных движках (точнее будет сказать, что отсюда и растут ноги этой проблемы у appium)
  • Необходима версия Android 4.3.
  • У viewer нет возможности эмуляции хотя бы тапа, что часто может быть полезным, чтобы обновить вьюпорт «не отходя от кассы»
  • Возможность написания скриптов только на java (насколько знаю, товарищ xiaocong разрабатывает библиотеку, благодаря которой можно писать скрипты на python)

PyWinAuto

В настоящее время довольно редко используют автоматизацию UI-тестирования приложений Windows, но тем не менее, этот инструмент довольно хорошо выполняет свою работу и заслужил своё место в этом списке. Для большей простоты работы следует использовать в связке с инструментами типа Inspect, Spy++ или SWAPY, которые дадут информацию о любом элементе в активном окне.

Возможности:

  • Поиск элементов приложения по многим параметрам от текста на кнопке до ID элемента
  • Эмуляция нажатия кнопок клавиатуры / мыши

Плюсы:

  • Поддержка MS UI Automation
  • Хуки для мыши и клавиатуры

Минусы:

  • Community как таковое отсутствует
  • Поддержка и обновление инструмента очень посредственные

Katalon Studio

Относительно молодой, но подающий надежды проект. Его функционал вкупе с ценником “free” постепенно введут его в лидеры. Отличный инструмент как для web, так и для мобильного тестирования. Главное, благодаря режимам “Manua”l и “Record&play” автотесты смогут писать тестировщики,не знающие языков программирования.

Возможности:

  • Создание автотестов посредством скриптов, record & playback или интерфейса приложения
  • Автоматическое создание репортов после прогона тестов

Плюсы:

  • Встроенные шаблоны проектов: предлагая встроенные шаблоны для организации тест-кейсов, репозитория объектов и ключевых слов, Katalon Studio значительно упрощает процесс тестирования
  • Мультифункциональность: полностью поддерживает тестирование Web, Android, iOS и API на всех операционных системах
  • Беспроблемная интеграция инструмента: легко интегрируется с Jenkins, GIT и нативными плагинами JIRA
  • Простой и интуитивно понятный интерфейс

Минусы:

  • Скрипты можно писать только на java и ещё менее известном Groovy (лично мне хотелось бы видеть ещё и python)
  • Интерфейс выполнения тестов оставляет желать лучшего. После выполнения мы видим уведомление со словом “done” на зеленом фоне. А чтобы узнать правильно ли прошёл тест или зафейлился, нужно лезть в консоль, по-моему, это очень большой недочет со стороны разработчиков
  • Инструмент не совсем самостоятельный и для работы требует установленного appium

Fiddler

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

Возможности:

  • Перехват сетевого трафика
  • Расшифровка содержимого пакетов
  • Возможность управления скриптами (возможность задания армии запросов  для проведения стресс-теста сайта или web-приложения)

Плюсы:

  • Создание правил на заданных URL
  • Breakpoints для заданных URL
  • Настраиваемая задержка при отправке / получении пакетов (аналог имитации медленного интернета)

Минусы:

  • Не может декодировать некоторые пакеты с защищенным протоколом
  • Требуется поставить плагин для работы перехвата с мобильных устройств

Выводы

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

Текст: Артем Лепкин, QA, Bytex