Bu yazımızda tecrübeye dayalı test tasarım tekniklerinden keşif testine değineceğiz. Keşif testi, klasik yaklaşımdaki gibi, test senaryolarının önceden yazılıp buna göre koşulması yerine, test senaryolarının, yazılım test edildiği sırada belirlenmesidir. Yani önceden hazırlanmış bir test tasarım/senaryo dokümanı yoktur. Keşif testine aynı zamanda “ad-hoc testing” ya da “quick testing” de denir.
Keşif testi 4 ana katmandan oluşur;
Yazılım hakkında önce bilgi edinilerek, koşulması gereken senaryolar kabaca belirlenir ve tasarlanır, testler koşulduktan sonra elde edilen bilgiler ışığında yazılımın yorumlanması sağlanır.
Örneğin bir e-ticaret sitesini ele alalım. Burada test uzmanı test edilecek özelliklerin bir listesini çıkarmalıdır;
- Alışveriş sepetine ürün eklenebiliyor mu?
- Eklenen ürün silinebiliyor mu?
- Tutar doğru mu vs.
Bu listeden görüldüğü üzere test uzmanı alışveriş sitesi hakkında bilgi sahibidir (Öğren) ve bu şekilde bir liste kurgulamıştır (Tasarla). Bundan sonra kurguyu baz alarak testleri koşmaya başlayabilir (Koş).
Keşif testi; yazılımla ilgili yeterli dokümantasyon veya mevcut detaylı test senaryolarını yazmak için yeterli zaman olmaması gibi durumlarda daha çok tercih edilir.
Hata tahminleme, adından da anlaşılacağı üzere yazılımın önceki sürümlerinde yapılan/ortaya çıkan hataların göz önüne alınıp yeni sürümlerde tahminlenerek koşulması durumudur.
Kontrol Listeleri, hata tahminleme test tekniğinin daha sistematik bir hale getirilmiş halidir. Test uzmanı daha önceki versiyonlarda koştuğu ve hata çıkabileceğini öngördüğü alanların bir listesini çıkartır.
Örneğin aşağıdaki hata senaryoları ile bir liste hazırlanabilir;
- Error verebilecek tüm case’leri uygulamak
- Error verebilecek tüm karakter setlerini, data tiplerini vs. uygulamak
- Geçersiz input/output değerleri oluşturup uygulamak
- Veri kısıtlamalarının (data constraint violation) dışında değerler girerek hata oluşmasını sağlamak
- Geçersiz operand veya operator kullanmak
- Çok yüksek veya çok düşük değerler girerek hesaplama hatalarına neden olmak vs.
Örnek olarak günümüzde şirket network’lerine yapılan hacker saldırıları arttıkça bu tür “saldırı kontrol listelerinin” hazırlanması büyük önem arz etmektedir.
Bir havayolu şirketinde ödemeler ekibinde test uzmanı/analist olarak çalıştığım dönemde, böyle kritik bir domain’de görev aldığım için, fraud saldırılarına bağlı müşterileri sorunları direkt ekibimize iletilmekteydi. Biz bunun engellenmesi için müşteri ad/soyad/kimlik no/tel no üzerinden bir white/black list entegrasyonu gerçekleştirmiştik ve bu kapsamda yukarıda saydığımız saldırı kontrol listesine benzer bir liste hazırlayıp kullanmıştık.
Özetleyecek olursak, waterfall ve agile metodolojilerinde; kullanıcı ve iş gereksinimleri kullanılarak oluşturulan test senaryolarının aksine keşif testlerinde öğren-test et döngüsü uygulanarak kısa sürede test aktivitesi hayata geçmiş olmaktadır.
Melih Karacahisarlı – Keytorc
Kıdemli Test Mühendisi