Merhaba,
http://downloads.seapine.com/pub/papers/testdrivendevelopment.pdf
adresinde Seapine software in yaptigi kucuk TDD calismasi ile ilgili
bir yazi var.
Klasik yontem uygulanarak yazilan kodda 30 a yakin hata cikarken, TDD
ile gelistirilen kod sadece tek bir hataya neden oluyor. Benimde
gecmis projelerden deneyimlerin ayni dogrultuda. TDD uygulanan
projeler sasirtacak duzeyde az hataya neden oluyor.
Sunu da belirtmek gerekli. Test Driven Development da amac test yazmak
degil. Testler bu pratigin uygulanmasinin sonucunda elde edilen
sonuc. Kullanilan araclar test amaciyla yazilan araclar oldugundan TDD
pratigi de bir test pratigi gibi algilaniyor.
Kisaca TDD de sisteme yeni bir davranis , yeni bir ozellik eklemeden
once bu yeni davranisin yerine getirildigini dogrulama amacli bir kod
yaziyoruz. Bu kodu calistirip sistemin henuz bu davranisi,
sorumlulugu yerine getirmedigini dogruluyoruz. Sonraki asamada bu
kodun basarili olmasi icin gereken gercek production kodunu yaziyoruz
ve onceki adimda yazdigimiz test kodunu tekrar calistirip artik
sistemin bu yeni sorumlulugu yerine getirdigini goruyoruz. Hep kucuk
adimlarla birer test seklinde isliyor bu pratik. Test gectikten ve
yeni sorumluluk eklendikten sonraki adim Refactoring islemi. Sistemin
disardan gozlenen davranisinin degismedigi garantisini testler
verirken , kod iyilestirmeleri ile kodu daha sade, anlasilabilir,
amacini ifade eder hale getiriyoruz.
Bu pratik sonucu elinizde her turlu davranisi test eden kapsamli
testleriniz olusuyor. Eger Story Test Driven Development kapsaminda
TDD ye kabul senaryolarindan baslarsaniz elinizde kabul testlerinden
birim testlerine ve koda kadar uzanan bir traceability elde
ediyorsunuz. Bu testleri surekli entegrasyona dahil edip regression
suitiniz kapsaminda her kod degisikliginde calistirabiliyorsunuz.
Projenin cok ilerki asamalarinda dahi kodlarda iyilestirmeleri
cesaretle yapmak mumkun olabiliyor. Testler once dusunuldugu icin
kodlar test edilebilir, birbirinden bagimsiz, sorumluluklari ayri
bicimde yaziliyor ve Object Oriented Tasarim prensiplerine uygun
tasarimlar cikiyor.
Sure acisindan bakarsak yazida dendigi gibi bu surec klasik kod yazim
yontemine gore yuzde 15-20 daha fazla zaman aliyor fakat projenin
ilerki asamalarinda bu maliyet fazlasiyla amorti ediyor.
Iyi calismalar
Cenk Civici
Thoughtworks London
Senior Consultant