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

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


            •  TDD’yi uygulamak için teknik bilgiye sahip olmamız gerekir. BDD ve ATDD ise herhangi bir

                teknik bilgi gerektirmez. BDD ve ATDD’nin faydası, bu özelliği geliştirmeye hem teknik hem
                de teknik olmayan kişilerin katılabilmesidir.

            •  TDD geliştiğinden, iyi tasarım için alan sağlar ve gereksinim karşılama yönüne odaklanır.
                BDD ve ATDD ise kullanıma uygun olan farklı bir yönüne odaklanır.

            Bundan sonraki bölümde TDD detaylı olarak açıklanmış ve uygulama yöntemine yer verilmiştir.


           Test Driven Development Yaklaşımı





           TDD, Kent Beck tarafından XP’nin bir parçası olarak bulunmuş olan bir programlama tekniğidir.
           Tarih açısından bakıldığında 1994’te Kent Beck, Smalltalk için SUnit test çerçevesini (framework)
           yazmıştır. 1998 yılında XP’de “testlerin çoğunu ilk sırada yazmalıyız” diye ifade ettiği Önce Test
           (Test First) kavramını ortaya atmıştır. 2002 Kasım’ında piyasaya çıkan “Test Driven Development:
           By Example” isimli kitabında Önce Test (Test First) kavramını Test Driven Development olarak
           daha da detaylı bir teknik olarak ele almıştır.


           Kent Beck “Test Driven Development: By Example” isimli kitabında test odaklı geliştirmeyi şu
           şekilde tanımlamaktadır:

           “Test  odaklı  geliştirme,  herhangi  bir  yazılım  mühendisinin  takip  edebileceği,  basit  tasarımı  ve
           güven veren test paketlerini teşvik eden bir dizi tekniktir. ”

           Kent Beck aynı kitapta TDD için şu iki kuralı tanımlamaktadır:

           1.  Herhangi bir kod yazmadan önce çalışmayan bir test yazın.

           2.  Tekrarlanmış kodu kaldırın.


           Michael Feathers “Working Effectively with Legacy Code” adlı 2005 yılında yayınlanan kitabında,
           testin gerekliliğinden şöyle bahsetmiştir:

           “Testi olmayan kod, kötü koddur. Ne kadar iyi yazılmış olduğu önemli değil; ne kadar güzel veya
           nesne  yönelimli  veya  iyi  kapsülleme  yapılmış  olduğu  da  önemli  değil.  Testlerle,  kodumuzun
           davranışını hızlı ve doğrulanabilir bir şekilde değiştirebiliriz. Onlar olmadan, gerçekten kodumuzun
           daha iyi mi yoksa daha kötü mü hale geldiğini bilmiyoruz.”


           TDD  geliştirme  süreci,  çevik  (agile)  süreçler  ile  geliştirme  sürecine  dahil  olmuştur.  Daha  önce
           şelale (waterfall) modeli yönetim sürecindeki aşamalar Şekil 4’te sunulmuştur.




              Tasarım Oluştur                            Kodla                              Test Et




                                             Şekil 4. Şelale (Waterfall) Modeli Aşamaları
   175   176   177   178   179   180   181   182   183   184   185