Test-Driven Development (TDD) je pristop k oblikovanju programske opreme, ki je zakoreninjen v izzivih produkcijske kode, da se nadaljuje v otroških korakih za izgradnjo funkcionalnosti. Ljudje, ki se šele začenjajo učiti, se to lahko zdi protiintuitivno, vendar ponuja nekaj prednosti, vključno s čistejšim razvojem. To metodo je lahko tudi hitreje uporabiti, ko so jo ljudje navajeni, odvisno od narave projekta. Programerji lahko uporabljajo najrazličnejše programske jezike v testno vodenem razvoju in jih lahko uporabijo za novo programsko opremo, izboljšave različic ali popravke obstoječih programov.
Pri tem pristopu programer začne s pisanjem testa, ki naj ne uspe, ker produkcijska koda ne more izvesti določenega ukaza ali poizvedbe. Na podlagi napake lahko programer razvije nekaj vrstic kode za dodajanje in znova zažene test. Če ne uspe, je nekaj narobe, kar je treba odpraviti, preden lahko programer nadaljuje. Ko je programer uspešen, se zaveda, da je test posebej definiral in vodil ustvarjanje funkcije, in se lahko premakne na naslednjo funkcijo.
Namesto ustvarjanja velikih količin funkcionalne kode, ki jo bo morda treba pozneje pregledati glede hroščev in pomanjkljivosti, se razvijalci premikajo počasi in premišljeno. Program sestavijo z izjemno vitko kodo, ker pišejo samo tisto, kar potrebujejo za določene funkcije. Sčasoma se lahko koda precej poveča, vendar vsaka vrstica ustreza določeni funkciji ali funkciji. Zmanjšati je treba tudi pojavnost hroščev pri razvoju, ki ga poganjajo testi, ker ljudje učinkovito odpravljajo napake, ko gredo tako, da znova in znova testirajo.
Vsak od napisanih testov je mogoče kadar koli znova uporabiti. Programer lahko zažene vsakega posebej, da potrdi, da celoten program še naprej deluje, kot bi moral. Če ne, programer ve, da je nedavna vrstica kode težava, in se lahko umakne, da jo oceni in odpravi težavo. Razvojne nastavitve, ki jih poganjajo testi, se razlikujejo od situacije, ko bo nekdo morda moral pregledati številne vrstice kode, da bi našel napako, ki lahko vzame veliko časa.
V bistvu ta pristop vključuje kodiranje za to, kako ljudje želijo, da se programska oprema obnaša, na podlagi posebnih testov, ki jih upravljajo, ko se premikajo. Čeprav lahko razvoj na podlagi testov zveni zamuden in težaven, je lahko dejansko zelo učinkovit. Izkušeni razvijalci ne potrebujejo več kot nekaj minut za vsak krog testiranja in kodiranja. Nekoliko obraten pristop jim lahko pomaga tudi pri ponovnem premisleku o strategijah in orodjih, ki jim omogočajo delo na nove in včasih bolj učinkovite načine.