Yazılım Testinin 7 İlkesi

ISTQB müfredatı ile tanımlanan bu temel test prensipleri, test ekiplerinin test süreçlerini daha etkin hale getirmelerine, zamanlarını ve çabalarını daha verimli kullanmalarına yardımcı olur. Kısaca bu ilkeleri inceleyelim:



1. Test, Hataların Varlığını Gösterir

Yazılımlar hangi alanda olursa olsun farklı seviyede testlerden geçerek canlıya çıkar. Kabul testleri hariç tüm testlerin amacı yazılım içerisinde bulunan hataları ortaya çıkartmaktır. Bu yazılımları test eden ekiplerin “yazılımı tamamen test ettiklerini ve yazılımda herhangi bir hata bulunmadığını” söylediklerini hiç duydunuz mu? Yazılım testleri konusunda bilgili ve deneyimli ekipler bu söylem yerine “yazılımın kendinden beklenen tüm gereksinimleri karşıladığını ve son kullanıcının beklenti ve gereksinimlerine göre çalıştığını” söylerler.

Yazılım testleri yazılım içerisinde hataların varlığını gösterir, yokluğunu garanti altına almaz. Test faaliyetleri planlı bir şekilde gerçekleştirilse dahi yazılım içerisinde gizli kalmış hatalar hâlâ var olabilir.

2. Erken Test

Test faaliyetleri Yazılım Geliştirme Yaşam Döngüsü'nün (SDLC) en erken aşamalarından itibaren başlamalıdır. Böylece, gereksinim analizi aşamasında başlayan test faaliyetleri ile hatalar koda girmeden önce keşfedilip önlenebilir. Erken aşamalarda bulunan hataların giderilme maliyet geç aşamalarda bulunan hataların giderilme maliyetlerinden oldukça düşüktür. Bu nedenle proje başlar başlamaz iş gerekçesinden hareket ederek tüm gereksinim dokümanları ve ilgili belgeler gözden geçirilmelidir. Böylece işin en başından itibaren test edilemeyecek, açık olmayan, ölçülebilir olmayan gereksinimler tespit edilebilecektir.

3. Herşeyi KapsayanTest Mümkün değildir.

Bir yazılımın testinde her koşulu test etmek uygulanabilir değildir. Herşeyin test edilmesi için yeterli zaman yoktur. Bazı koşullar kendi şartlarından ötürü zaten test edilemeyebilir. Bu nedenle her şeyi test etmek yerine Eşdeğerlik Aralık ve Sınır Değer Analizi gibi değişik test teknikleri kullanılarak belirli şartlar test edilmelidir.

4. Test Alan Bağımlıdır

Farklı sektörler için geliştirilen yazılımların testleri farklılık arz etmektedir. Savunma, Ulaşım, Enerji ve Sağlık gibi sektörlerdeki görev kritik yazılımlar için gerçekleştirilecek yazılımların testi ile Bankacılık, Sigortacılık, Seyahat, Reklam vb. alanlardaki yazılım test faaliyetleri aynı derinlikte değildir. Emniyet kritik / görev kritik yazılımlar için yazılım kapsama/test kapsama analizleri gerekirken bir reklam veya seyahat yazılımı bir e-ticaret yazılımı için gerekmeyecektir.

5. Hata Kümelemesi

Yapılan araştırmalara göre test sırasında bulunan hataların çoğunun yazılım üzerindeki az sayıda modülden kaynaklandığı görülmüştür. Bu nedenle test koşturum faaliyetlerin daha sistematik, etkin ve verimli yürütülebilmesi bu hata dağılımın anlaşılması ile doğru orantılıdır. Bu oran Pareto yasası ile uyumludur. Yani yazılım %20 kısmı hataların %80’inin içerir. Bu %20 lik kısım tespit edilebildiğinde testlerimizin vurucu gücü bu modüller üzerine yoğunlaşır.

6. Antibiyotik Etkisi/Tarım İlacı Paradoksu

Antibiyotik etkisi veya diğer ismi ile tarım ilacı paradoksu (Pesticide Paradox) ilkesi, aynı test senaryolarının yazılım üzerinde tekrar tekrar yürütülmesi durumunda yeni hatalar bulunamayacağını ifade eder. Yazılım tekrar tekrar koşan senaryolara karşı bağışıklık kazanır. O senaryolarla ilk seferde bulunan hatalar yazılımcılar tarafından zaman içerisinde düzeltildiğinden aynı senaryoyu tekrar koşmanın bir anlamı olmayacaktır. Bunun yerine yeni stratejiler ile yeni senaryolar yazılmalıdır.

7. Hata Yokluğu Yanılgısı

Tüm test senaryolarının koşması, başarılı bir şekilde testlerin sonuçlanması yazılım üzerinde hataların olmadığı anlamına hiçbir zaman gelmeyecektir. Müşterinin ihtiyacını karşılamayan bir yazılımın hata içermemesinin bir önemi olmayacaktır. Üstelik yazılım test bilimi disiplini açısında en fazla yazılımın %99 hatasız olduğunu söyleyebiliriz.

Yazılım test faaliyetleri yazılımın son kullanıcının ihtiyaç duyduğu şekilde çalışıp çalışmadığını doğruladığı için yazılım geliştirme yaşam döngüsü için önemli bir adımdır. Yazılım testleri aynı zamanda yazılım içerisindeki hatalarında ortaya çıkarılmasını sağlar. Bu nedenle testin etkin ve verimli şekilde yapılabilmesi için yazılım testinin bu yedi prensibinin bilmesi ve test faaliyetlerinin buna göre şekillendirilmesi oldukça önemlidir.

Başarılı test mühendisleri, test faaliyetlerini bu ilkeler çerçevesinde planlar, oluşturur ve gerçekleştirirler.

159 görüntüleme