Acceptance Test Driven Development (ATDD) are loc într-un mediu de dezvoltare software. Lucrând în colaborare, echipa de programare și dezvoltare software determină criteriile de acceptare, oferă exemple ale acestor criterii și apoi creează teste de acceptare pe baza acelor criterii înainte de a începe dezvoltarea software-ului. Acest lucru ajută întreaga echipă să înțeleagă mai bine obiectivele produsului finit, cum ar trebui să arate acel produs finit și cum ar trebui să performeze. În urma unui flux de lucru detaliat, ATDD este un proces structurat, care oferă echipei de dezvoltare software o serie de beneficii înainte, în timpul și după procesul de dezvoltare. De asemenea, pentru a asigura succesul, procesul trebuie să includă echipa potrivită și metodele potrivite.
ATDD stabilește un flux de lucru consecvent care urmează un format specificat pentru a se asigura că toți membrii echipei înțeleg ce este necesar pentru ca produsul finit să funcționeze conform intenției. Acest flux de lucru implică de obicei stabilirea criteriilor mai întâi, cel mai adesea din perspectiva utilizatorului, și crearea de exemple concrete. Ulterior, testele de acceptare sunt dezvoltate și rulate pentru a vedea rezultatele eșecului cu codul corect bazat pe aceste exemple. Apoi este dezvoltat un cod minim pentru a rula programul, mai multe teste de acceptare sunt rulate din nou, iar rezultatele sunt validate. Refactorizarea este apoi efectuată pe baza rezultatelor testelor de acceptare înainte ca programul final să fie dezvoltat pentru utilizare.
Beneficiile metodei ATDD pentru dezvoltarea de software sunt adesea citate printre dezvoltatorii de software și programatori, atât pentru accelerarea procesului de dezvoltare, cât și pentru asigurarea unui produs final solid. În etapa de planificare, a ajuta echipa de dezvoltare să se concentreze pe sarcinile potrivite este un beneficiu major. În timpul creării exemplelor și testării, concentrarea este rafinată în continuare, în timp ce se obține claritate asupra procesului și problemelor prezentate în timpul testării. Pe parcursul întregului proces și cu produsul final, stabilitatea și robustețea programului software este obiectivul. Aceste beneficii sunt de obicei obținute cu produsul final dacă este urmat fluxul de lucru ATDD și echipa colaborează eficient.
Pentru ca ATDD să funcționeze eficient, așa cum intenționează metoda, necesită ingredientele potrivite de la început. Echipele adunate trebuie să aibă contribuitori calificați, trebuie să colaboreze de bunăvoie și trebuie să fie bine pregătite și disciplinate pentru a duce procesul până la finalizare. Exemplele create trebuie să fie automatizate, eficiente, lizibile, întreținute, localizabile și măsurabile. Dacă exemplul creat nu îndeplinește fiecare dintre aceste criterii, procesul de testare și colaborare se blochează, ceea ce poate duce la producerea de erori software. În plus, toate modelele trebuie să fie testabile pentru ca procesul ATDD să producă în mod eficient un program software concis, robust și stabil.