Главная

Статьи

BDD следующего поколения: от автоматизированных веб-тестов до автоматических веб-приемочных испытаний

В прошлом году наш Gumtree Австралия команда начала использовать ориентированную на поведение разработку в нашем процессе гибкой разработки. Первоначально мы искали среду BDD с открытым исходным кодом для реализации для тестирования BDD. Поскольку мы работаем над веб-приложением, мы хотели, чтобы наши автоматизированные тесты BDD использовали приложение в качестве пользовательского интерфейса через веб-интерфейс. Конечно, многие библиотеки веб-тестирования делают именно это, включая инструменты с открытым исходным кодом, такие как Селен а также WebDriver (Селен 2). Однако мы обнаружили, что ни одна из существующих структур BDD не поддерживает тестирование веб-автоматизации напрямую.

Мы решили просто интегрировать инструмент BDD с открытым исходным кодом. JBehave с Selenium, но вскоре узнал, что это решение не полностью соответствует потенциалу автоматических тестов BDD. Он не может управлять процессом разработки и документирования проекта так, как мы ожидали.

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

Нам была нужна среда тестирования, которая позволяла бы нам выражать и сообщать о тестах BDD на разных уровнях, эффективно управлять историями и их сценариями, а затем углубляться в детали по мере необходимости. И поэтому мы начали разрабатывать продукт, который соответствует нашим потребностям. Мы назвали этот продукт Behavior Automation Framework (Beaf) и разработали его, чтобы упростить практику разработки на основе поведения. На основе JBehave, а также более традиционных инструментов, таких как TestNG Beaf включает в себя множество функций, упрощающих написание автоматических тестов BDD и интерпретацию результатов.

Расширения и утилиты Beaf улучшают веб-тестирование на WebDriver / Selenium2 четырьмя способами:

  • Поставка веб-консоли Story, где менеджеры PM / QA могут управлять всеми существующими историями, делить истории на разные категории или группы и создавать / редактировать истории, используя правильный формат BDD.

Поставка веб-консоли Story, где менеджеры PM / QA могут управлять всеми существующими историями, делить истории на разные категории или группы и создавать / редактировать истории, используя правильный формат BDD

  • Организация веб-тестов в повторяющиеся этапы и сопоставление их с первоначальными требованиями и пользовательскими историями.

Организация веб-тестов в повторяющиеся этапы и сопоставление их с первоначальными требованиями и пользовательскими историями

  • Генерация отчетов и документации о тестах BDD. Всякий раз, когда выполняется контрольный пример, Beaf генерирует отчет. Каждый отчет содержит описание теста, включая краткий комментарий и скриншот для каждого шага. Отчет содержит не только информацию о результатах теста, но и документацию о том, как были реализованы тестируемые сценарии. Отчеты служат живой документацией, иллюстрирующей, как приложение реализует указанные требования.

Отчеты служат живой документацией, иллюстрирующей, как приложение реализует указанные требования

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

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

При выполнении теста, будь то с JUnit , JMock или другая структура, Beaf обрабатывает многие детали инфраструктуры Selenium 2 / WebDriver. Например, Beaf может работать с кроссплатформенными кейсами, включая настольные (Firefox, Chrome), мобильные (iPhone) и планшетные (iPad). Тестеры могут открыть новый браузер для каждого теста или использовать один и тот же сеанс браузера для всех тестов в классе. Используемый браузер / устройство также можно настроить в конфигурации Beaf.

Используемый браузер / устройство также можно настроить в конфигурации Beaf

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

@When ("размещение рекламы в категории \" $ category \ "категории) public void postingAd (@Named (" category ") категория String) выбрасывает Throwable {// 1. PageFactory будет генерировать страницы публикации объявлений в указанной категории. // 2. Статус страницы будет отправлен следующим шагом ThreadLocal. postAdPage.set (PostAdPageFactory.createPostAdPage (category, AdType.OFFER.name ())); }

В дополнение к отчетам о тестах, Beaf предоставляет очень полезный веб-модуль под названием Beaf Dashboard, который предоставляет более высокий уровень текущего состояния. Панель инструментов показывает состояние всех историй, как с точки зрения их относительных приоритетов, так и с точки зрения того, сколько историй и сценариев P1 / P2 / P3 полностью, частично или не автоматизировано. Эта информация дает хорошее представление о количестве работ, связанных с реализацией различных частей проекта. Панель инструментов также отслеживает результаты тестов с течением времени, так что пользователи могут наглядно представить объем выполненной работы в сравнении с предполагаемым объемом работы, которую предстоит выполнить.

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

Beaf облегчает QA людям присоединяться к проектам поэтапно. Он предоставляет PD / QA подробную информацию, необходимую для тестирования и обновления кода, а также дает бизнес-менеджерам и менеджерам проектов более высокоуровневые представления и отчеты, соответствующие их потребностям. Тем не менее, больший потенциал Beaf - это возможность превращать автоматизированные веб-тесты в автоматические веб-приемочные тесты в истинном духе BDD.

Похожие

Вскоре B-21 Raider - MILMAG - Военный журнал для испытаний
... долины"> Заявление было сделано во время конференции Совета по перспективам торговли и бизнеса Антилопной долины. Главнокомандующий объявил, что будущее стратегического бомбардировщика следующего поколения стало совершенно ясным . Генерал Шефер был первым, кто публично объявил, что B-21 Raider будет испытан на авиабазе Эдвардс. Как он подчеркнул, выбор места не случаен, так как предыдущие стратегические бомбардировщики USF были исследованы в Калифорнии. Не раскрывая