TDD Nedir?
Test Güdümlü Geliştirme (TDD), yazılım geliştirme sürecinde kodun üretilmesinden önce test senaryolarının yazıldığı bir metodolojidir. Kent Beck tarafından 1990'larda Aşırı Programlama (Extreme Programming/XP) çerçevesinde formalize edilen bu yaklaşım, modern yazılım mühendisliğinin temel pratiklerinden biri olarak kabul görür.
Kırmızı-Yeşil-Refactor Döngüsü
TDD üç aşamalı bir döngüyle işler: Kırmızı (Red) aşamasında önce başarısız olacak bir test yazılır — bu test, uygulanmak istenen işlevselliği tanımlar. Yeşil (Green) aşamasında testi geçmek için minimum düzeyde kod üretilir. Yeniden Yapılandır (Refactor) aşamasında çalışır hâle gelen kod temizlenir ve optimize edilir; tüm testlerin hâlâ geçtiği doğrulanır.
Yapay Zeka ve ML Projelerinde TDD
ML projelerinde TDD farklı katmanlarda uygulanır: veri boru hattı testleri (Great Expectations ile şema doğrulama), özellik mühendisliği birim testleri (veri kaymasına karşı koruma), model davranış testleri (bilinen örnekler için beklenen çıktıların önceden tanımlanması) ve performans eşik testleri (Accuracy/F1/AUC için minimum kabul kriterleri).
Araçlar ve Ekosistem
Python ekosisteminde TDD için yaygın araçlar şunlardır: pytest (genel amaçlı birim ve entegrasyon testleri), Great Expectations (veri kalitesi ve şema doğrulama), Hypothesis (property-based testing ile edge case üretimi), Deepchecks (ML modeli ve veri bütünlüğü testleri). MLflow ile entegre pytest, deney takibini test sonuçlarıyla ilişkilendirir.