top of page
  • Yazarın fotoğrafıberilcankutlu

Yazılım Testinin Yedi İlkesi

Bu yazımda bahsettiğim 7 test prensibi ISTQB müfredatı ile tanımlanmış ve tüm testler için ortak olan temel sayılan önerilerden oluşmaktadır.


1. Testing shows the presence of defects, not their absence, yani, Test, kusurların varlığını gösterir, yokluğunu değil

Test yazılımın hatalarını bulur, fakat hatasız yani kusursuz olduğunu kanıtlamaz. Test etme aktivitesi yazılımdaki

keşfedilmemiş hataların olasılığını azaltır, ancak test hiçbir hata bulunmasa bile bu yazılımda hata olmadığını garanti etmez. Yani yazılım içinde bulunamamış hata olma ihtimali her zaman vardır.


2. Exhaustive testing is impossible, yani, Kapsamlı testler imkansızdır

Bir yazılımın tüm kombinasyon ve olasılıklarını yani herşeyi test etmek mümkün değildir. Bunun için gereken zaman, bütçe ve testleri yazacak insan bulmak gerçekçi bir hedef değildir. Kapsamlı bir şekilde test etmeye çalışmak yerine, test çabalarına yani belirli parametrelere ve önceliklere odaklanılmalıdır.


3. Early testing saves time and money, yani, Erken testler zamandan ve paradan tasarruf sağlar

Projede kullanılan metadoloji ne olursa olsun testlere yazılımın tüm aşamalarında yer verilmelidir. Yazılım Geliştirme Yaşam Döngü'sünde hem statik hem dinamik test faaliyetleri erken başlatılırsa hatalar da erkenden bulunur. Erken fark edilen hataları düzeltmek sürecin sonraki aşamalarında fark edilen hataları düzeltmeye oranla daha ucuza mal olur. Gereksinimler belirlendikten sonra test sürecine başlanması önerilir. Bu test edilmeye uygun olmayan gereksinimlerin tespitini sağlar.


4. Defects cluster together, yani, Kusurlar birlikte kümelenir

Hatalar genelde belirli modüllerde ya da kısımlarda oluştuğu gözlemlenmiştir. Bu şu demek, az sayıda modül genellikle kusurların çoğunu içerir veya operasyonel arızaların çoğundan sorumludur. Test sürecinin daha verimli geçmesi için bu hata dağılımın anlaşılması gerekmektedir.


5. Beware of the pesticide paradox, yani, Böcek İlacı paradoksuna dikkat edin

Tarımda aynı böcek ilacının sürekli kullanılması böceklerin o ilaca karşı direnç geliştirmesine sebebiyet vermektedir. Yazılım testinde ise aynı test tekrar tekrar yapılırsa bu test artık yeni bir kusur bulamaz. Aynı testin ilk seferde bulduğu hata düzeltilmiş olacağından o testi bir defa daha koşmanın bir mantığı yoktur.

Yeni kusurları tespit etmek için mevcut testlerin ve test verilerinin değiştirilmesi gerekebilir ve yeni testlerin yazılması gerekebilir.


6. Testing is context dependent, yani Test, bağlama bağlıdır

Bu ilke farklı sektör/amaç için geliştirilen yazılımları test etme şekillerinin birbirinden farklı olması gerektiği anlamına gelmektedir. Farklı sektörler için geliştirilen yazılımların farklı ihtiyaç ve öncelikleri olabilir. Bunlar göz önünde bulundurularak test süreci yönetilmelidir.


7. Absence-of-errors is a fallacy, yani, Hataların olmaması bir yanılgıdır

İnsanlar deneyim, pozisyon, bilgi birikiminden bağımsız olarak hata yapar. İnsanı insan yapan hata yapmasıdır. Dolayısıyla test ekibinin tüm olası testleri çalıştırmasını ve olası tüm kusurları bulmasını beklenmesi gerçekçi değilir. Bunun ilk iki ilkede imkansız olduğunu söylendi. Ayrıca, testin sadece çok sayıda kusuru bulup düzelterek bir sistemin başarısını garantilemesi mümkün değildir. Test aynı zamanda gereksinimlerin karşılanıp karşılanmadığını kontrol eder, dolayısıyla yazılım başarısı buna da bağlıdır.


bottom of page