Page 185 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 185
Yazılım geliştirme sürecinde yazılım test yaklaşımı olarak TDD kullanıldığında,
• Doğru uygulandığı takdirde son satırına kadar test edilmiş bir yazılım
sisteminin oluşmasını sağlar.
• Iyi ve zaman içinde gerekli değişikliklere ayak uyduracak bir tasarım
oluşturmak kolaylaşır.
• Yazılım geliştirici geliştirme sırasında, sistemin nasıl çalışması gerektiğini
hayal ettiği için sadece gerekli sınıf ve metodları oluşturur.
• Yazılım geliştiricinin “belki ilerde kullanılır, bu metodu eklemekte fayda
var” tarzı düşünmesini engeller. Böylece TDD proje maliyetini düşürür,
çünkü sadece gerekli sınıf ve metodlar için zaman harcanır.
• Testler oluşturulurken, oluşturulan sınıfların kullanımı ve performansı
hakkında da düşünülür. Bu sayede de yazılım tasarımında iyileştirme
yapılır.
• Test kapsama alanı geniş olur, neredeyse her kod satırı test metodları
tarafından çalıştırılır.
• Testler koda olan güveni artırır ve kodun yeniden yapılandırılmasıyla
oluşabilecek hatalar testler tarafından yakalanabilir.
• Yazılım geliştirici daha test edilebilir kod yazmaya çalışır. Bir kodun test
edilebilirliği ne kadar fazla ise kodun içerisindeki sınıfların birbirleriyle
olan bağlılığı o kadar azalır. Böylece yazılım geliştirici, nesne yönelimli
programlama hedeflerinden biri olan yüksek kohezyon (high cohesion)
ve gevşek bağımlılık (loose coupling) durumunu sağlamış olur.
Görüldüğü üzere yazılım geliştirme sürecinde yazılım test yaklaşımı olarak
TDD’nin kullanılmasının bir çok avantajı vardır. Her yazılım projesinin
gereksinimleri farklıdır ve TDD’nin uygulanabilirliği projenin özelliklerine
ve ihtiyaçlarına bağlı olarak değişebilir. Pojenin büyüklüğü, geliştiren
ekibin yetkinliği, proje yönetim metodu gibi konular düşünülerek TDD’nin
kullanılıp kullanılmayacağına karar verilebilir. Projeyi geliştiren ekip TDD’yi
benimsemeye istekliyse ve bu yaklaşımı kullanmaya motive ise projenin
TDD ile yürütülmesi daha kolay olacaktır.