Acceptance Test Driven Development (ATDD) ehk vastuvõtutestidel põhinev arendus on tarkvaraarenduse metoodika, kus "kolm sõpra" (The Three Amigos) – arendaja, testija ja tooteomanik (või äriklient) – koostavad enne koodi kirjutamist ühiselt vastuvõtutestid.
Need testid defineerivad täpselt, mida süsteem peab tegema, et see loetaks "valmis" olevaks. Erinevalt klassikalisest TDD-st (mis keskendub ühiktestidele ja koodi tehnilisele õigsusele), keskendub ATDD süsteemi käitumisele ja ärilistele nõuetele.
ATDD protsess järgib tavaliselt nelja peamist sammu, mida tuntakse ka kui 4 D-d:
ATDD on katusmõiste ja seda aetakse tihti segi või kasutatakse koos teiste sarnaste lähenemistega. Otseseid "alamvariante" on raske eristada, pigem on need erinevad implementatsioonid:
ATDD tsükkel on iteratiivne. Allpool on kirjeldatud visuaalne protsess:
| ATDD Arendustsükkel |
|---|
ATDD kõige kriitilisem omadus ei ole mitte automatiseerimine, vaid kommunikatsioon.
Miks? Tarkvaraarenduse suurim ja kulukaim probleem on "vale asja ehitamine". Kui arendaja saab nõudest valesti aru, on hilisem parandamine kordades kallim. ATDD sunnib äripoole ja arendajad enne esimest koodirida kokku leppima täpsed kriteeriumid.
| Omadus | Plussid (Head) | Miinused (Vead) |
|---|---|---|
| Kvaliteet | Vähendab oluliselt defektide arvu ja ümbertegemise vajadust, kuna nõuded on selged. | Võib tunduda alguses aeglane, kuna "koodi ei toodeta" kohe. |
| Dokumentatsioon | Testid toimivad kui "elav dokumentatsioon" (Living Documentation), mis on alati ajakohane. | Testide ja dokumentatsiooni haldamine nõuab distsipliini ja aega. |
| Koostöö | Lõhub barjäärid arendajate, testijate ja äripoole vahel. | Nõuab suurt kultuurilist muutust ja kõigi osapoolte (eriti äripoole) aktiivset aega. |
| Hooldus | Lihtsustab hilisemat koodi muutmist (regression testing on automaatne). | Halvasti kirjutatud vastuvõtutestid võivad muutuda rabedaks (brittle tests) ja vajada pidevat parandamist. |
| Loe rohkem Wikipediast | ||
Info koondamisel on kasutatud järgmisi allikaid:
Agile Alliance: ATDD Cucumber & BDD (Seotud teema) GeeksForGeeks: ATDD