What is Behavior Driven Development (BDD)?
Document Contents
Introduction
In this post, we will discuss BDD. BDD stands for Behavior Driven Development. It is all about collaboration within the team. BDD is practiced with automation tools like JBehave, Cucumber, Jasmine, etc. ( What is JBehave Framework?)
BDD is an evolution of TDD( Test Driven Development Approach ). Behavior Driven Development can be viewed as:
Acceptance + Test-Driven Development.
To know more about BDD:
https://en.wikipedia.org/wiki/Behavior-driven_development
Gherkin Language
Testers, Developers, and Product Owners work together to determine scenarios. Testers and Developers write behaviors in a language known as Gherkin. It is both human-readable and computer-readable.
Gherkin language verbs are:
Given
When
And
Then.
Product Owner reviews the behaviors for accuracy and completeness. Also, the gherkin language is simple and unambiguous. It facilitates and makes the understanding of acceptance criteria simple. Furthermore, the scenarios are automated into tests with automated tools. ( Writing Simple JBehave Story )
Three Amigos
Developer/Testers write code that ties the steps in the scenario to interactions with the AUT( Application under Test). By using this procedure, the developer ensures that the behavior of the system becomes automated. Besides, these build into a comprehensive test harness suite, that dramatically reduces the time required to perform regular cycles of testing.
Therefore, testing resources find ample time for other forms of testing or to accept spike stories.
Specification By Example
This technique is used in Agile development, for managing requirements and functional tests on large-scale projects of the significant domain and organizational complexity use this approach. Also, SBE is a collaborative approach to defining requirements and business-oriented tests for products based on capturing and illustrating requirements using real examples.
Living Documentation
A Serenity BDD project report of living documentation:
More info at:
https://en.wikipedia.org/wiki/Specification_by_example