Test-driven development (TDD) is a software development principle and practice, a way of developing valuable software. Test-driven development is closely tied to the test-first programming method of eXtreme Programming (XP). Kent Beck rediscovered and popularized this practice in his book, “Test Driven Development by Example.” (1)
Most people agree that TDD is very valuable in software development, though problems still exist. Developers need to know where to start, what to test and what not to test, how much to test, what to call their tests, and how to understand why a test fails.
So let’s take TDD one step further with behavioral driven-development (BDD). While TDD focuses on the developer’s point of view, on how the feature should work, BDD focuses on the user’s perspective, on how the feature should behave. Thus, BDD is an evolution of TDD.