Test-Driven Development (TDD) on lähenemine tarkvara kujundamisele, mis põhineb tootmiskoodi väljakutsetel, et jätkata funktsionaalsuse ülesehitamisel. See võib tunduda vastuoluline inimestele, kes alles hakkavad õppima, kuid see pakub mõningaid eeliseid, sealhulgas puhtamat arengut. Selle meetodi kasutamine võib olla ka kiirem, kui inimesed on sellega harjunud, olenevalt projekti iseloomust. Programmeerijad saavad testipõhises arenduses kasutada mitmesuguseid programmeerimiskeeli ja rakendada seda uue tarkvara, versioonitäiustuste või olemasolevate programmide paranduste puhul.
Selle lähenemisviisi puhul alustab programmeerija testi kirjutamisega, mis peaks ebaõnnestuma, kuna tootmiskood ei saa konkreetset käsku või päringut täita. Võttes aluseks vea, saab programmeerija koostada lisamiseks mõne koodirea ja testi uuesti käivitada. Kui see ebaõnnestub, on midagi valesti, mis tuleb siluda, enne kui programmeerija saab jätkata. Kui see on läbitud, on programmeerija teadlik, et test on funktsiooni loomise konkreetselt määratlenud ja juhtinud, ning saab edasi liikuda järgmise funktsiooni juurde.
Selle asemel, et toota suurtes kogustes funktsionaalset koodi, mida võib olla vaja hiljem vigade ja vigade osas uurida, liiguvad arendajad aeglaselt ja tahtlikult. Nad loovad programmi äärmiselt lahja koodiga, sest nad kirjutavad täpselt seda, mida nad konkreetsete funktsioonide jaoks vajavad. Aja jooksul võib kood kasvada üsna suureks, kuid iga rida vastab konkreetsele funktsioonile või funktsioonile. Testipõhise arenduse puhul tuleks samuti vähendada vigade esinemissagedust, sest inimesed siluvad tõhusalt töö käigus, testides ikka ja jälle.
Kõiki kirjutatud teste saab igal ajal uuesti kasutada. Programmeerija võib käivitada iga üksiku, et kinnitada, et kogu programm töötab jätkuvalt nii nagu peaks. Kui seda ei juhtu, teab programmeerija, et hiljutine koodirida on probleem, ja saab selle hindamiseks ja probleemi lahendamiseks tagasi astuda. Testipõhised arendusseaded erinevad olukorrast, kus keegi võib vea leidmiseks läbi sõeluda mitmeid koodiridu, mis võib kulutada palju aega.
Sisuliselt hõlmab see lähenemine kodeerimist selle kohta, kuidas inimesed soovivad tarkvara käituda, tuginedes konkreetsetele testidele, mida nad liikumise ajal haldavad. Kuigi testipõhine arendus võib tunduda aeganõudev ja keeruline, võib see tegelikult olla väga tõhus. Kogenud arendajad ei vaja iga testimise ja kodeerimise vooru jaoks rohkem kui paar minutit. Mõnevõrra vastupidine lähenemine võib samuti aidata neil strateegiaid ja tööriistu ümber mõelda, et võimaldada neil töötada uutel ja mõnikord tõhusamal viisil.