BDD involves use of a domain-specific language (DSL) using natural-language constructs (e.g., English-like sentences) that can express the behavior and the expected outcomes.
Proponents claim it encourages collaboration among developers, quality assurance experts, and customer representatives in a software project.[1][2][3] It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave.[4] BDD is considered an effective practice especially when the problem space is complex.[5]
At a high level, BDD is an idea about how software development should be managed by both business interests and technical insight. Its practice involves use of specialized tools.[6] Some tools specifically for BDD can be used for TDD. The tools automate the ubiquitous language.
^ abNorth, Dan (March 2006). "Introducing BDD". Dan North. Retrieved 25 April 2019.
^ abHaring, Ronald (February 2011). de Ruiter, Robert (ed.). "Behavior Driven development: Beter dan Test Driven Development". Java Magazine (in Dutch) (1). Veen Magazines: 14–17. ISSN1571-6236.