Selenium или. Подбор QA-инструмента

Прежде чем

Прежде чем погрузиться в сравнение Selenium и его аналогов, новичку нужно уточнить понимание QA-инструментов. Это обычно не standalone-приложения, а большие и сложные программные пакеты, требующие времени на их изучение, и предназначенные для оптимизации (ускорения и упорядочения) процесса тестирования.

Благодаря мощным инструментам в руках квалифицированных QA-инженеров обеспечение соответствия ПО требуемым стандартам качества становится более удобным и быстрым процессом, что позволяет компании сокращать издержки.

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

Selenium: самый известный QA-инструмент

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

В данное время это, статистически, с точки зрения объема QA-операций и востребованности, инструмент №1 в QA. Он используется для тестирования действий пользователя в веб-браузерах, имитации взаимодействий с пользователем и проверки общей функциональности веб-приложений. 

Популярность Selenium основана на его универсальности и мощности

В основе лежит Selenium WebDriver — технология, позволяющая автоматизировать действия в браузере: то есть навигацию по веб-страницам, взаимодействие с элементами, и проверку контента. Selenium WebDriver это, в том числе, инструмент регрессионного тестирования и тестирования на основе пользовательских сценариев

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

Сравнение Selenium с другими QA-инструментами

Selenium выделяется среди QA-инструментов, но существуют другие важные инструменты, далее рассмотрим Appium, Cypress, Playwright, Nightwatch, Robot Framework и Protractor — чем они отличаются, и могут ли выступать дополнением или заменой Selenium. 

Поддержка языков программирования

Инструмент автоматизации эффективен, если он поддерживает распространенные языки программирования. Selenium отличается почти универсальной поддержкой распространенных ЯП, что позволяет разработчикам/тестировщикам работать на удобном для них ЯП.

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

Направленность

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

Appium создавался для автоматизации мобильных приложений, что делает его предпочтительным вариантом при тестировании мобильных приложений. Cypress ориентирован на веб-приложения и особенно хорош в сквозном тестировании. Playwright выделяется качеством и универсальностью, поддерживая автоматизацию веб-приложений и браузеров на различных браузерных движках. Nightwatch также ориентирован на автоматизацию веб-приложений, при этом основное внимание при его создании уделялось простоте пользования. Robot Framework строится на «модульном» подходе, обеспечивая гибкость в выборе типов тестируемых приложений. Protractor в основном применялся для приложений Angular, и все еще может быть вариантом и для других веб-приложений (несмотря на прекращение официальной поддержки).

Кроссбраузерность

Одной из наиболее частых задач автоматизатора является тестирование кроссбраузерной совместимости. Благодаря библиотеке Selenium WebDriver, Selenium обеспечивает широкие возможности в этой сфере, охватывая Chrome, Firefox, Safari и другие. Playwright, с его возможностями автоматизации браузеров, охватывает все основные браузерные движки, что делает его отличным вариантом для кроссбраузерного тестирования. Остальные инструменты не так широки по покрытию браузеров как Selenium и Playwright, могут быть недостатки при работе с конкретными версиями браузеров, что требует тщательного подхода в зависимости от ситуации (от целевых браузеров для приложения в проекте).

Кривая обучения

Кривая обучения, то есть легкость освоения инструмента, имеет большое значение в команде. Развитая экосистема Selenium и обширная документация, с одной стороны, делают его хорошим вариантом для недавно созданных команд с неопытными участниками. Однако столь широкий набор функций может потребовать времени на освоение. Cypress, изначально созданный с прицелом на простоту использования, имеет более плавную кривую обучения, что делает его фаворитом среди новичков в QA. При этом Appium, Robot Framework и Nightwatch также обеспечивают относительно легкое освоение. Playwright, изначально создаваемый для имитации типичного пользовательского поведения, обеспечивает плавный переход для тестировщиков, уже владеющих другими инструментами. Устаревший Protractor для приложений на платформе Angular все еще может быть приемлемым вариантом для команд, хорошо знакомых с этой платформой.

Комьюнити

Совет, полученный в комьюнити, может стать спасательным кругом в сложных ситуациях. Благодаря огромному количеству пользователей Selenium отличается самым активным комьюнити, которое вносит вклад в постоянное развитие и поддержку. Комьюнити Appium также активно, в кругах специалистов по мобильному тестированию. Заметно и комьюнити Cypress. Поддержка Microsoft способствует сообществу Playwright. У Nightwatch и Robot Framework также активные комьюнити, хотя и не столь обширные. Что касается Protractor, то сообщество Angular еще существует.

Интеграция в CI/CD

Бесшовная интеграция с пайплайнами CI/CD имеет ключевое значение для бесперебойного процесса разработки и тестирования. Распространенность Selenium обеспечивает гарантированную совместимость с большинством систем CI/CD. Нативная интеграция Cypress с популярными инструментами CI/CD упрощает процессы. Appium, Playwright и Robot Framework также неплохо, что касается интеграции. Интеграционный потенциал Nightwatch обусловлен его простотой. Protractor бесшовно интегрируется в CI/CD-конвейеры на базе Angular.

Репорты и аналитика

Тестирование — это не только выполнение сценариев, но и анализ результатов. Selenium с различными вариантами репортов, такими как TestNG и JUnit, предлагает разнообразные и гибкие способы визуализации результатов тестирования. Cypress, известный возможностями реалтайм-перезагрузки и отладки, упрощает анализ результатов тестирования. В Appium встроена генерация репортов. Playwright предлагает генерацию репортов и обработку кастомных тестовых событий. Репорты Robot Framework отличаются подробностью и понятностью.

Кастомизация

Не бывает двух одинаковых проектов, поэтому инструменты тестирования должны учитывать специфику проекта. Широкая экосистема Selenium позволяет создавать настраиваемые в очень широких пределах тестовые процессы. Cypress позволяет использовать кастомные команды расширения функциональности. Appium обеспечивает гибкость за счет плагинов и расширений. Тонкий контроль над действиями и событиями в Playwright облегчает кастомизацию. Модульная структура Robot Framework способствует созданию кастомных сущностей вплоть до библиотек. Расширяемость Protractor заключается в фреймворке Jasmine.

Таблица выбора инструментов

В итоговую таблицу сведены упомянутые выше инструменты (включая и Protractor, официальная поддержка которого прекращена в прошлом месяце, но существует проект «вечной поддержки»).

Фреймворки автоматизации

Кейсы

Самый распространенный сценарий: QA-отделу поставили задачу тестировать многофункциональное веб-приложение, которое требует проверки совместимости в нескольких браузерах. В этом случае возможности Selenium по автоматизации работы с браузерами становятся видимо безальтернативными. Если планируется исключительно тестирование мобильных приложений, то лучший вариант — Appium. Playwright является отличным вариантом при достаточном уровне компетенций команды. 

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

Источник


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас