BDD the acronym for Behavior Driven Development began as a simple modification of TDD (Test Driven Development) but has now grown into a full software development methodology. To give you the meaning of BDD, I can say, “Behavior-driven development is a way of developing software (which arose from the idea of Test Driven Development), from the desire to realization.”
In BDD, the acceptance tests become the starting point for the design of the software and serve as a basis for communication between the team and the stakeholders. The tests are written in a natural language in order to be sure that it leads to a shared understanding of the desired functionality. One of the biggest challenges in software projects is that everyone speaks in his own language.
The domain experts describe the system with their own jargon while technical team members use their own language to discuss the domain in terms of design. It is precisely at this interface where different languages come together and it is difficult to understand each other, hence, there occur most misconceptions. BDD provides a way to capture requirements so that everyone understands the scope and the acceptance criteria. It also provides a framework to define the acceptance criteria for a new job. When all acceptance criteria are filled, then the software works properly; if not, it does not work properly.
The advantage of BDD is that the acceptance tests can be read by everyone in the team and can be written. Here lies the real power of BDD as a communication tool and as a driving force for better cooperation. The tests are automated by the code of a developer but understood by the business stakeholder.
Principles of BDD:
BDD has three basic principles:
- Enough is enough: Advance planning, analysis, and design have diminishing returns. We must not do less than what is needed to start, but more than that is a futile effort.
- Delivering value to our "stakeholders": If you find yourself doing something that does not deliver value or increase your skill/ability to deliver value, quit and do something different.
- Everything is behavior (Behavior): Whether at the level of code, application or beyond, we can use the same thought and the same language to describe behavior at any level of granularity.
BDD – Development Cycle
The BDD focuses on creating code through interactions between developers and users through a process called outside-in development, which means development from the outside. In practice, the idea is to create examples describing software behavior that is to be evaluated by its users.
To guide the development of the software through the BDD methodology is critical that project managers clarify the responsibilities of each and allow the construction of the tool in question. It is also indicated that mock-ups are used to simulate system modules before these are written.
The use of these tests will serve to create the opportunity for fast feedback before the development.
The advantage of BDD’s Outside-in Development
BDD makes it clear that software development should be done from the interface that will have contact with the end user. That is, the software is developed outside to the inside, hence it is named as the outside-in development.
BDD is a methodology focused on the benefits that the application will bring to the business and the only way that is perceived to be implementing the interface and delivering to end users make their own considerations. These opinions, when evaluated by the developers, should guide the construction of the code.
Need help in speeding up the development of your software? Talk to our Informant!