TDD Nedir?

İngilizce: TDD (Test-Driven Development)

TDD, önce başarısız testi yazıp ardından testi geçirecek en küçük kodu ekleyerek tasarımı adım adım şekillendirme pratiğidir.

TDD Nedir?

TDD (Test-Driven Development), kodu testlerden sonra doğrulamak yerine testlerle birlikte tasarlama yaklaşımıdır. Geliştirici önce beklenen davranışı gösteren küçük bir test yazar, testin başarısız olduğunu görür ve yalnızca bu testi geçirecek kadar kod ekler.

Red, Green, Refactor Döngüsü

TDD’nin pratik döngüsü üç adımdan oluşur:

  1. Red: Henüz yazılmamış davranış için başarısız bir test eklenir.
  2. Green: Testi geçirecek en sade uygulama yazılır.
  3. Refactor: Davranış korunurken kodun isimleri, sınırları ve tekrarları iyileştirilir.

Bu döngü, özellikle iş kuralları net olan servislerde ve hesaplama mantığında tasarım geri bildirimi sağlar. Test yazmak zorlaştığında çoğu zaman fonksiyonun fazla sorumluluk aldığı veya bağımlılıkların iyi ayrılmadığı anlaşılır.

Nerede Kullanılır?

TDD en sık unit test seviyesinde uygulanır; fakat entegrasyon testleriyle de desteklenebilir. BDD ise aynı test disiplinini daha çok kullanıcı davranışı ve kabul kriterleri diliyle ele alır.

Finans hesaplamaları, fiyat kuralları, stok rezervasyonu veya API validasyonu gibi hata maliyeti yüksek alanlarda TDD değişikliklerin yan etkisini erken gösterir. Arayüz prototipleri veya sık değişen keşif işleri için ise daha esnek test stratejisi tercih edilebilir.