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

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





           3. Yazılımda Test Yaklaşımları


           Test  yaklaşımları;  yazılımın  kalitesini  artırmak,  yazılımın  gereksinimlere  uygunluğunu  ve
           kodun  güvenilirliğini  sağlamak  amacıyla  uygulanır.  Hangi  yaklaşımın  uygulandığı,  projenin
           gereksinimlerine, ekibin tercihlerine ve projenin karmaşıklığına bağlı olarak değişir.

           Test  odaklı  geliştirme,  davranış  odaklı  geliştirme  ve  kabul  testi  odaklı  geliştirme  üç  önemli
           yaklaşımdır.





           3.1. Test Odaklı Geliştirme (Test Driven Development - TDD)


           TDD,  kodun  ne  yapacağını  belirlemek  ve  doğrulamak  için  test  senaryolarının  geliştirildiği  bir
           yazılım geliştirme yaklaşımıdır. Test odaklı geliştirme; kodlama, test ve tasarımın birlikte çalıştığı
           bir programlama tarzını ifade eder.

           Test  odaklı  yazılım  geliştirme  süreci,  kod  yazılmadan  önce  birim  testlerin  yazılmasını  içerir.
           Yazılım geliştirici için bu süreç, bir problemi çözmek için belirli bir algoritma yazılmadan önce
           kodun analizinin yapılmış olması ve davranışını bilmesi gerektiği anlamına gelir. Bu süreç ile test

           yazılırken, test bir işlevin çıktısı olan bazı koşullardan geçecektir. Ayrıca test, söz konusu kodun
           tüm satırlarını kapsayacak şekilde yazılmalıdır. Bu da kod kapsamının yazılan tüm kod satırlarının
           yüksek bir yüzdesi olduğundan emin olunması gerektiği anlamına gelir.





           3.2. Davranış Odaklı Geliştirme (Behavior Driven Development - BDD)


           Davranış odaklı geliştirme ilk olarak 2006 yılında Dan North tarafından ortaya atılmıştır. BDD, TDD
           gibi prensip olarak öncelikle test kodları yazılsın daha sonrasında proje kodu yazılsın anlayışını
           benimsemektedir. Yazılım süreçlerinin daha test odaklı gitmesini sağlayan bir yaklaşımdır. Ancak
           testler,  esas  olarak  sistem  davranışına  dayanmaktadır.  BDD,  TDD’nin  karmaşıklığını  gidermek
           amacıyla çıkmıştır.


           İkisi arasındaki en büyük fark;

            •  TDD,  diğer  sınıflara  (class)  bağımlılığı  az  olan,  sınıfların  sorumluluklarını  ayırarak  tekrar
                etmeyen bir kod yazılmasını sağlar.

            •  BDD  ise,  bir  sistemin  davranışını,  bu  davranışın  nasıl  geliştirildiğine  dair  ayrıntılara  yer
                vermeden tanımlanmasına izin verir.

           TDD bazı koşulları ileri sürerken, BDD sistemin davranışını açıklamak için gerçek gereksinimlerin
           gerçek zamanlı örnekleri kullanılarak düz metin olarak yazılır. Bu sayede yazılan bu metinler ile
           uygulamanın güncel bir dokümanının oluşması da sağlanmış olur.
   173   174   175   176   177   178   179   180   181   182   183