# Beyaz Kutu Testi

Adres: https://softwaredictionary.org/tr/terimler/white-box-testing
Kategori: Test ve Kalite
Son güncelleme: 2026-10-03
İngilizcesi: White-Box Testing
Okunuşu: vayt boks testing

Kısaca: Beyaz kutu testi, testleri kodun iç yapısına dair bilgiyle tasarlar; böylece kodun ifadeleri, dalları ve yolları doğrudan çalıştırılıp kontrol edilir.

## Beyaz kutu testi (white-box testing) nedir?

Kara kutu testi yazılımın şartnamenin söylediğini yapıp yapmadığını sorarken beyaz kutu testi kodun her parçasının çalıştırılıp çalıştırılmadığını ve doğru davranıp davranmadığını sorar. Test eden kişi gerçekleştirimi okur ve bir `if`'in her dalına giren, döngülerden sıfır, bir ve birçok kez geçen ve her hata yönetimi yolunu tetikleyen testler yazar.

Kapsama (coverage) ölçüleri işe yön verir. İfade kapsamı hangi satırların çalıştığını, dal kapsamı her koşulun hem doğru hem yanlış olup olmadığını, yol kapsamı da dal kombinasyonlarından geçilip geçilmediğini gösterir. Istanbul, coverage.py ve JaCoCo gibi araçlar bu sayıları raporlar; mutasyon testi de koddaki küçük, kasıtlı değişiklikleri testlerin fark edip etmediğini kontrol ederek bir adım daha ileri gider.

Beyaz kutu testlerinin çoğunu, kodu en iyi bildikleri için geliştiriciler birim ve entegrasyon testleriyle yapar. Özellikle karmaşık mantık, güvenlik kontrolleri ve bir zaman aşımından sonra yeniden deneme gibi nadiren girilen bir dalın production'da sessizce başarısız olabileceği kodlar için değerlidir.

Sık yapılan bir yanlış, tam kapsamanın kodun doğru olduğu anlamına geldiğini düşünmektir. Kapsama yalnızca satırların çalıştırıldığını kanıtlar, doğru sonuçların doğrulandığını değil; bir gereksinim hiç uygulanmadığı için tamamen eksik olan davranışı da ortaya çıkaramaz. Beyaz kutu testleri ayrıca gerçekleştirime bağlı olma eğilimindedir; bu yüzden kod yeniden düzenlendiğinde daha sık güncellenmeleri gerekir.

## Önemli noktalar

- Beyaz kutu testi, testleri tasarlamak için kod bilgisini kullanır.
- Amaç ifadeleri, dalları ve yolları çalıştırmaktır.
- Kapsama araçları ve mutasyon testi ne kadar kapsamlı olduğunu ölçer.
- Çoğunu geliştiriciler birim ve entegrasyon testlerinde yapar.
- Yüksek kapsama doğruluğu kanıtlamaz ve eksik özellikleri yakalamaz.

## Örnek: Her dalı kapsayan testler

```javascript
function shippingCost(total, country) {
  if (total >= 100) return 0;               // branch 1: free shipping
  if (country === "TR") return 5;           // branch 2: domestic
  return 15;                                // branch 3: international
}

test("free above the threshold", () => expect(shippingCost(100, "DE")).toBe(0));
test("domestic rate", () => expect(shippingCost(99, "TR")).toBe(5));
test("international rate", () => expect(shippingCost(99, "DE")).toBe(15));

// npx jest --coverage  → 100% branch coverage for shippingCost
```

## Sık sorulan sorular

**Beyaz kutu testini kim yapar?**

Çoğunlukla geliştiriciler, çünkü kodu okuyup anlamayı gerektirir. Güvenlik test uzmanları da açıklar için kod incelerken onu kullanır.

**Dal kapsamı (branch coverage) nedir?**

Her if ifadesinin hem doğru hem yanlış tarafı gibi karar sonuçlarından testlerin çalıştırdığı yüzdedir. Düz satır kapsamından daha katı ve daha faydalıdır.

**Gri kutu testi nedir?**

İki yaklaşımın karışımıdır: testler kara kutu testleri gibi dışarıdan tasarlanır, ama olası sorunları hedeflemek için veritabanı şeması ya da mimari gibi iç yapı hakkında kısmi bir bilgiyle.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
