BDD jest techniką tworzenia oprogramowania polegającą na pisaniu funkcjonalności w sposób ciągłego powtarzania kroków – pisania testu, kodu oraz jego refaktoryzacji. W przeciwieństwie do TDD posługujemy się zupełnie innym językiem opisującym zachowania. BDD może być użyte na poziomie StoryBDD i SpecBDD. Historie opisują domenę, zaś specyfikacja skupia się na tym, jak napisać kod, aby działał zgodnie z oczekiwaniami. Ten drugi poziom przybliży niniejszy artykuł.
TDD jest podstawą dla BDD. Praktyki wdrażane za pomocą TDD zostały zastosowane i rozszerzone w nowym podejściu do rozwoju oprogramowania, czyli w BDD.
W wielu projektach stosuje się tradycyjne techniki prowadzenia projektów, np. zgodne z modelem wodospadowym. Analizujemy wymagania, w kolejnych krokach przeprowadzamy złożone testy, wykazując zgodność produktu z zamówieniem. Metodyki zwinne takie jak Extreme Programming (XP) wprowadzają odwrotne podejście. W pierwszym kroku tworzymy testy, następnie implementujemy funkcjonalność. Artykuł przedstawia TDD i BDD (ang. Test Behaviour Driven Development), opisuje wskazówki dotyczące wdrażania oraz prezentuje narzędzie jBahave.