Junior
Beyaz kutu testinin özü nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Beyaz kutu testi (White-box testing), yazılımın iç yapısını, tasarımını ve kodun mantığını kontrol eden bir yazılım testi yöntemidir. Test eden kişi kaynak koda erişebilir ve buna dayanarak test vakaları tasarlar.
Temel ilkeler:
- Koda kapsama: Test vakaları, kodun çeşitli öğelerinin (operatörler, dallar, yollar) maksimum kapsamasını sağlamak için geliştirilir.
- İç yapının bilgisi: Programın iç işleyişini anlamayı gerektirir.
- Tespit: mantık hataları, yanlış yürütme yolları, döngüler ve koşullu operatörlerle ilgili sorunlar.
- Otomasyon: Sık sık birim testleri, entegrasyon testleri ve kod seviyesinde güvenlik testlerinde kullanılır.
Kapsama türleri:
- İfade kapsaması (Statement Coverage): Programdaki her ifadeyi en az bir kez çalıştırmak.
- Dallanma kapsaması (Branch Coverage): Her koşulu (if, else, switch) hem true hem de false olarak çalıştırmak.
- Yol kapsaması (Path Coverage): Programdaki tüm olası yolları çalıştırmak. (En kapsamlı, ancak genellikle pratik değildir).
Python'da dallanma kapsaması örneği:
# Örnek fonksiyon
def calculate_discount(price, is_member):
if price > 100 and is_member: # Dal 1 (doğru)
indirim = price * 0.1 # Dal 2 (Dal 1 'doğru' ise çalışır)
else: # Dal 3 (yanlış)
indirim = 0 # Dal 4 (Dal 1 'yanlış' ise çalışır)
return price - indirim
# Dal kapsaması için test vakaları:
# 1. price > 100 ve is_member == True (Dal 1 doğru, Dal 2)
# 2. price <= 100 veya is_member == False (Dal 1 yanlış, Dal 3, Dal 4)
Avantajlar:
- Erken geliştirme aşamalarında hataları tespit etme.
- Kodun önemli bölümlerinin test edildiğini garanti eder.
- Kodun nasıl çalıştığını anlamaya ve tasarımı geliştirmeye yardımcı olur.
Dezavantajlar:
- Koda derinlemesine bilgi gerektirir.
- Büyük ve karmaşık sistemler için zaman alıcı olabilir.
- Programın son kullanıcı açısından çalışmasını test etmez (bu, kara kutu testlerinin görevidir).
Özünde, programın "nasıl" çalıştığını kontrol etmektir, sadece "ne" yaptığını değil.