Beyaz Kutu Test Tekniği Nedir ?
Merhaba arkadaşlar, bu yazımda sizlere beyaz kutu test tekniğini anlatmaya çalışacağım. Beyaz kutu test tekniğinde, kara kutu test tekniklerinin aksine test senaryoları sistemin iç işleyişini bilerek tasarlanır. Bu nedenle beyaz kutu test tekniğine genellikle yazılım geliştiriciler başvurur. Yazılım geliştiricileri beyaz kutu test tekniklerinden olan birim testleri geliştirdikleri her bir birim için yazarlar.
Beyaz Kutu Test Tekniğinin Avantajları
Beyaz kutu test teknikleri aşağıdaki avantajları sağlamaktadır.
- Kod içindeki gereksiz satırlar temizlenerek okunuşu kolay temiz kod yazılır.
- Kod içerisindeki mantık hataları kolayca tespit edilir.
- Kod optimizasyonu yapılarak güvenilir, performansı yüksek, bakımı kolay kod yazılır.
- Kaynak kodun analiz edilmesi sonucunda olası hatalar geliştirme aşamasında giderilir.
- Yazılan kodun kod yazma kurallarına uyup uymadığı kontrol edilir.
- Geliştirme aşamasında geliştirilen her bir birim için birim testler yazılarak hatalar giderildiğinde test aşamasında maliyet azalır.
Beyaz Kutu Test Tekniğinin Dezavantajları
Beyaz kutu test teknikleri aşağıdaki dezavantajlara sahiptir.
- Beyaz kutu test teknikleri her ne kadar kodun iç yapısını gösteriyor olsa da kod içerisinde hala hatalar çıkabilir.
- İş akışında meydana gelen hataları tespit etmekte yetersiz kalır.
- Birim test yazmak karmaşık ve maliyetli bir iştir.
Beyaz kutu test yaklaşımı kullanılarak gerçekleştirilen bazı test tiplerine aşağıda yer verilmiştir.
Birim Test (Unit Testing)
Birim test, genellikle bir uygulama üzerinde yapılan ilk test çeşididir. Uygulamada metot ve fonksiyon gibi en küçük birimlere birim testler yapılır. Birim testler yazılım geliştiriciler tarafından uygulanır. Birim testler sonucunda tespit edilen hatalar anında giderilerek kod havuzuna görece kaliteli kod parçacıkları gönderilir.
Aşağıda en popüler birim test araçlarının bir listesi bulunmaktadır.
- JUnit
- NUnit
- XUnit
- TestNG
- PyUnit
İfade Kapsama (Statement Coverage)
İfade kapsama sağlayabilmek için, programda bulunan çalışabilir her satır kodun testler sırasında en azından bir kez çalıştırılmış olması gerekmektedir. Böylece her bir ifadenin uygulamanın çalışmasına olumsuz bir etki yapıp yapmadığı kontrol edilebilir. İfade kapsamayı hesaplamak için aşağıdaki formül kullanır.
İfade Kapsama = (Yürütülen ifade sayısı / Toplam ifade sayısı) * 100
İfade kapsamayı daha iyi anlamak için bir örnek bir kod parçacığı ile açıklamak istiyorum. İki sayısı büyüklüğüne göre kontrol eden ve sonucu ekrana yazan bir kod parçacığı bulunmaktadır. Bu kod parçacığında gördüğünüz üzere toplam 6 ifade kapsama (SC) vardır.
Örneğimizde x sayısı y sayısından büyük olduğu için if bloğuna girecektir. Bu durumda 4 ifade kapsama sağlanmıştır.
Formülde yerine yazacak olursak; (4 / 6) * 100 = %66 ifade kapsama sağlandığını görebiliriz.

Karar / Dal Kapsama (Decision / Branch Coverage)
Karar Kapsama, bir kontrol yapısının sonucunun hem “Doğru” hem de “Yanlış” olduğu durumları analiz eder. Testlerde karar kapsamanın %100 olması için her iki kararın da ayrı ayrı ele alınması gerekmektedir. Karar kapsamayı hesaplayabilmek için aşağıdaki formülden yararlanılır.
Karar Kapsama = (Yürütülen karar sonuçlarının sayısı / Toplam kod karar sayısı) * 100
Karar kapsamayı bir örnek kod parçacığı üzerinden anlatmaya çalışayım. Örneğimiz 7 ifade ve 2 dal içermektedir. Aşağıdaki kod parçacığı çalıştırıldığında z değişkenin değeri 33 olacağından if bloğuna girecektir.
Karar Kapsama = (1 / 2) * 100 = %50 olarak hesaplanmaktadır.

Z değişkenine 10’dan küçük bir değer atandığı durumda else bloğuna girecek ve yine karar kapsama %50 olarak hesaplanacaktır. İki dalın test edilmesiyle beraber karar kapsama %100 olacaktır. Yani koddaki tüm çalıştırılabilir ifadeler en az 1 kez test edilmiş olacaktır.
%100 karar kapsama (DC) sağlandığında %100 ifade kapsama (SC) sağlanmış demektir. Ancak tam tersi bir durum söz konusu değildir.
Faydalı olması dileğiyle…