Yazılım testi, bazı spesifik varsayımlar altında yazılımın doğruluk düzeyini belirleyebilse de yazılımdaki bütün hataları tespit edemez. Bunun nedeni, ürünün durumunu ve davranışını test eden kişilerin ortaya çıkabilecek her türlü sorunu öngörmesinin mümkün olmamasıdır. Bu çok doğal bir şeydir. Hatasız yazılım yazmak imkansıza yakındır. Eldeki yazılım tek bir kişinin geliştirdiği basit bir program da olsa, milyonlarca dolar harcanan ve yüzlerce kişinin üzerinde çalıştığı bir uygulama da olsa fark etmez. Yazılımlar normal şartlar altında hiç akla gelmeyecek, çok tuhaf hatalara sahip olabilir. Bu hatalar bazen yıllar sonra kazayla keşfedilebilir, bazen hiç keşfedilemez. Bazen bir hatayı düzeltmek başka bir yeri bile bozabilir ve bunun farkına bile varılamayabilir. Kısaca, hiç hataya sahip olmayan bir yazılım hedeflemek yanlıştır. Yazılım dünyasında mükemmeliyetçi olmaya çalışmak tehlikeli bir harekettir ve genellikle sonu bir türlü gelmeyen geliştirme süreçlerine sebep olur. Geliştirme süreçleri yapılan işe göre makul bir sürede bitmelidir çünkü kimsenin sınırsız kaynağı ve zamanı olamaz. Önemli olan tespit edilen hataların kritiklik düzeyini doğru bir şekilde belirlemek ve bu düzeye göre onları çözmek için kaynak ayırmaktır. Örnek olarak uygulamanın açılmasına engel olan bir hata varken, arayüzde yer alan, kullanıcının belki de fark bile etmeyeceği tamamen görsel bir hatayı çözmeye odaklanmak yanlıştır. İdeal olan, bilinen bir hatayı uygulama yayınlanmadan önce çözmek olsa da böyle basit bir hata uygulama yayınlandıktan sonra da çözülebilir. Hatta belki de kullanıcıları etkilemiyorsa hiç çözülmeyebilir.
Barış Baran ÇİÇEK
