Behavior-driven development (BDD) is a software development methodology in which an application is specified and designed by describing how its behavior should appear to an outside observer.
A typical business application project would begin by having stakeholders offer concrete examples of the behavior they expect to see from the system. All coding efforts are geared toward delivering these desired behaviors. The real-life examples gleaned from stakeholders are converted into acceptance criteria with validation tests that are often automated. The results of these tests provide confidence to stakeholders that their desired business objectives for the software are being achieved. Ideally, the reports are generated in such a way that the average stakeholder can understand the business logic of the application. Living documentation is used throughout the system to ensure that all documentation is up to date and accurate.
In practice, behavior-driven development may be similar to test-driven development when all stakeholders have programming knowledge and skills. However, in many organizations, BDD offers the ability to enlarge the pool of input and feedback to include business stakeholders and end users who may have little software development knowledge. Because of this expanded feedback loop, BDD may more readily be used in continuous integration and continuous delivery environments.