Test Tasarım Teknikleri Nelerdir? Black Box Tasarım Tekniği

Mert Akyol
FLO Teknoloji
Published in
4 min readNov 20, 2023

Herhangi bir yazılımı çalıştıran sonsuz sayıda durum ve senaryo bulunabilir. Bizde bu senaryoların hepsini test etmemiz ve müşteriye olabilecek en iyi durumda ürünü teslim etmemiz gerekebilir. Bu yüzden bu senaryolarla başa çıkabilmek ve duruma göre en uygununu seçebilmek için test tasarım tekniklerinden faydalanırız.

Test tasarım teknikleri testler başlamadan önce bizim test verilerini, oluşabilecek senaryoları ve test şartlarını(koşullarını) belirlememize olanak tanır. Bu test tasarım tekniklerini genel olarak statik ve dinamik testler olarak genel iki başlıkta incelememiz mümkündür.

Statik Tasarım Teknikleri

Statik tasarım teknikleri, genellikle yazılımın tasarımı ve belgeleri üzerinde uygulanan yazılım test tekniğidir. Bu teknikte yazılımın çalıştırılması gerekmez ve manuel olarak uygulanan tekniklerdir.

Review(Gözden geçirme), kodun veya tasarımın dışarıdan bir insan gözü ile elden geçirilmesi tekniğidir. Uygulanan yöntemlerde gözden kaçabilecek alanların manuel olarak insan yardımıyla ele alınmasını amaçlar.

Static Analysis(Statik analiz), yazılımın kodu üzerinde toollar(araçlar) kullanılarak yapılan test tekniğidir. Yazılımdaki kod bloklarının incelenmesini ve kod kalitesi, uyumsuzluk gibi sorunların önüne geçmeyi amaçlar.

Dinamik Test Teknikleri

Dinamik test teknikleri, yazılımın gerçek zamanlı çalışır durumlarını test ettiğimiz test tekniğidir. Yazılımın performansını, işlevselliğini, hata durumları ile başa çıkma yöntemlerini ele alan test teknikleridir. White Box (Beyaz Kutu) ve Black Box (Kara Kutu) olarak 2 tür başlıkta incelenir.

White Box (Beyaz Kutu) Teknikleri, yazılımın iç yapısını anlayarak yapılan test teknikleridir. Yazılımın kodu, çalışma mantığı ve diğer sistemlerle olan entegrasyonu incelenir. Genelde yazılımcılar tarafından koşulan test tekniğidir.

Black Box (Kara Kutu) Teknikleri, sistemin, yazılımın iç yapısı hakkında bilgi sahibi olunmadan yani koda bakılmadan sistemin işlevselliğini ölçmeye yarayan test tekniğidir. Yazılım sistemi, mimari bilgisi ve kaynak kodları olmadan da bir kullanıcı gibi test koşmamızı sağlar.

Black Box Test Tekniği Avantajları

  • Kod bilgisine ihtiyaç duyulmadan test edilebilir.
  • Kod geliştiricisi ile kodu test eden kişiler farklı olacağından farklı bakış açısıyla test edilip hataların bulunması daha kolay olabilir.
  • Testler daha hızlı bir biçimde uygulanabilir.

Black Box Test Tekniği Dezavantajları

  • Geliştirici tarafından uygulanmış testlerle beraber tekrar etme durumu söz konusu olabilir.
  • Bütün olası senaryoların kontrolü mümkün değildir bu yüzden gözden kaçan senaryolar olabilir.
  • Kaynak koda ulaşılamadığından dolayı kodun kaynağındaki hataların bulunması daha zordur.

Kara Kutu Test Teknikleri

  1. Equivalence Partitioning Design (Denklik Paylarına Ayırma)

Girilen verileri paylara ayırarak yani denklik sınıfları oluşturarak yapılan test tekniğidir. Geçerli ve geçersiz denklik payı değerleri vardır.

Birim ve sistem kapsamına giren değerler geçerli denklik payı değerlerinde yer alır. Birim ve sistemin kapsamı dışında kalan değerler geçersiz denklik payları değerleri ismini alır. Her iki sınıfta da yer alan denklik payı değeri olmamalıdır.

2. Boundary Value Analysis (Sınır Değer Analizi)

Bu analiz yönteminde denklik paylarına ayırma yöntemine ek olarak sistemin sınır değerlerinde de uygulamanın beklenilen davranışı sergileyip sergilemediği gözlenir.

Bu görseldeki sınır değerleri 1 ve 20 dir. Bu değerler de aralığa ait olma durumuna göre geçerli veya geçersiz aralığa eklenip o duruma göre test edilmelidir.

3. Decision Table Testing ( Karar Tablosu Testleri)

Farklı test koşulu kombinasyonlarının nasıl farklı çıktılar verebildiğini test etmek için kullanılan test tekniğidir. Testçi burada oluşabilecek sonuçlar ve girdilere göre bir tablo hazırlar.

Test senaryosu sayılı verilen koşullar ile doğru orantılıdır. bu orantıyı hesaplamak için 2^n-1 yöntemi uygulanır. yani 3 koşul varsa 8 koşul yazılmalıdır.

State Transition Testing (Durum Geçiş Testleri)

Olası yazılım durumlarının aralarında nasıl bir geçiş oluşturduğunun test edilmesine olanak tanır.

--

--