Merhaba Arkadaşlar,
Bu bölümde test koşullarının,test senaryolarının ve test verisinin tanımlandığı Test tasarım teknikleri konusuna değineceğiz. Test tasarımı ile ilgili detaylı bilgi için tıklayınız. Her biri belirli bir hata tipini saptamaya yönelik çeşitli tasarım teknikleri vardır. Bu nedenle, belirli bir uygulama için doğru test tasarımı teknik seçimi önemlidir.
Yazılım Test Tasarım Teknikleri
Test tasarım tekniklerinin genel amacı testler gerçekleştirilmeden yani testler koşulmadan önce test verilerini, test şartlarını, senaryolarını belirlemektir. Yazılım testi tasarım teknikleri genel olarak iki ana kategoride sınıflandırılabilir: Statik ve Dinamik teknikler. Aşağıdaki tabloda test tasarım tekniklerinin sınıflandırılmış halini bulabilirsiniz.
İlk olarak kara kutu test tekniklerine değineceğiz. Kara kutu test teknikleri davranış bazlı (spesifikasyon bazlı) test teknikleri olarak da adlandırılırlar. Test koşumu öncesi durumları ele almak için dokümanların analizine dayanan bu test tekniği fonksiyonel ve fonksiyonel olmayan testleri kapsar.
Kara Kutu Test Teknikleri
Test tasarım teknikleri bölümüne kara kutu test teknikleri ile devam edelim. Yazılımın bütün seviyelerinde kullanılabilen bu testlerde öncelik fonksiyonların ortaya çıkmasıdır. Yazılımın iç yapısı yani kod yapısına referansta bulunmadan test esasının analizine dayanılarak test senaryoları oluşturulur. Bu test tekniği genel olarak sistem gereksiniminin bulunduğu dokümanları referans alır. Sistemin nasıl çalışacağının tanımlandığı özellikle fonksiyonel gereksinimlerin bulunduğu gereksinimler test senaryoları için önemlidir. Kara kutu test teknikleri için tabloda verilenlere sırasıyla başlayalım.
Eş Değer Aralık Testi (Equivalence Partitioning) Denklik Paylarına Ayırma
Denklik Paylarına ayırma olarak da adlandırılan bu teknik ile yazılımın temel fonksiyonel özelliklerinin çalışıp çalışmadığı hızla belirlenir ve fonksiyonel hatlar bulunur. Smoke testi (duman testi) sırasında sıklıkla kullanılabilir. Örnek bir gereksinimle açıklamaya çalışalım. Diyelim ki müşteri kaydı için 18 yaş sınırı gereksinimimiz olsun. 18 yaşından küçüklerin müşteri kayıt işleminde uyarı verilmesi istensin. 18 yaşından büyük ise müşteri kayıt işleminde devam edilsin. Bu gereksinim iin bu tekniği kullanırsak test kapsamını şu şekilde belirleyebiliriz. Aynı değeri üreten aynı bölgedeki değerler yani 18 ten küçük değerler ya da 18 den büyük değerler girdi olarak kullanılırsa aynı çıktılar üretilecek. Bu yüzden 10 ve 20 değerlerini bu gereksinim için kullanılabilir.
Sınır Değer Analizi (Boundary Value Analysis)
Bu test tasarım tekniği ile eşit aralık testindeki değerlerin sınırlarında bulunan değerleri test edilir. Yani değişim noktalarında yazılımın davranışı test edilir. İki değerli ve üç değerli sınır değer testi yaklaşımı bulunuyor. 2 değerli test yaklaşımında değişim noktası ve sonraki değeri alınır. 2 değerli test yaklaşımında değişim noktası, önceki ve sonraki değerleri alınır. Örnek bir gereksinimle açıklamaya çalışalım. Üstte verdiğimiz gereksinim üzerinden gidelim. Müşteri kayıt işlemi için 18 yaş sınırımız olsun yine. Buradaki gereksinimde 18 değeri değişim noktasıdır. Yani 18 değeri müşteri kayıt işlemine devam edebilecek 17 değeri ile müşteri kayıt işleminde uyarı alınacak. Bu durumda 2 değerli sınır değer yaklaşımı ile sınır değer testi için kullanacağımız değerler 17,18 olacaktır. 3 değerli test yaklaşımı için ise değişim noktası 18, ve bu değişim noktasının öncesi 17 ve sonrası 19 değerleri kullanılacaktır.
Karar Tablosu Testi (Decision Table Testing)
Bu test tasarım tekniği tanımlanmış gereksinim ya da iş kurallarına bağlı olarak testi yapılacak koşulların sayısının fazla olduğu durumlarda tercih edilir. Bu koşullar çok fazla olduğunda mevcut durum için bir tablo oluşturulur ve bu durumlar sonucunda çıkacak sonuçlar tabloya yerleştirilir. Test edilecek koşulların fazla olması halinde mevcut durum bir tablo üzerine aktarılarak karar tablosu oluşturulur. Her bir duruma karşı yazılım vereceği cevaplar tabloya yerleştirilir. Karar tablosu oluşturulurken sırası ile adımlar takip edilebilir:
1- Koşullar (Örneğin Evet, Hayır) ve gerçekleşecek aksiyonlar uygun sırayla listelenir. En önemli koşul ilk sütuna yazılır ve birden fazla koşulun olan son sütuna eklenir.
2- Olası kombinasyon sayısı hesaplanır ve sütunlar açılır.
3- Tüm kombinasyonlar hesaba katılır ve benzersiz olmasına dikkat edilir.
4- Oluşan tablo sadeleştirilir.
Kombinasyon hesaplaması tablonun büyüklüğünü belirleyeceğinden bu adımda tüm kombinasyonları hesaplanması gerekir. İki koşullu iki değerli bir tablo için kombinasyon sayısı 2 üzeri 2 den 4 olur. Eğer 3 farklı koşul olursa 8 4 farklı koşul olursa 16 durum olur. Bu kombinasyonlar sonucunda aynı sonucu üreten durumlardan gereksiz görülenler kaldırılarak tablo sadeleştirmesi yapılır.
Karar tablosu için işinize yarayabilecek yöntem olan pairwise online aracını kullanabilirsiniz. Tabloda koşulları ve koşulların değerlerini girerek tüm kombinasyonları hesaplayan test durumlarını çıkarabilirsiniz.
Durum Geçiş Testi (State Transition Testing)
Geçiş durumlarında ortaya çıkabilecek sorunlar test edilir. Geliştirilen yazılımın davranışı mevcut veya geçmişteki durumuna göre değişiklik gösterir. Bu tür davranışları kapsayan yazılımlar için bir durum geçiş diyagramı ile gösterilir. Bu diyagramlar, yazılımın alabileceği durumları, bu durumlar arasındaki geçişleri tetikleyen girdileri ve bunların sonucunda oluşacak eylemleri içerir. Örneğin mobil bankacılık işlemlerinize giriş yaparak başlattığınız bir süreç düşünün. Girdikten sonra başlayan süreç durumlar arasında geçiş yaparak isteklerinizi gerçekleştirmek istiyorsunuz. Örneğin para transferi yapmak istediğiniz de ilk önce mobil uygulamaya müşteri no ve şifrenizi doğru şekilde girmeniz ve para transfer bölümüne tıklamanız gerekecektir. Eğer doğru bir şekilde bilgileri giremezseniz giriş engellenecek 3 kez şifreyi yanlış girdiğinizde yeni bir şifre almaya yönlendirileceksiniz. Eğer para transferi yapacağınız ücret kadar bakiyenizde ücret yoksa transferi gerçekleştiremeyecek ve ücret yetersiz uyarısı durumuna geçiş yapması gerekecektir.
Durum geçiş test tekniği genel olarak gömülü yazılımlarda (buradaki durumlar donanım biriminin karşılaşacağı durumlara bağlı olabilir.) ya da web arayüzlerinde kullanılır.
Fayda Analizi Testi (Use Case Testing)
Fayda Analiz test tekniğinde bir kullanıcı yani aktör ve sistem vardır. Kullanıcının tüm hareketine karşılık sistemin nasıl davrandığı geçerli durum olarak kaydedilir. Kullanıcı yazılımdaki farklı arayüzler arasında kurduğu iletişim ile gerçek senaryoları gerçekleştirir ve böylece entegrasyonda olası hataların yakalanması daha da kolaylaşır. Örneğin kullanıcı bir uygulamaya giriş yapmak istediğinde sistem kullanıcı ve şifre bilgilerini zorunlu olduğu için girilmesini isteyecektir. Kullanıcı doğru bir şekilde bilgileri girdikten sonra sistem doğrulama yapıp girişe izin verecektir. Bu senaryo adımları happy path olarak yani mutlu yol olarak adlandırılır çünkü kullanıcı bu senaryoda giriş yapma işlemini başarılı şekilde gerçekleştirmiştir. Sistem tarafından verilecek alternatif cevaplarında yani extensions olarak adlandırılan diğer yollarda ele alınmalıdır.
Bu bölümde test tasarım tekniklerine giriş yapmış olduk ve Kara kutu test tasarım tekniklerinden başlıcalarına değinmiş olduk. Bir sonraki bölümde Test tasarım tekniklerine devam edeceğiz ve Beyaz Kutu Test tekniklerini ele almaya çalışacağız.
58