top of page
Pena Akademi Logo
Bize Danışın

Beyaz Kutu (White Box) Testi Nedir? Teknikler ve Örnekler

  • 8 Oca 2019
  • 6 dakikada okunur

Güncelleme tarihi: 22 Tem

Beyaz kutu testi, yazılımın iç yapısı, kaynak kodu ve kontrol akışı bilinerek tasarlanan test yaklaşımıdır. Test senaryoları yalnızca kullanıcının gördüğü çıktıyı değil, kod içindeki ifadelerin ve karar dallarının çalışıp çalışmadığını da inceler. Bu nedenle beyaz kutu testi; birim testlerinde, entegrasyon kontrollerinde, kod kapsama analizlerinde ve kaynak kodu inceleyebilen güvenlik çalışmalarında kullanılır.

Bu rehberde beyaz kutu testinin ne olduğunu, hangi tekniklerin kullanıldığını, kapsama oranlarının nasıl hesaplandığını ve basit bir örnek üzerinden test senaryolarının nasıl çıkarıldığını inceleyeceğiz.

Bu yazıda neler bulacaksınız?

Beyaz kutu testinde kaynak kodu ve dallanan kontrol akışının büyüteçle incelenmesi

Beyaz kutu testi, yazılımın iç yapısını ve kontrol akışını görünür hale getirir.

Beyaz kutu testi nedir?

Beyaz kutu testi (white box testing), test koşullarının yazılımın uygulama yapısından türetildiği bir test tekniğidir. Testi tasarlayan kişi kodu, kontrol akışını, veri akışını veya sistemin teknik mimarisini bilir. Amaç, uygulamanın içindeki mantıksal yolları görünür hale getirmek ve seçilen testlerin bu yolları ne ölçüde çalıştırdığını değerlendirmektir.

Bu yaklaşım; açık kutu testi, cam kutu testi, şeffaf kutu testi veya yapısal test adlarıyla da anılabilir. Bu adların ortak noktası, testin sistemin yalnızca dış davranışına bakmamasıdır.

ISTQB CTFL v4.0.1 müfredatı, temel seviyede iki ana beyaz kutu tekniğine odaklanır: ifade testi ve dal testi. Bu teknikler test kapsamını ölçülebilir hale getirir. Ancak kapsama oranı tek başına yazılımın hatasız olduğunu göstermez.

Beyaz kutu testi neyi amaçlar?

Beyaz kutu testleri aşağıdaki amaçlarla kullanılabilir:

  • Kod içindeki ifadelerin ve karar sonuçlarının test edilip edilmediğini ölçmek

  • Yanlış koşulları, hatalı döngüleri ve beklenmeyen kontrol akışlarını bulmak

  • Hiç çalıştırılmayan veya yeterince test edilmeyen kod bölümlerini görünür hale getirmek

  • Birim ve entegrasyon testlerinin kapsamı hakkında nesnel veri üretmek

  • Belirsiz veya eksik teknik dokümana rağmen uygulama mantığını doğrudan kod üzerinden incelemek

  • Kaynak kodu analizi ve güvenli kod incelemelerinde riskli alanlara odaklanmak

Beyaz kutu testi yalnız başına yeterli değildir. Kodda hiç uygulanmamış bir gereksinim, yalnızca mevcut kodun yollarını inceleyen testlerle fark edilmeyebilir. Bu nedenle beyaz kutu teknikleri; kara kutu testi, gereksinim tabanlı testler ve deneyime dayalı tekniklerle birlikte kullanılmalıdır.

Temel beyaz kutu test teknikleri

1. İfade testi ve ifade kapsama

İfade testi, kaynak koddaki çalıştırılabilir ifadelerin testler tarafından yürütülmesini hedefler. İfade kapsama oranı şu şekilde hesaplanır:

İfade kapsama = Çalıştırılan ifade sayısı / Toplam çalıştırılabilir ifade sayısı × 100

Örneğin bir fonksiyonda 20 çalıştırılabilir ifade varsa ve testler bunların 16'sını çalıştırıyorsa ifade kapsama oranı %80'dir.

%100 ifade kapsama, her çalıştırılabilir ifadenin en az bir kez yürütüldüğünü gösterir. Fakat bir kararın hem doğru hem yanlış sonucunun test edildiğini garanti etmez. Bu nedenle ifade kapsama tek başına tüm mantıksal riskleri ortaya çıkarmaz.

2. Dal testi ve dal kapsama

Dal testi, kontrol akışındaki her dalın çalıştırılmasını hedefler. Bir if koşulunun doğru ve yanlış sonuçları, switch/case seçenekleri ve bir döngüden çıkma ya da devam etme kararları farklı dallar oluşturabilir.

Dal kapsama = Çalıştırılan dal sayısı / Toplam dal sayısı × 100

ISTQB'ye göre %100 dal kapsama, %100 ifade kapsamayı da sağlar. Bunun tersi her zaman doğru değildir. Başka bir ifadeyle bütün kod satırlarını çalıştırmak, bütün karar sonuçlarını test ettiğiniz anlamına gelmez.

Dal kapsama, ifade kapsamaya göre daha güçlü bir ölçüdür; yine de tüm olası yolları veya veri birleşimlerini garanti etmez. Özellikle çok sayıda iç içe koşul bulunan kodlarda olası yol sayısı hızla büyür.

3. Kontrol akışı ve veri akışı analizi

Daha ayrıntılı beyaz kutu çalışmalarında kontrol akış grafikleri, yol analizi ve veri akışı ilişkileri incelenebilir. Veri akışı testleri; bir değişkenin nerede tanımlandığına, nerede kullanıldığına ve aradaki akışın doğru olup olmadığına odaklanır.

Bu tekniklerin hangi derinlikte kullanılacağı; ürün riskine, sistemin kritikliğine, mevzuat gereksinimlerine ve ekip kapasitesine göre belirlenmelidir.

Kaynak kodundan kontrol akışına ve test kapsamına uzanan beyaz kutu testi süreci

Kaynak kodu incelenir, karar yolları test edilir ve kapsama sonuçları ölçülür.

Beyaz kutu testi örneği

Aşağıdaki basitleştirilmiş kargo ücreti fonksiyonunu düşünelim:

fonksiyon kargoUcreti(uyelik, sepetTutari):
    eğer uyelik == "premium":
        döndür 0

    eğer sepetTutari >= 1000:
        döndür 0

    döndür 79

Bu fonksiyondaki dalları çalıştırmak için aşağıdaki testleri tasarlayabiliriz:

Test

Girdi

Beklenen sonuç

Çalıştırılan dal

1

Premium üye, sepet 300 TL

0 TL

İlk koşul doğru

2

Standart üye, sepet 1.200 TL

0 TL

İlk koşul yanlış, ikinci koşul doğru

3

Standart üye, sepet 600 TL

79 TL

İlk koşul yanlış, ikinci koşul yanlış

Bu üç test, örnekteki kararların doğru ve yanlış sonuçlarını çalıştırır. Fakat yalnızca kapsama oranına bakmak yetmez. Negatif sepet tutarı, eksik üyelik bilgisi veya para birimi dönüşümü gibi iş kuralları ayrıca değerlendirilmelidir.

Beyaz kutu testi hangi test seviyelerinde kullanılır?

Beyaz kutu teknikleri farklı test seviyelerinde uygulanabilir:

  • Birim veya bileşen testi: Fonksiyon, sınıf ve modül içindeki mantıksal yollar test edilir. En yaygın kullanım alanıdır.

  • Bileşen entegrasyon testi: Modüller arasındaki çağrılar, veri aktarımı ve hata akışları incelenir.

  • Sistem testi: Gerekli teknik erişim bulunduğunda sistem genelindeki belirli akışlar ve kapsama sonuçları değerlendirilebilir.

  • Statik test: Kod çalıştırılmadan yapılan gözden geçirme, kuru çalıştırma ve kaynak kodu analizi uygulama yapısına ilişkin bilgiden yararlanabilir.

  • Güvenlik testi: Kaynak koduna erişim verilen çalışmalarda manuel kod inceleme ve SAST araçları olası güvenlik sorunlarını erken aşamada bulmaya yardımcı olabilir.

Statik kod analizi ile dinamik beyaz kutu testi aynı işlem değildir. Statik analiz kodu çalıştırmadan inceler. Dinamik test ise hazırlanan testleri çalıştırır ve gerçek yürütme sonuçlarını gözlemler. İki yaklaşım birlikte kullanıldığında farklı hata türlerini yakalayabilir.

Beyaz kutu testini kim yapar?

Beyaz kutu testini yalnızca geliştiricilerin yaptığı veya test uzmanlarının kod bilgisine sahip olmadığı yönündeki kesin ayrımlar günümüz ekip yapılarını yansıtmaz. Testi kimin yapacağı; erişim, teknik yetkinlik ve ekip sorumluluklarına bağlıdır.

Uygulamada bu testlerde aşağıdaki roller görev alabilir:

  • Birim testlerini hazırlayan yazılım geliştiriciler

  • Kod erişimi ve programlama bilgisi olan test/QA mühendisleri

  • Test otomasyon mühendisleri ve SDET'ler

  • Teknik test analistleri

  • Kaynak kodu inceleyen uygulama güvenliği uzmanları

Önemli olan rol adı değil, testin amacına uygun bilgiye ve erişime sahip olmaktır.

Beyaz kutu testinin avantajları

  • Kodun gerçek uygulama yapısını test kapsamına dahil eder.

  • İfade ve dal kapsama gibi ölçülebilir sonuçlar üretir.

  • Mantıksal hataların geliştirme yaşam döngüsünün erken aşamalarında bulunmasını destekler.

  • Ek test ihtiyacı bulunan kod alanlarını görünür hale getirir.

  • Belirsiz veya güncelliğini yitirmiş teknik dokümana rağmen uygulama mantığının incelenmesini sağlar.

  • Birim testleri ve sürekli entegrasyon süreçleriyle otomatik çalıştırılabilir.

Beyaz kutu testinin sınırlamaları

  • Kaynak koduna veya teknik tasarıma erişim gerektirir.

  • Programlama, kontrol akışı ve test tasarımı bilgisi ister.

  • Kod değiştikçe testlerin bakım ihtiyacı artabilir.

  • Yüksek kapsama oranı, testlerin doğru doğrulamalar yaptığını garanti etmez.

  • Kodda hiç uygulanmamış gereksinimleri gözden kaçırabilir.

  • Karmaşık sistemlerde tüm olası yolları test etmek pratik olmayabilir.

Kapsama hedefleri bu nedenle tek başına başarı ölçütü olarak kullanılmamalıdır. Ekip; ürün riskini, değişen kodun kritikliğini, hata geçmişini ve iş etkisini birlikte değerlendirmelidir.

Beyaz kutu ve kara kutu testi arasındaki fark

Ölçüt

Beyaz kutu testi

Kara kutu testi

Sistem bilgisi

Kod ve iç yapı bilinir

İç yapı bilinmek zorunda değildir

Testin temeli

Kod, kontrol akışı, veri akışı, teknik tasarım

Gereksinimler, iş kuralları, kullanıcı davranışı

Ana odak

Uygulamanın nasıl çalıştığı

Uygulamanın ne yaptığı

Yaygın ölçümler

İfade ve dal kapsama

Gereksinim, özellik ve senaryo kapsamı

Tipik kullanım

Birim testi, entegrasyon, kod analizi

Sistem, kabul ve uçtan uca testler

İki yaklaşım birbirinin alternatifi değildir. Birlikte kullanıldıklarında hem uygulamanın iç mantığı hem de kullanıcıya sunduğu davranış değerlendirilebilir. Daha ayrıntılı karşılaştırma için Kara Kutu Testleri ile Beyaz Kutu Testleri Arasındaki Farklar yazısını inceleyebilirsiniz.

Modern geliştirme akışında nasıl uygulanır?

Beyaz kutu testleri çoğunlukla sürekli entegrasyon sürecinin parçası olarak otomatik çalıştırılır. Sağlıklı bir uygulama akışı şu adımları içerebilir:

  1. Değişen kod için riskli karar noktalarını belirleyin.

  2. İfade ve dal kapsamını artıracak test senaryolarını tasarlayın.

  3. Testleri kod deposunda sürümleyin.

  4. Her değişiklikte testleri CI hattında çalıştırın.

  5. Kapsama düşüşlerini inceleyin; yalnızca sayısal hedefe ulaşmak için değersiz test üretmeyin.

  6. Bulunan hataları, kök nedenleri ve tekrar testlerini kayıt altına alın.

  7. Beyaz kutu sonuçlarını kara kutu ve risk tabanlı test sonuçlarıyla birlikte değerlendirin.

Test yaklaşımını proje hedefleriyle ilişkilendirmek için Proje Başarısında Yazılım Test Stratejisi yazısına da göz atabilirsiniz.

Yazılım testi alanındaki yeni yazılarımızı ve eğitim duyurularını Pena Akademi WhatsApp Duyuru Kanalı üzerinden takip edebilirsiniz.

Sık sorulan sorular

Beyaz kutu testi ile birim testi aynı şey midir?

Hayır. Birim testi bir test seviyesidir; beyaz kutu testi ise bir test tekniğidir. Birim testleri çoğunlukla kod bilgisiyle hazırlandığı için beyaz kutu tekniklerinden yararlanır, ancak iki kavram eş anlamlı değildir.

Beyaz kutu testini yalnızca geliştiriciler mi yapar?

Hayır. Geliştiriciler, test mühendisleri, SDET'ler, teknik test analistleri ve güvenlik uzmanları gerekli kod erişimine ve teknik bilgiye sahip olduklarında beyaz kutu testi yapabilir.

%100 kod kapsama yazılımın hatasız olduğunu gösterir mi?

Hayır. %100 ifade veya dal kapsama, belirli yapısal öğelerin çalıştırıldığını gösterir. Yanlış doğrulamalar, eksik gereksinimler, beklenmeyen veri birleşimleri ve çalıştırılmamış karmaşık yollar yine hata içerebilir.

Beyaz kutu testi ile beyaz kutu sızma testi aynı mıdır?

Tam olarak değil. İkisinde de sistemin iç yapısı hakkında bilgi bulunabilir. Ancak genel beyaz kutu yazılım testi kod mantığı ve kalite risklerine odaklanırken beyaz kutu sızma testi güvenlik açıklarını ve saldırı yollarını değerlendirir.

Yazılım testi yetkinliğinizi geliştirin

Beyaz kutu tekniklerini doğru uygulamak; test seviyeleri, statik test, test tasarım teknikleri ve risk tabanlı test yaklaşımıyla ortak bir çerçeve içinde çalışmayı gerektirir.

Pena Akademi'nin ISTQB CTFL v4.0 Temel Seviye Test Uzmanı Eğitimi, yazılım testi alanına sistemli bir başlangıç yapmak ve güncel ISTQB terminolojisini uygulamalı örneklerle öğrenmek isteyen profesyoneller için hazırlanmıştır. Kurumunuza veya kariyer hedefinize uygun diğer programları Yazılım Test Eğitimleri sayfasında inceleyebilir, eğitim planınızı bu doğrultuda şekillendirebilirsiniz.

Kaynaklar

Eğitim Talep Formu

Bu Konuda Eğitim Almak İster misiniz?

Okuduğunuz konu ilgili bireysel veya kurumsal eğitim talebinizi paylaşın; size uygun seçeneklerle dönüş yapalım.

Size Uygun Program

Hedefinize ve seviyenize göre en uygun eğitim seçeneğini netleştirelim.

Hızlı Geri Dönüş

Hafta içi 09:00 - 17:00 arasında size dönüş sağlayalım.

Son Yazılarımız

Zamanında, Bütçesinde ve Kapsamında Tamamlanan Her Proje Başarılı mıdır?

07.08.26

Start Now
Gereksinim Analizi Nasıl Yapılır? 3 Aşamalı Pratik Yol Haritası

27.02.26

Start Now
Start Now
bottom of page