Skip to main content

What is Behavior Driven Development

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.

Why BDD?

  1. 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.
  2. 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.
  3. 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.
  4. Supported Tools: Many automation tools support BDD, including Cucumber, Behat, SpecFlow, Jasmin, Concordion, and JBehave.
  5. Emerged from TDD: Behavior-driven development incorporates the general techniques and principles of TDD.
  6. 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.
  7. 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.

Video Tutorial: Behavior Driven Development

Submitted by tgoswami on December 21, 2016

Tarun has 11+ years of experience in Quality Assurance in different domains like Banking, E-commerce, Health and Education.

About

At ProgramsBuzz, you can learn, share and grow with millions of techie around the world from different domain like Data Science, Software Development, QA and Digital Marketing. You can ask doubt and get the answer for your queries from our experts.