Behavior Driven Development (BDD) definition
- Behavior Driven Development (BDD) is an agile software development practice adding to Test-driven development( TDD) the description of the desired functional behavior :
- Behavior Driven Development focuses on the behavioral aspect of system for customer and developer but still practices writing test before code.
- Behavior-Driven Development (BDD) is a software development process, which focuses on user and system interactions.
- Writing customer requirements as acceptance tests called ATDD.
- Behavior Driven Development uses Ubiquitous language that can be understood by the developers and stakeholders.
- When Behavior Driven Development is adapted in a project, the technical nitty-gritty aspects of the requirements and implementation are outlined in a business-oriented language.
BDD benefits
- Behavior Driven Development (BDD) has 4 benefits :
- BDD ensures single source of truth by merging specification and test documentation into a single document.
- BDD can derive concrete examples in a collaborative manner from the acceptance criteria defined for each story.
- BDD bring business, developers and testers together with a common language
- BDD acts as a living documentation.
BDD practice
- When you are developing via a BDD approach, the following is internally being used :
- ATDD: Acceptance Test Driven Development
- TDD: Test Driven Development
- DSL: Domain Specific Language
- DDD: Domain Driven Design
- BDD combines practices from Test-Driven Development (TDD) and Domain-Driven Design (DDD) along with the collaboration of development team and domain experts :
- BDD uses a simple Domain-Specific-Language (DSL) using natural language structure based on the ubiquitous language that can express the behaviors and the expected outcomes.
- For more information, BDD does not have any formal requirements for exactly how user stories must be written down but Gherkin is a wide-used format to write down the requirements in the BDD approach.
- BDD is also referred to as Specification by Example and is a synthesis and refinement based on TDD and Acceptance Test-Driven Development (ATDD) practices.
- Behavior Driven Development is a variation / extension of Test-Driven Development methodology, where the main focus is on :
- Behavioral specifications of the product or application (or its features).
- User and System Interactions.
More informations for Scrum Testing
More informations for the Scrum PSD certification here.