Yazılım testi denildiğinde çoğu zaman akla yalnızca uygulamanın çalıştırılması, belirli senaryoların denenmesi ve tespit edilen hataların raporlanması gelir. Ancak ISTQB Foundation Level müfredatı incelendiğinde, test süreçlerinin bundan çok daha kapsamlı olduğu görülmektedir.
Yazılım testinin temel amacı yalnızca hata bulmak değildir. Asıl hedef, geliştirilen yazılımın kalitesini değerlendirmek, sistem içerisinde oluşabilecek riskleri erken aşamada tespit etmek ve son kullanıcıya güvenilir bir ürün sunulmasını sağlamaktır.
Bu noktada yazılım test süreçlerinde iki temel kavram ön plana çıkar: Verification ve Validation.
Verification, geliştirilen sistemin belirlenen teknik gereksinimlere uygun şekilde oluşturulup oluşturulmadığını sorgular. Başka bir ifadeyle “Doğru şekilde mi geliştiriyoruz?” sorusuna cevap arar.
Validation ise geliştirilen ürünün gerçek kullanıcı ihtiyacını karşılayıp karşılamadığını değerlendirir. Buradaki temel soru ise “Doğru ürünü mü geliştiriyoruz?” şeklindedir.
Test süreçleri kendi içerisinde farklı yaklaşımlara da ayrılmaktadır. Bunlardan ilki Static Testing olarak adlandırılır. Static testing sürecinde yazılım çalıştırılmadan; gereksinim dokümanları, kod yapıları veya tasarım dokümanları incelenerek potansiyel problemler tespit edilmeye çalışılır.
Diğer yaklaşım ise Dynamic Testing’dir. Bu yöntemde yazılım aktif olarak çalıştırılır, sistem davranışları gözlemlenir ve belirlenen test senaryoları üzerinden uygulamanın beklenen çıktıları üretip üretmediği kontrol edilir.
Sık karıştırılan kavramlardan biri de Testing ve Debugging arasındaki farktır. Test sürecinin amacı sistemde bulunan problemi tespit etmek ve görünür hale getirmektir. Debugging ise tespit edilen hatanın kaynağını analiz ederek çözüm üretme sürecidir. Kısacası test problemi ortaya çıkarırken, debugging problemin nedenini ortadan kaldırır.
Benzer şekilde Testing ve Quality Assurance (QA) kavramları da birbirinden farklıdır. Quality Assurance daha çok süreç odaklı ilerleyen, hataların oluşmasını önlemeye yönelik proaktif bir yaklaşımdır. Test süreçleri ise ürün üzerinde bulunan hataların belirlenmesine odaklanan daha operasyonel bir süreçtir.
Yazılım test süreçlerinde teknik bilgi kadar iletişim de önemli bir faktördür. Test uzmanları çoğu zaman sistemde bulunan eksiklikleri ortaya koyan, yani ekip içerisinde “problemi görünür hale getiren” kişiler olur. Bu nedenle bulunan hataların doğru şekilde raporlanması, geliştirici ekiplerle sağlıklı iletişim kurulması ve sürecin yapıcı şekilde ilerletilmesi kritik önem taşır.
Modern yazılım geliştirme süreçlerinde kalite yalnızca test ekibinin sorumluluğu değildir. Whole Team Approach yaklaşımıyla birlikte kalite süreçleri geliştiricilerden analistlere kadar tüm ekibin ortak sorumluluğu haline gelmektedir.
Bu içerik, hazırladığım ISTQB Foundation Level not serisinin kısa bir özetidir.
📌 Yazının detaylı halini ve serinin devamını Medium hesabımda, kısa ve özet teknik versiyonlarını ise Siber Havadis üzerinden paylaşmaya devam edeceğim.
