I've been reading Test Driven Development (TDD) and Behavior Driven Development (BDD) articles these past few days and I'm a little bit confused on their differences. I came across BDD when I'm taking a look at RSpec framework for Ruby.
According to the definition of BDD from wikipedia:
Behavior Driven Development (or BDD) is a software development technique that questions the behavior of an application before and during the development process. Created in response to the failings the founders perceived in Test Driven Development, Behavior Driven Development addresses requirements and specification in a way that is more textual than its predecessor. By asking questions such as "What should this application do?" or "What should this part do?" developers can identify gaps in their understanding of the problem domain and talk to their peers or domain experts to find the answers. By focusing on the behavior of applications, developers try to create a common language that's shared by all stakeholders: management, users, developers, project management and domain experts.
From what I understand, BDD is different from TDD on how they approach in 'testing' a unit/entity. TDD is more focused on the application logic, while BDD is focused on what the behavior of the application on a given situation.
I'll try to put some codes differentiating TDD and BDD approach on my next post.
Till next time. =)