TDD - Test Driven Development
- Sevdanur GENC

- Feb 6, 2013
- 2 min read
Merhabalar, Test Driven Development - Test Gudumlu Yazilim'la ilgili merakim her zaman olmustur. Bu merakim sonucu yapmis oldugum arastirmalarla ilgili kucuk ama onemli ayrintilari artik vakit buldukca sizlerlede paylasmayi dusunuyorum. Calismalarimda gunumuzde kullanilan her onemli iki dilde de yapiyor olacagim; Java ve C Sharp. Bunlara ait olan Test Unit'lerinde nasil kullanildigini adim adim anlattiktan sonra da anlasilir orneklerlede olayi ozetliyor olacagim.
Oncelikle arastirmalarim esnasinda her yerde TDD hakkinda; kullanmaya basladiginiz muddetce normal programlama ile ilerleyemediginizi ve tamamen testlerin yazilimci uzerinde bir bagimlilik yarattigini gostermektedir ve eski kod gelistirme tekniklerinize bagimliligi kazandiktan sonra tekrar geri donemiyormussunuz. Umarim bu bagimlilik hepiniz icin faydali bir bagimlilik olacaktir. Zira, calismalarim esnasinda TDD kullanirken oldukca buyuk zevk aldigimi dile getirmek isterim.
TDD Nedir?
TDD, gunumuzde Test First Development, Test Driven Design ve Test Driven Development seklinde farkli isimlerle kullanilmaktadir. Ilk olarak Kent Beck tarafindan XP - Extreme Programming ile ortaya atilmis bir olmasi ile birlikte gunumuzde Cevik-Modern yazilim olarak bilinen Agile yazilim gelistirme sureclerininde goz bebegi olmustur. Test denildiginde aslinda ilk aklimiza gelen developer'larin olusturmus oldugu yazilimi sonrasinda Tester'larin kontrol etmesi dir. Fakat isler bu sekilde yurumemektedir. Yazilim gelistirilme asamasindayken TDD'yi kullaniyor olmamizdir. Bu da dusundugumuzun tam tersidir. Pekala toparlayacak olursak, yazilim gelistirme esnasinda esas kodlarimizi yazmadan once test kodlarimizi olusturuyoruz ve ardindan bu test kodlarinda kullanmamiz gereken gerekli olan gercek kodlari saglikli bir sekilde yazmis oluyoruz. Burada sikca karsilasacaginiz yapi; OOP - Object Oriented Programming mantigi olacaktir.
TDD Icin Izlenecek Yol Nedir?
Gercek kodlarinizi yazmadan once test kodlarinizi yaziniz. Testinizi Unit Test ortamindan calistiriniz. Testiniz saglik bir sonuc veriyorsa olumlu anlamina gelen Green Bar'lar goruyor olacaksiniz. Herhangi bir olumsuzluk varsa bunu hata kodlari ile birlikte Red Bar'larla karsilasmis olacaksiniz ve boylelikle test kodunuzu tekrar duzeltebilme imkaniniz olacaktir. Refactoring islemlerinizi ve tum testleri gectikten sonra artik gerekli olan gercek kodlarinizi yazabilirsiniz.
Unit Test'ler Nedir?
Bahsetmis oldugum tum bu test islemlerini, yazilimlarimiz uzerinde her bir olay icin olusturmus oldugumuz kucuk parcalar halinde test etmemize yarayan kisimlardir. Zamanla yazmis oldugunuz bir method icin bir yada daha fazla test methodlarini yazmaya simdiden hazirlikli olmalisiniz. Malesef sikayet edilen bir konuda bu, yazilan test kodlari gelistirmis oldugumuz yazilimin kodlarindan daha fazla yada birebir yer tutmasidir. Tum bu parcalar halinde toplanan test kodlarimizin bir araya getirilerek kullanilan bir cok Framework gelistirilmistir. Neredeyse tum diller icin bir unit test framework'u bulunmaktadir. Java icin JUnit, CSharp icin NUnit gibi framework'ler bulunmaktadir. Calismalarimda da java ve csharp uzerinde ilerleyecegim icin JUnit ve NUnit'i kullaniyor olacagim. Test uygulamali makalelerimde gorusmek uzere, Keyifli Calismalar Dilerim..
Comments