Test Tasarım Teknikleri Nelerdir? (Kara Kutu, Beyaz Kutu, Tecrübeye Dayalı Test Teknikleri)
Merhaba arkadaşlar, bu yazımda sizlere test tasarım tekniklerinden bahsetmeye çalışacağım. Öncelikle test tasarım tekniklerinin ne olduğundan bahsedelim.
Test tasarım tekniğinin amacı; test koşullarını, test senaryolarını ve test verisini tanımlamaktır.
Test tekniğini seçerken bir kaç belli başlı kritere dikkat etmek gerekir. Bunlar;
1- Risk Seviyesi
2- Süreç ve Bütçe
3- Kullanabilir Araçlar
4- Yasal Standartlar olarak söyleyebiliriz.
Test tasarım teknikleri 3'e ayrılır:
1- Kara Kutu Test Teknikleri
2- Beyaz Kutu Test Teknikleri
3- Tecrübeye Dayalı Test Teknikleri
1- Kara Kutu Test Teknikleri
Kara kutu test tekniği davranışsal veya davranışa dayalı teknikler olarak da adlandırılabilir. Test nesnesinin iç yapısını dikkate almadan test nesnesinin girdi ve çıktılarına odaklanır. Fonksiyonel ve fonksiyonel olmayan testlere uygulanabilir.
- 1. Denklik Paylarına Ayırma:
Testler tüm geçerli ve geçersiz payları kapsayacak şekilde tasarlanabilir. Denklik paylarına ayırma tüm test seviyelerinde uygulanabilir. Girdi ve çıktı kapsam hedeflerine ulaşmak için kullanılabilir.
Harcanan alışveriş tutarı ve yapılan indirimi incelersek;
1–100tl → %3 indirim
100–1000tl →%5 indirim
1000+ → %10 indirim
1.2. Sınır Değer Analizi:
Denklik paylarının ve uç noktalardaki girdilerin hataya sebep olma olasılığı daha yüksek olduğu için bu alanların daha yoğunlukta test edilmesi gerekir. Bu teknikle sınır değerlerinin bulunması amaçlanır. Maksimum ve minimum değerler sınır değerleridir. Uygulanması kolay ve hata bulma derecesi yüksektir.
Ayları incelediğimizi varsayalım;
0 → geçersiz bir değer
1–12 → geçerli değerler
12+ → geçersiz değerler
1.3. Karar Tablosu Testi:
Mantıksal koşulları içeren gereksinimleri yakalamak ve yazılım içi tasarım mantığını dökümante etmek için karar tablosu testi kullanılır. Yazılımdaki karmaşık iş koşullarını kaydetmek için de kullanılabilir.
Koşullar;
Y → Koşulun doğru olduğu (T ve 1 olabilir)
N→ Koşulun yanlış olduğu (F ve 0 olabilir)
1.4. Durum Geçiş Testi:
Durum geçiş diyagramları, yazılımın alabileceği durumları, durumlar arasındaki geçişleri, durum değişikliklerini tetikleyen girdileri ve olayları ve bu geçişler sonucunda oluşabilecek eylemlerin görüntülenmesini sağlar.
Durumlar tablosu, durumları ve girdiler arasındaki ilişkiyi gösterir. Geçersiz olan olası geçişleri ortaya çıkartabilir.
Bu teknikle nesnelerin modellenmesi veya ekran-diyalog akışının test edilmesi mümkündür.
1.5. İş(Kullanım) Senaryoları Testi:
Kullanıcı senaryolarının belirlenip yapılmasıyla oluşturulan tekniktir. Test uzmanları iş senaryolarını kullanarak testler üretebilirler.
2- Beyaz Kutu Test Teknikleri
Beyaz kutu, testleri geliştirilen yazılımın kod yapısı bilinerek gerçekleştirilen test tasarım tekniğidir. Beyaz kutu testleri geliştirilen yazılımın iç yapısı ve iş akışlarıyla ile ilgilenir. Beyaz kutu test tasarım tekniği veri akışlarına, kontrol akışlarına, ifade kapsama gibi konulara odaklanır. Tüm test seviyelerinde kullanılabilir.
2.1. Komut Testi:
Komut testi, kod içinde yer alan yürütülebilir komutların üzerinden geçilip bu komutların çalıştırılmasıdır. Kapsam, testler tarafından çalıştırılan komutların sayısının test nesnesindeki çalıştırılabilir komutların toplam sayısına bölünmesi ile ölçülür ve normalde yüzde olarak ifade edilir.
2.2. Karar Testi:
Karar testi, koddaki kararların üzerinden geçilip bu kararların çalıştırılması ve karar çıktılarına dayanarak kodun test edilmesidir. Bunun için test senaryoları karar noktasındaki kontrol akışlarını takip eder (örneğin, bir IF komutu için, biri doğru çıktı ve biri yanlış çıktı; bir CASE komutu için tüm olası çıktıların test senaryoları gerekli olacaktır). Kapsam, testler tarafından çalıştırılan karar çıktılarının sayısının test nesnesindeki karar çıktılarının toplam sayısına bölünmesi ile ölçülür ve normalde yüzde olarak ifade edilir.
3- Tecrübeye Dayalı Test Teknikleri
Tecrübeye dayalı test teknikleri uygulanırken, test senaryoları, test uzmanının beceri ve sezgilerinden ve benzer uygulama ve teknolojilerdeki tecrübelerinden elde edilir. Bu teknikler, diğer daha sistematik tekniklerle kolayca bulunamayan hataları bulmada yardımcı olabilir. Test uzmanının yaklaşımına ve tecrübesine bağlı olarak, bu teknikler çok çeşitli kapsam ve etkinlik derecelerine ulaşabilir. Kapsamın değerlendirilmesi zor olabilir ve bu tekniklerle ölçülemeyebilir.
3.1. Hata Tahminleme
Hata tahminleme, test uzmanının bilgilerine dayalı olarak yanlışların, hataların ve arızaların oluşmasını sağlamak için kullanılan bir tekniktir; bu bilgiler aşağıdaki gibidir:
- Uygulamanın geçmişte nasıl çalıştığı
- Yazılımcıların yapmaya eğilimli oldukları hata çeşitleri •
- Diğer uygulamalarda oluşan arızalar
3.2. Keşif Testi
Keşif testlerinde, test koşumu sırasında gayri resmi testler tasarlanır, koşturulur, kaydedilir ve dinamik olarak değerlendirilir. Test sonuçları, birim veya sistem hakkında daha fazla bilgi edinmek ve daha fazla test gerektirebilecek alanlar için testler oluşturmak için kullanılır. Keşif testleri, gereksinimler az veya yetersiz olduğunda veya testler üzerinde önemli bir zaman baskısı olduğunda çok işe yarar. Keşif testleri, diğer daha resmi test tekniklerini tamamlamak için de kullanılır. Keşif testleri, diğer kara kutu, beyaz kutu ve tecrübeye dayalı tekniklerle birlikte kullanılabilir.
3.3. Kontrol Listesine Dayalı Testler
Kontrol listesine dayalı testlerde, test uzmanları bir kontrol listesinde bulunan test koşullarını kapsayacak şekilde testler tasarlar, uygular ve koşturur. Kontrol listeleri tecrübe, kullanıcı için neyin önemli olduğu veya yazılımın niçin ve nasıl başarısız olabileceği bilgisine dayanarak oluşturulabilir. Fonksiyonel ve fonksiyonel olmayan testleri desteklemek için kontrol listeleri oluşturulabilir.