Test uzmanları genellikle test senaryoları oluştururken, test edilen öğelerin yeterli şekilde kapsanmasını sağlamak için test tasarım tekniklerini kullanırlar. Bazı teknikler özel spesifik durumlara ve test seviyelerine uygun olmakla birlikte, tüm test seviyelerinde de uygulanabilir. Bu bölümde de bahsedilen bu yazılım test tasarım tekniklerinden Beyaz Kutu test teknikleri ve Tecrübeye Dayalı test tekniklerine değineceğiz. İlk olarak Beyaz Kutu Test tasarım tekniğinden başlayalım:
Beyaz Kutu Test Teknikleri
Geliştirilen yazılım ürününe ait algoritmalar, yazılımın iç yapısı, mimarisi, veri tabanı sorguları, mantık yapıları dikkate alınarak yapılan testlerdir. Yazılımcılar tarafından bu çıktılar dikkate alınarak gerçekleştirilir. Beyaz Kutu test teknikleri için aşağıdaki kavramlara bakalım:
Kod kapsamı (code coverage): Kod parçalarından hangilerinin çalıştırılıp çalıştırılmadığını belirleyebilmek için kullanılan birimdir.
Test Coverage: Kod parçası bloğunda test için kapsam aşağıdaki oran ile belirlenir.
Kapsam=(Çalıştırılan Test Durum Sayısı/Toplam Test Durum Sayısı)X100
Kontrol noktalarının kapsamı (Decision Coverage): Kod bloğu içerisinde çalıştırılan döngülerin oranını veren birimdir. Tüm dalların ya da algoritmada ki döngülerin işletilmesi için gerekli olan en az test sayısı bulunur. Örneğin aşağıda bir sisteme giriş adımı için gerekli en az test sayısı 3 olarak bulunur. Karar testinde karar noktaları boyunca bir kontrol akışı izlenir. Bu yüzden karar testi bir çeşit kontrol akış testi biçimidir.
Tüm noktaların kapsamı (Statement Coverage) : Bu test tekniği ile yazılım kod parçasındaki kod bloğunda bulunan döngüler kontrol edilir. Bu döngüler için bir veya birden fazla olacak şekilde oluşturulan test senaryoları ile test yapılır. Yazılım geliştiriciler tarafından kullanılabilir. Birim test, entegrasyon test seviyesinde kullanılabilir. Statement coverage, yürütülen tüm durumların sayısı ile toplam durum sayılarının bölümü 100 ile çarpılarak bulunur.
Tecrübeye Dayalı Test Teknikleri (Deneyim Temelli Test Teknikleri)
Tecrübeye dayalı test tekniği, daha önce aynı ya da benzer uygulamalarda çalışmış kişilerin becerisine deneyimine dayanmaktadır. Bu teknik genelde analizin olmadığı zaman açısında kısıtlı olduğumuz durumlarda dokümantasyonun bulunmadığı durumlarda kullanılır. Fakat bu teknik testi yapan kişinin tecrübesine bağlı olduğu için test eden kişiler değiştikçe çeşitlilik gösterecektir. Dokümantasyonunun yetersiz olduğu veya test ekibinin test edilecek sistem konusunda iyi bir deneyime sahip olduğu durumlarda tecrübeye dayalı testler, daha sistematik yaklaşımlara göre iyi bir alternatif olabilir. Tecrübeye dayalı teknikler için aşağıdaki yöntemleri kullanabiliriz:
Hata Tahminleme:
Test yapan kişinin deneyimlerinden faydalanarak testlerin yapıldığı bir yöntemdir. Uygulama ve konu odaklı oluşabilecek fonksiyon, analiz ve durum noktaları tahmin ederek testleri planlanır. Bu amaca yönelik planlamalar analizin olmadığı ya da zaman açısından kısıtlı durumlarda kullanılır. Bu yöntemde kural bulunmaz ve test eden kişinin deneyimleri ön plandadır. Daha önce benzer uygulamaların test edilmiş olması bir avantaj olarak bu yöntemde kullanılır. Deneme yanılma şeklinde sistemin verdiği cevapların mantığa uygun olup olmadığı kontrol edilir. Daha önce bulunmuş kaydedilmiş hatalar sistem ve yazılım ekibi açısından bir yol verebilir ve bu yol haritası hata tahminleme yönteminde kullanılabilir.
Bu yöntem bütün test seviyelerinde (ör. Sistem testi, Entegrasyon testi) kullanılabilir. Bu yöntemle birlikte sistem ile ilgili daha önce oluşturulmuş mevcut test senaryoları kapsamını genişletebiliriz. Bu yöntemin zorluğu ya da dezavantajı ise tekrarlanması düşük olması diyebiliriz çünkü test yapan kişinin deneyimine bağlı olan bir yöntemdir.
Keşif Testi:
Bu yöntemde hata tahminleme yöntemi gibi deneyimlerin baz alındığı analizin olmadığı durumlarda uygulamanın incelenmesi ve bu şekilde test edildiği bir tekniktir. Bu teknik ile test yapılırken yani testler yürütülürken aynı zamanda test analizi ve tasarım aşamaları da gerçekleştirilir. Test analiz ve tasarım aşaması için tıklayınız. Bu teknikte planlı interaktif ve yaratıcı olmak faydalı olacaktır. Mevcut testleri güçlendirmek ve yeni test senaryoları oluşturmak için yararlanabiliriz.
Kontrol Listesine Dayalı Test Etme:
Bu teknikte test edilecek sistemin, yazılım, test öğesinin üst seviye bir liste ya da ürün için karşılaştırma yapacak kural ve kriterler kullanılır. Bu listeleri ürüne ait standartlar, deneyimler ve ürüne ait iş kuralları referans alınarak hazırlayabiliriz. Bu yöntemin zorluğu için şunu diyebiliriz: Birden fazla test eden kişi olduğu durumlarda bu kontrol listeleri farklı şekillerde yorumlanabilir ve farklı yaklaşımlar izlenebilir. Bu da farklı sonuçlar getirecektir testin sonunda. Tecrübeye dayalı test tekniğinde daha fazlası için inceleyebilirsiniz.
En İyi Tekniğin Uygulanması
Deneyim temelli tekniklerden doğru tekniğin uygulanması ve kalitenin sağlanması kısıtlı zamanlarda önemli olmaktadır. Bu yüzden mevcut durum incelenir ve analiz sonucu kısıtlar imkanlar göz önünde bulundurulur böylece verilere uygun yöntem denenir. Uygun yöntem için aşağıdaki faktörler dikkate alınabilir:
- Sistemin türü
- Risk seviyesi ve türleri
- Dokümantasyonun yeterli olmaması
- Süre
- Test eden kişinin deneyimleri
- Standartlar
- Gereksinimler bulunmadığı durumlar
37Bu bölüm ile birlikte test tasarım tekniklerini ele almış olduk. Umarım faydalı olmuştur. Test tasarım teknikleri ile ilgili buraya tıklayarak yayınlanmış dokümanları inceleyebilirsiniz. Bir sonraki bölümde Yazılım test türlerine başlayacağız. Ayrıca yazılım test otomasyonu ile ilgilenenler için aşağıdaki eğitim videosunu da ekliyorum.
Web siteniz çok şık ve çok başarılı olmuş. Bundan sonraki çalışmalarınızda başarılar diliyoruz.
Önerilerinizi uygulayacağım. Değerli bilgiler için teşekkürler.