Page 181 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 181

Yazılım Testleri ve Test Odaklı Geliştirme Yaklaşımının Kullanımı  | 181



           Waterfall modeli yönetim sürecinde ilk önce program için gerekli tasarım oluşturulur. Sonra bu
           tasarım uygulanır. Son aşama olarak sistem hatalarını bulabilmek için testler yapılır. TDD bu süreci

           tam tersine çevirmektedir. Şekil 5’te TDD aşamalarına yer verilmiştir.


                   Test Ekle                              Kodla                      Yeniden Yapılandır






                                                     Şekil 5. TDD Aşamaları


           TDD’nin temelinde yatan ise kodu yazmaya başlamadan önce ona ait bir test yazmak ve daha
           sonra bu testi karşılayacak kadar yeterli kodu yazmaktır. Bu yöntemdeki ilk adım kodun başarısız
           olmasına  yetecek  kadar  kısa  bir  test  yazmaktır.  Daha  sonra  bu  testleri  koşturarak  başarısız
           olduğundan emin olduktan sonra, ikinci adım kodu güncelleyerek bu testin geçmesini sağlamaktır.
           Testleri tekrar koştuktan sonra eğer kodumuz halen başarısız ise kodu güncelleyip yeniden test
           etmek gerekir. Kod gözden geçirilir dizayn ve gereksinimlere uymayan kısımları düzeltilir.





           1. Uygulama Yöntemi

           TDD geleneksel yazılım tarzını tamamen tersine çevirir ve yazılıma testler ile başlanır. Kent Beck’in
           tanımladığı gibi herhangi bir satır program kodu oluşturmadan önce bir test sınıfı oluşturularak

           yazılım işlemine başlanmaktadır. Bu süreci daha iyi anlayabilmek için kırmızı döngü (red cycle),
           yeşil döngü (green cycle) ve yeniden yapılandırma (refactoring) kavramları anlaşılmalıdır.

           Kırmızı  döngü  (red  cycle)  yani  hatalı  sonuç  döndüren  test  kavramı;  bu  aşamada  yazılım
           geliştirici kendisine verilmiş gereksinimlerden sıradaki gereksinime ait birim testi yazar. Yazılan
           test, daha öncesinden yazılmış olan tüm birim testler ile çalıştırılır. En son yazılan birim teste ait
           uygulama (implementasyon) henüz gerçekleşmediği için ilgili test başarısız sonuçlanır.


           Yeşil  döngü  (green  cycle)  yani  başarılı  sonuç  döndüren  test  kavramı;  yazılım  geliştirici
           gereksinimi karşılayacak yazılımın uygulamasını en az kodla yapar. Yazılan kodun sadece şimdiye
           kadar  birim  testi  yazılmış  gereksinimleri  karşılaması  beklenir.  Gelecekte  yazılımı  yapılacak
           durumların  kodlaması  önceden  yazılmaz  ve  düşünülmez.  Uygulaması  tamamlandıktan  sonra
           yazılımın  gereksinimi  karşılayıp  karşılamadığını  kontrol  etmek  için  tüm  birim  testler  çalıştırılır.
           Beklenen durum tüm birim testlerin başarıyla geçmesidir. Bu testler başarıyla çalıştığı takdirde
           yazılım  geliştirici  bir  sonraki  aşamaya  geçebilir.  Aksi  takdirde  gereksinim  ile  yazılım  arasında
           uyumsuzluk olduğunu gösterir.


           Yeniden yapılandırma (refactor) yani tasarımı iyileştir kavramı; yazılım geliştirici bu aşamada
           testlerinde değişiklik yapmadan kodunu yeniden gözden geçirerek tasarımını iyileştirmeye çalışır.
           Bu kapsamda yazılım geliştirici kullandığı metod, değişken ve sınıf isimlerini düzenleyebilir. Var
           olan kod tekrarlarını giderir ve kodunu daha test edilebilir hala getirir. Böylece kodun bağımlılığını
           azaltırken amaca yönelik metod ve sınıfların ortaya çıkmasını sağlar. Bu aşamada dikkat edilmesi
   176   177   178   179   180   181   182   183   184   185   186