Behavior-driven development
BDD is an agile process designed to keep the focus on stakeholder value throughout the whole project. It is a form of TDD. Specifications are defined in advance, the implementation is done according to those specifications, and they are run periodically to validate the outcome. Besides those similarities, there are a few differences as well. Unlike in TDD, which is based on unit tests, BDD encourages us to write multiple specifications (called scenarios) before starting the implementation (coding). Even though there is no specific rule, BDD tends to levitate towards higher-level functional requirements. While it can be employed at a unit level as well, the real benefits are obtained when taking a higher approach that can be written and understood by everyone. The audience is another difference: BDD tries to empower everyone (coders, testers, managers, end users, business representatives, and so on). While TDD, which is based on unit level, can be described as...