Сегодня вечером состоялось очередное заседание клюба киевских автоматизаторов, ака «Посиделки».
В своем докладе я рассказал об известных представителях BDD-инструментария, таких как SpecFlow и BDDfy в сравнении с Юнит-тест стилем для различных уровней автоматизации тестирования: модульного тестирования и системного (через UI).
Вот краткий список идей, которые я хотел донести участникам посиделок:
1. Внедрение Behavior Driven Development состоит из 3-х этапов:
- Обсуждение для того, чтобы прийти к общему пониманию работы продукта, как со стороны бизнеса так и разработчиков (и тестировщиков!)
- Запись требований на бумаге (ну да, электронной).
- Автоматизация требований, создание так называемой Живой Документации.
2. В BDD нет жестких рамок, как в TDD или Scrum. BDD – это набор хороших практик на любом уровне внедрения. Вы выбираете ту, которая лучше всего подходит в вашей ситуации.
3. Использование BDD – инструментов – это не означает что вы используете BDD. Инструменты универсальны. Их можно использовать для множества задач. Например, SpecFlow предназначался для бизнес-сценариев, где вначале функциональность рассказывается человеческим (бизнес) языком, а уж потом идет автоматизация каждого шага. Иногда SpecFlow используют для создания Keyword-Driven тестов, когда четко расписана не работа приложения, а скорее навигация по приложению: клик, клик, клик, напиши_текст. Я не поклонник этого подхода, тем не менее, если это подход приносит вам пользу (а в конкретных ситуациях это так), то нет ничего плохого в использовании инструмента и таким образом. Лично я за то, чтобы это делать на языке программирования, а не на SpecFlow.
4. Инвестируйте в фреймворк. Для юнит-тестов вам не нужен свой фреймворк. Тесты будут выглядеть красиво без дополнительных усилий. Для интеграционных тестов – вам потребуются методы-помощники, для системных тестов, использующих UI – фреймворк обязателен (если, конечно, вы делаете ставку на долгосрочную перспективу)
5. Не ограничивайтесь одним инструментом. BDDfy очень близок к юнит-тестам, так что все тесты можно писать и на нем. А вот SpecFlow более высокоуровневый. Не думайте, что если вы уже выбрали этот инструмент, то все тесты обязательно должны быть написаны только на нем. Вы можете использовать SpecFlow для автоматизации бизнес-примеров работы приложения, которые объясняют как это приложение работает. И эти примеры должны быть высокоуровневыми. Если вам необходимо проверить, что кнопка должна быть красного цвета – напишите тест в юнит-тест стиле и положите рядом.
И BDDfy и SpecFlow отлично интегрируются с юнит-тест фреймворками. Вам нужны красивые отчеты, чтобы кому-то можно было показать? – Используйте BDD-инструменты. На ваши отчеты никто не смотрит? – Так зачем напрягать себя дополнительной работой?
На этом все. Презентацию и ссылку на исходный код можно посмотреть ниже. Официальный отчет скоро появится на сайте Automated-Testing.info.
Код на GitHub: https://github.com/dzhariy/presentation-atinfo-bddtools.git
Слайды
И даже фото
@dzhariy смирительная битва ! #atinfo twitter.com/AndreyAzimov/s…
— Andrey Azimov (@AndreyAzimov) 23 мая 2013 г.
Комментариев нет:
Отправить комментарий