BDD (Behavior-Driven Development) is a software development methodology that initially emerged from Test-Driven Development (TDD), in BDD an application is specified and developed by expressing its behavior.
BDD uses examples to illustrate the system's behavior written in a readable and understandable language for everyone.
- Encourage Collaboration: In software engineering, behavior-driven development is an Agile software development technique that promotes collaboration among developers, QA, non-technical, or business participants.
- Ubiquitous Language: Many Software projects suffer from low-quality communication between the domain expert and programmer. Domain experts are less technical and use their jargon, and Developers and QA want to interpret things simply because of less domain knowledge. So, there was a need for ubiquitous language that everybody could understand in the team.
- Specification By Example: BDD is also referred to as Specification by Example. BDD is Shifting from thinking in "tests" to "behavior" In BDD, the behavior represents both the specification and the test cases. BDD is about implementing the software by describing its behavior from the perspective of its stakeholders and customers.
- Supported Tools: Many automation tools support BDD, including Cucumber, Behat, SpecFlow, Jasmin, Concordion, and JBehave.
- Emerged from TDD: Behavior-driven development incorporates the general techniques and principles of TDD.
- Agile Technique: BDD encourages working in quick iterations, constantly breaking down your user's issues into small parts that can flow through your development cycle as quickly as feasible.
- Implement in Existing Framework: You can easily migrate smoothly from your existing framework to BDD by writing Gherkin Steps and mapping step definitions with your already written methods.