пятница, мая 24, 2013

Посиделки AT.info: Мой доклад: Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)

Сегодня вечером состоялось очередное заседание клюба киевских автоматизаторов, ака «Посиделки».

В своем докладе я рассказал об известных представителях BDD-инструментария, таких как SpecFlow и BDDfy в сравнении с Юнит-тест стилем для различных уровней автоматизации тестирования: модульного тестирования и системного (через UI).

Вот краткий список идей, которые я хотел донести участникам посиделок:

1. Внедрение Behavior Driven Development состоит из 3-х этапов:

  1. Обсуждение для того, чтобы прийти к общему пониманию работы продукта, как со стороны бизнеса так и разработчиков (и тестировщиков!)
  2. Запись требований на бумаге (ну да, электронной).
  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

Слайды

И даже фото

Комментариев нет: