Test Driven Development (TDD) ehk testipõhine arendus on tarkvaraarenduse metoodika, kus testid kirjutatakse enne tegelikku programmi koodi. Protsess sunnib arendajat mõtlema läbi nõuded ja disaini enne koodi kirjutamist, tagades, et iga koodirida omab eesmärki.
TDD põhineb väga lühikesel ja korduval tsüklil, mis koosneb kolmest põhietapist:
Jah, kuna TDD on laiema kontseptsiooniga lähenemine, on sellest välja kasvanud mitmeid spetsiifilisemaid alamvariante ja edasiarendusi:
TDD mudelit kujutatakse tavaliselt lõputu tsüklina või ringina, mis sümboliseerib pidevat arendust.
Kujuta ette kolme noolega ringi, mis liigub päripäeva:
TDD kõige tähtsam omadus on koodi usaldusväärsus ja turvavõrk (Safety Net).
Miks? Kuna iga koodirida on kaetud testiga, saab arendaja teha muudatusi, lisada uusi funktsioone või refaktoreerida vana koodi ilma hirmuta, et miski ootamatult katki läheb. Kui viga tekib, annavad testid sellest koheselt märku ("Fast Feedback"). See vähendab drastiliselt vigade leidmise ja parandamise kulu projekti hilisemates faasides.
| Head omadused (Plussid) | Vead ja riskid (Miinused) |
|---|---|
| Kõrge koodikvaliteet: Sunnib kirjutama modulaarset koodi. | Ajakulu alguses: Esmane arendus on aeglasem. |
| Vähem vigu: Vead leitakse kohe arenduse käigus. | Raske õppida: Nõuab arendajalt uut mõtteviisi. |
| Julge refaktoreerimine: Muudatusi on turvaline teha. | Üle-testimine: Oht testida triviaalseid asju. |
| Dokumentatsioon: Testid on nagu elav juhend. | Hooldus: Kui nõuded muutuvad, tuleb muuta ka teste. |
| Loe lisaks TDD kohta Wikipediast → | |
Info pärineb tuntud tarkvaraarenduse praktikatest ja järgmistest allikatest:
365 päeva TDD-d