BDD и TDD даже больше имеют очень неудачное название, потому что оно фактически не охватывает то, для чего они используются.
- Вы не хотите писать тесты для каждого возможного углового случая во время цикла разработки, что тестеры должны выбрать.
- Вам не нужны регрессии, и вы хотите быть уверены, что пишете код, необходимый для очистки этой итерации, чтобы получить повторяемый результат
- Вам не нужно делать детальные проекты в начале, а просто записать некоторые требования, которые вы хотите видеть законченными на этот раз.
BDD / TDD любой из 2 - это хорошо, если вы не пишете строку кода до того, как у вас есть фрагмент кода, который описывает фрагмент кода, который вы собираетесь написать. Сделав это, вы попадете в зону.
Хотя нет никаких доказательств того, что BDD / TDD улучшит вашу скорость разработки (скорее всего, нет), это значительно уменьшит количество проблем, которые вы получите после выпуска проверенного программного обеспечения.
BDD - это эволюция TDD, когда TDD оказывает давление, чтобы проверить все, что BDD смягчает, и говорит, что вам следует проверять только публичное поведение ваших классов, потому что внутренняя структура может измениться.
BDD касается как дизайна, так и анализа, но я не думаю, что это ваш вопрос, не так ли? Вы хотите знать, как перевести истории в блок-схемы и архитектурные схемы?
Потому что из вашего вопроса я понял, что вы делаете большой дизайн заранее, а затем пытаетесь его кодировать. Это не сработает с BDD, потому что, удовлетворяя ваши истории, которые вы должны писать по частям, вы автоматически получаете свой код и архитектуру. Это называется эмерджентным дизайном, поэтому нет большого этапа планирования.
В SCRUM или подобной мудрой системе это работает очень хорошо, потому что бизнес отдает приоритет вашим историям. Вы начинаете сверху и пишете спецификацию / пример для него, затем пытаетесь удовлетворить пример, повторяя это, пока не завершите этот элемент невыполненного задания, а затем возьмите следующий и начните все сначала.
Я надеюсь, что это ответит на ваш вопрос ... если нет, вам нужно немного уточнить, потому что это тема лукавства. Короче говоря, BDD - это инструмент разработчика, а не для архитекторов, BA, ... Тестировщики могут использовать инструменты BDD, но я надеюсь, что это не единственный инструмент, который они используют для тестирования приложения.