Behavior-driven development, or BDD, is a methodology devised to bridge the gap between the business needs of the software and the real features of the software in development. It consists of two processes:
Cucumber is a tool used in BDD. Cucumber defines a domain-specific language for test automation that reads like English. User stories convert to steps, which in turn convert to operations on the system. Finally, checking the impact of these steps on the system gives insight into whether it behaves as expected.
BDD fits in very well with the agile methodology by rapidly iterating the user’s needs. It is also compatible with test-driven development because the behavior documentation is convertible to test cases.