BDD (Behavior Driven Development) är en metodik som populariserades av Dan North år 2003 och har sitt ursprung i TDD (Test Driven Development), där de två metoderna är komplementära.
Varför ska man använda BDD? Det är särskilt användbart för att hantera de vanliga problemen med specifikationer i Agil utveckling:
BDD är därför en Agil praxis som syftar till att synkronisera de olika aktörerna som utvecklar en funktionalitet med vad den faktiskt ska göra. Målet med BDD är att designa acceptanstester som illustrerar funktionalitetens beteende, med metoder som de 3 vännerna (3 amigos) eller mappning. BDD metoden genomförs vanligtvis i tre steg: upptäckt, formulering och automatisering.
De inblandade parterna synkroniseras genom gemensamt designade exempel som illustrerar funktionalitetens beteende. Detta innebär att användarhistorien (US) upptäcks, vilket ofta sker genom mötet mellan de tre vännerna (kund, utvecklare och tester). Genom detta möte skapas en gemensam förståelse för behovet, vilket gör det möjligt att skriva acceptansscenarier för att validera acceptanskriterier.
Dessa exempel formuleras med ett gemensamt språk, Gherkin, som enkelt förstås av de olika profilerna hos de 3 vännerna. Gherkin språket är formaterat för att skriva strukturerade tester i ett naturligt språk som i förväg kan förstås av alla. Gherkin tester skrivs med de 4 grundläggande elementen: GIVEN / WHEN / THEN … AND (GIVEN en viss kontext, WHEN jag utför en handling, THEN får jag resultat1 AND resultat2).
Från denna strukturerade (och formaterade) formulering av funktionalitetens beteende är det möjligt att integrera dessa exempel i ett mjukvaruverktyg, som Cucumber till exempel, som kommer att tolka detta Gherkin språk för att köra automatiserade acceptanstester anpassade till dessa exempel.
BDD används i många företag för att testa beteendet hos vissa funktionaliteter i nära samarbete med användare. Men även om BDD används för att uppnå en gemensam förståelse av behov, finns det fortfarande ett antal förvirringar kring denna Agila praxis, som kan leda till vissa missbruk. Vad är dessa?
Innan sprinten består BDD-praxisen, genom upptäckt, av att validera en gemensam förståelse av kravet av alla involverade aktörer. Denna förståelse formuleras genom exempelvis acceptanskriterier och acceptansscenarier, som sedan implementeras i ett verktyg för design och exekvering av automatiserade tester.
Att tillämpa de olika stegen i denna metod kommer att hjälpa till att bekämpa BDD:s avvikelser, och framför allt den förvirring som för närvarande råder kring de olika termerna som omger BDD-konceptet.