Acceptance test-driven development (ATDD) is een samenwerkingsproces waarbij ontwikkelaars, testers en vertegenwoordigers van de business samenkomen om eisen uit te werken, mogelijke valkuilen te zien en de kans op fouten te verkleinen voordat het coderen begint. ATDD wordt geschreven vanuit het perspectief van de gebruiker en beantwoordt de vraag: "Doet de code wat hij moet doen?"
De eerste stap in ATDD is het bijeenbrengen van alle betrokken partijen en het houden van een specificatieworkshop. Zodra de eisen in de workshop zijn gedefinieerd en verduidelijkt, kunnen de testers geautomatiseerde tests maken op basis van de gespecificeerde criteria. Quality assurance (QA) testers werken samen met ontwikkelaars om de eerste test te implementeren en te automatiseren. ATDD maakt het ook eenvoudiger om unit tests uit te voeren.
ATDD-testopzet
ATDD-tests hebben meestal het volgende formaat:
Gegeven: A setup, specified state.
And (optional): Setup continued.
When: Trigger, an action or event happens.
Then: Verification. State has changed or output is produced.
An example using the ATDD format:
Given: Movie listed on catalog of video streaming app.
And: User is a paid subscriber.
When: User selects movie to watch from app catalog.
Then: Movie is streamed for user.
Benefits of ATDD
ATDD brings everyone involved in development together to discuss the criteria around which an app is built. Duidelijkheid over requirements helpt verspilde inspanningen te verminderen en begrijpen hoe een bedrijf verwacht dat dingen functioneren kan hercodering en fouten verminderen. ATDD kan vaak nuttig zijn voor ontwikkelaars die Agile werken.
Zelfs in gevallen waar het testen niet is geautomatiseerd of de testers weinig kennis hebben van coderen, is er nog steeds waarde in het verduidelijken van business voorwaarden en logica. Alle teams kunnen baat hebben bij samenwerking met business experts en vroegtijdige bespreking van hoe te testen, zodat de noodzakelijke requirements worden ingevuld. Het eindresultaat van ATDD is een betere, betrouwbaardere applicatie.
ATDD vs. TDD
Waar ATDD zich concentreert op samenwerking en testen op gebruikersfunctionaliteit, volgt testgestuurde ontwikkeling (TDD) meer een ontwikkelaarsgerichte aanpak. TDD richt zich op het uitvoeren en automatiseren van unit tests en is eenvoudiger te implementeren. Zowel ATDD als TDD zijn gericht op het verminderen van onnodige code en resources van ontwikkelaars, terwijl er uitgebreide requirements worden opgesteld en er continu getest wordt om er zeker van te zijn dat een product voldoet aan de verwachtingen van de gebruiker.