Yazılım Test Nedir?

Nisan 2014 | Seyhan Yüksel, Yazılım Test Mühendisi
Yazılım testi, yazılımın daha önce tanımlanmış teknik ve işlevsel gereksinimleri karşılayıp karşılamadığının ve yazılımın beklendiği gibi çalışıp çalışmadığının kontrolüdür. Yazılım test süreci de temel olarak elde edilen ürünün beklenen kalitede olduğunu belirlemek, değilse istenilen kaliteye ulaştırılmasını sağlamayı amaçlayan bir süreçtir. Kalite düzeyi müşteri tarafından maliyet analizi göz önüne alınarak belirlenir.

Bilgisayar sistemleri hatalar barındırır. Bu hatalar insan (geliştirici, analist vb.) ve donanım kaynaklı olabilir ve hatalar maddi ve/veya prestij kayıplarına neden olabilir. Yazılım test sürecinin proje döngüsüne katılmasıyla bu kayıplar en aza indirebilir. Burada unutulmaması gereken şey mükemmel yazılım olmadığı ve bir yazılımın asla %100 test edilemeyeceğidir. Bir yazılımı %100 oranında test etmeye çalışmak hem maddi gerekçelerle hem de pratik olarak mümkün olmadığından, yazılımın beklendiği gibi çalıştığını gösterebilecek sınırlı sayıda ancak özenle seçilmiş bir test kümesinin belirlenmesi ve bu test kümesi üzerinden test yapılması daha mantıklıdır.

Yazılım testi başka bir ifadeyle bir yazılımın doğrulanması ve geçerlenmesi süreci olarak da tanımlanabilir. Yazılımın doğrulanması işlemi “Yazılımı doğru mu geliştiriyorum? ” sorusunun cevabını aramaktır. Bu soruya cevap verebilmek için bir geliştirme aşamasının başlangıcında yapılması taahhüt edilen işlerin bu aşama sonunda gerçekten yapılıp yapılmadığının kontrolünü yapabilmek gerekir. Yazılımın geçerlenmesi ise “Doğru yazılımı mı geliştiriyorum? ” sorusunun cevabıdır.

Burada kastedilen ise yazılımın başlangıçta belirlenen gereksinimleri karşılayıp karşılamadığının sorgulanması yani ürünün gerçekten müşterinin istediği ürün olup olmadığının kontrol edilmesidir. Yazılım testinin ne zaman veya hangi aşamada yapılacağı, geliştirmede kullanılan yazılım geliştirme süreç modeline bağlıdır. Geleneksel yöntemlerde gereksinimler tanımlanıp kodlama işlemi tamamlandıktan sonra test sürecine geçilirken, çevik (agile) yöntemlerde geliştirme ve test paralel yürütülmeye çalışılmaktadır.