Part of a series on |
Software development |
---|
Behavior-driven development (BDD) involves naming software tests using domain language to describe the behavior of the code.
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] It encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave.[3] BDD is considered an effective practice especially when the problem space is complex.[4]
BDD is considered a refinement of test-driven development (TDD).[1][5][6][vague][7] [8] BDD combines the techniques of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.[1][7]
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.[5] Some tools specifically for BDD can be used for TDD. The tools automate the ubiquitous language.