User Tools

Site Tools

Behavior Driven Development

Behavior Driven Development (BDD) is a software development methodology, where software is specified and designed by describing how it’s behavior should look like for an outside person.1) This software development methodology is developed in 2003 by Dan North.2)

Behavior Driven Development is based on Test – Driven Development (TDD).3) Dan North trained Test – Driven Development. He noticed that the software developers, who he trained, had often the same questions.4) When Dan North learned more about Test – Driven Development, this was very difficult for him. There was no common theme.5) This is the reason, wherefore he created Behavior Driven Development. It has the goal to make the access easier and the development more effective for teams who are new to agile software delivery.6)

Behavior Driven Development is also used for the development of automatic tests of user stories. This user stories are an element of agile approaches of software development.7)

Usage

In a software development process, there must be defined user stories. This user stories are describing the requirements of the stakeholders for the software.8) In Behavior Driven Development there must be defined prerequisites and postconditions too.9) With the user stories, prerequisites and postconditions there can be defined the behavior of the software. For each of the user stories there can be created a lot of scenarios now. This scenarios are using the prerequisites and postconditions as an orientation. The scenarios can be described with the “Given – When – Then” schema.10) “Given” must be all prerequisites of an user story. “When” is the action, which the user want to execute. “Then” is the process, which must be executed by the software about reach the target of the user. The behavior of the software will be defined by the stakeholders.11) They give also real examples for each of the user stories. This examples can be created into acceptance criteria by the software developers.12) They can create automatic tests with this acceptance criteria. The results of these tests are easy to understand for the stakeholders and give them safety in view of the advance of the development project.13)

Benefits

A benefit of Behavior Driven Development is, that the development work can be traced back to user stories.14) This user stories are defined by the stakeholders. So the tasks of the software developers are given by the stakeholders. The software developers can identify the user needs good. The satisfaction of the stakeholders is big, because the software corresponds to their expectations.15) The stakeholders are understanding the development good now, because the developers and the stakeholders use a shared language. The software developers can also understand the expectations of the stakeholders.16) The prioritization of the software features is efficient with Behavior Driven Development, because the business critical features are delivered at first. So the software includes the most important features very fast.17) Because the quality of the code is although good, the costs of the maintenance are less. The risks of the project are also less. This is also very important for the stakeholders.18)

Future

In the future Behavior Driven Development should be integrated in popular Java IDE’s like IntelliJ IDEA.19)