Разработка, основанная на поведении или на основе тестирования?[закрыто]

StackOverflow https://stackoverflow.com/questions/121806

  •  02-07-2019
  •  | 
  •  

Вопрос

Недавно я услышал о BDD и нашел его очень похожим на TDD.

Какой из этих двух вы используете (если есть)?

и какие плюсы и минусы у каждого?

Это было полезно?

Решение

Я очень многое из BDD = TDD сделал правильно в лагере.Если вы используете TDD так, как первоначально описал Бек (и практикуют многие), то разницы по сути нет.

BDD предлагает несколько интересных вариантов языка, используемого для описания процесса.Используя альтернативную терминологию в описаниях процесса и инструментов, участники BDD надеются поощрять лучшие практики – а это похвальная цель.

Я так долго занимаюсь TDD, что мне трудно судить, действительно ли это помогает.Я думаю (надеюсь :-) я уже усвоил многие уроки, которые поощряют инструменты/язык BDD, так что они, похоже, не представляют для меня особой ценности.Конечно, YMMV — а я не реализовал целый «реальный» проект с использованием инструментов BDD — так что, возможно, я захожу в своих личных экспериментах и ​​экстраполирую слишком далеко.

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

Другие советы

BDD похож на TDD, но имеет другой подход.В BDD вы пытаетесь создавать исполняемые спецификации вместо тестов.В основном это достигается за счет использования другого словаря, но аналогичной механики, что и TDD.

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

BDD — это запуск сценариев.Подобно TDD, мы будем тестировать каждый сценарий как историю.

Историю объяснит заказчик..На основе сюжетной линии будут написаны сценарии.Такие инструменты, как CUCUMBER, упростили написание сценариев.

TDD и BDD во многом одинаковы.Разница в том, как мы это объясняем, и, следовательно, насколько успешными в конечном итоге становятся команды, заставляющие это работать на себя.

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

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

BDD — это то, что нужно для успеха TDD.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top