BDD или разработка, основанная на поведении, ставит разработчиков на место владельцев бизнеса, заставляя их думать о том, как их код создает ценность.

Что такое БДД?

BDD требует, чтобы программные единицы определялись с точки зрения желаемого поведения. Часто желаемое поведение связано с некоторым требованием ценности бизнеса. BDD — обычная практика в процессе гибкой разработки.

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

Правила BDD

BDD часто использует один из двух форматов. Формат «дано-когда-то» или «как пустое я хочу пустое чтобыпустое. Например,

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

Популярным способом реализации BDD с помощью программирования является тестирование с помощью Огурца и Огурца.

Плюсы развития, ориентированного на поведение

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

Минусы развития, основанного на поведении

  • Требования в BDD должны быть достаточно конкретными, чтобы разработчики могли их реализовать.
  • Автоматическое тестирование поведения с помощью структуры BDD может потребовать дополнительного обслуживания.

Дальнейшее чтение

BDD тесно связан с ATDD или разработкой через приемочное тестирование и TDD или разработкой через тестирование.

Подробнее о многих видах тестирования программного обеспечения вы можете прочитать в этой серии.

Первоначально опубликовано на https://blog.seancoughlin.me.