#readwise # Behavior-Driven Development - Wikipedia ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article0.00998d930354.png) ## Metadata - Author: [[en.wikipedia.org]] - Full Title: Behavior-Driven Development - Wikipedia - URL: https://en.wikipedia.org/wiki/Behavior-driven_development - Tags: [[Test-Driven Development]], [[Domain-Driven Design]] ## Highlights - In software engineering, behavior-driven development (BDD) is an agile software development process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project. It **encourages teams to use conversation and concrete examples to formalize a shared understanding of how the application should behave**. It emerged from test-driven development (TDD). Behavior-driven development **combines the general techniques and principles 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**. ^qjppne - Behavior-driven development is an extension of test-driven development, a development process that makes use of a simple DSL. These DSLs convert structured natural language statements into executable tests. **The result is a closer relationship to acceptance criteria for a given function and the tests used to validate that functionality. As such it is a natural extension of TDD testing in general.** - **The Three Amigos, also referred to as a "Specification Workshop", is a meeting where the Product Owner discusses the requirement in the form of Specification by Example with different stakeholders like the QA and development team. The key goal for this discussion is to trigger conversation and identify any missing specifications.** The discussion also gives a platform for QA, development team and Product owner to converge and hear out each other's perspective to enrich the requirement and also make sure if they are building the right product. The three Amigos are Business - Role of the Business user is to define the problem only (and not venture into suggesting any solution) Development - Role of the Developers involve to suggest ways to fix the problem Testing - Role of testers is to question the solution, bring up as many as different possibilities for brain storming through What-If scenarios and help make the solution more precise to fix the problem.