Test-Driven Development (TDD) este o abordare a designului software care are rădăcini în provocările la adresa codului de producție pentru a continua în pași mici pentru a construi funcționalitatea. Acest lucru poate părea contraintuitiv pentru oamenii care abia încep să învețe, dar oferă câteva avantaje, inclusiv o dezvoltare mai curată. De asemenea, poate fi mai rapid să utilizați această metodă odată ce oamenii sunt obișnuiți cu ea, în funcție de natura proiectului. Programatorii pot folosi o mare varietate de limbaje de programare în dezvoltarea bazată pe teste și le pot aplica noilor software-uri, îmbunătățirilor de versiune sau remedierii programelor existente.
În această abordare, programatorul începe prin a scrie un test care ar trebui să eșueze, deoarece codul de producție nu poate executa o anumită comandă sau interogare. Folosind eșecul ca bază, programatorul poate dezvolta câteva linii de cod de adăugat și poate rula din nou testul. Dacă eșuează, există ceva în neregulă care trebuie depanat înainte ca programatorul să poată continua. Odată ce trece, programatorul este conștient de faptul că testul a definit și ghidat în mod specific crearea unei funcții și poate trece la următoarea funcție.
În loc să producă volume mari de cod funcțional care ar putea trebui examinat ulterior pentru erori și defecte, dezvoltatorii se mișcă încet și în mod deliberat. Ei construiesc programul cu cod extrem de slab, deoarece scriu doar exact ceea ce au nevoie pentru anumite funcții. În timp, codul poate crește destul de mare, dar fiecare linie corespunde unei anumite funcții sau caracteristici. Incidența erorilor cu dezvoltarea bazată pe teste ar trebui, de asemenea, redusă, deoarece oamenii depanează eficient pe măsură ce merg testând iar și iar.
Fiecare dintre testele scrise poate fi folosită din nou în orice moment. Programatorul poate rula fiecare pentru a confirma că întregul program continuă să funcționeze așa cum ar trebui. Dacă nu, programatorul știe că o linie recentă de cod este o problemă și poate da un pas înapoi pentru a o evalua și a remedia problema. Setările de dezvoltare bazate pe teste diferă de o situație în care cineva ar putea fi nevoit să parcurgă numeroase linii de cod pentru a găsi greșeala, ceea ce poate consuma o cantitate substanțială de timp.
În esență, această abordare implică codificarea modului în care oamenii doresc să se comporte software-ul, pe baza unor teste specifice pe care le administrează pe măsură ce se deplasează. În timp ce dezvoltarea bazată pe teste poate suna consumatoare de timp și dificilă, poate fi de fapt foarte eficientă. Dezvoltatorii calificați nu au nevoie de mai mult de câteva minute pentru fiecare rundă de testare și codare. Abordarea oarecum inversă îi poate ajuta, de asemenea, să regândească strategiile și instrumentele care să le permită să lucreze în moduri noi și uneori mai eficiente.