Yazılım Test Süreçlerinde Verification ve Validation

Gizem Demir
Innova-tech
Published in
3 min readJan 15, 2024

Yazılım geliştirme sürecinde, bir uygulamanın doğru ve güvenilir bir şekilde çalıştığını doğrulamak kritik bir adımdır. Eğer yazılım geliştirme ile ilgileniyorsanız bu iki kavramı kesin duymuşsunuzdur.

“verification” (doğrulama) ve “validation” (onaylama).

Genellikle karıştırılan bu iki kavramın doğru anlaşılması, yazılım test mühendisleri için temel bir gerekliliktir. Bu yazımızda verification ve validation kavramlarını inceleyip öğremiş olacağız.

Verification Nedir?

Verification, yazılım geliştirme sürecinde belirli bir aşamanın gereksinimlere uygun olup olmadığını doğrulamak anlamına gelir. Bu aşama, genellikle yazılım tasarımının başlangıcıdır ve geliştiricilerin belirlenen gereksinimlere uygun bir şekilde kod yazıp yazmadığını kontrol etmeyi içerir. Verification aşamasında, yazılım belgeleri ve tasarım gereklilikleri üzerinde odaklanılır. Verification’ı daha iyi anlamak için öncelikle aşağıdaki soruya cevap vermeliyiz.

Did we build the system right? (Sistemi doğru kurduk mu?)

Özellikler:

  • Geliştirilen yazılımın gereksinimlere uygun olup olmadığını doğrular.
  • Geliştirme sürecinde yazılımcılar tarafından gerçekleştirilir.
  • Genellikle geliştirme sürecinin erken aşamalarında uygulanır.
  • Standartlara ve teknik özelliklere uygunluğu kontrol eder.

Verification, yazılım kod kalitesini arttırmak için code review (gözden geçirme), tasarım analizi, Walkthrough (üzerinden geçme) gibi kod yapısının kontrol edildiği, yazılan kodların doğru çalışıp çalışmadığının ve tasarımsal olarak isterlerin sağlanıp sağlanmadığının kontrol edildiği eylemleri içerir.

Verification’a bir örnek vererek daha iyi anlayalım !!

Geliştirmesi yapılmak istenen bir login ekranımız olduğunu düşünelim. Burada TC ve password değerlerini girebileceğimiz input alanları ve tıkladığımızda bizi anasayfaya yönlendiren bir giriş butonumuzun olması gerekiyor. Verification ile bu input alanlarının ve butonun olup olmadığı, tasarımsal olarak konumları, input alanlarına istenilen değerlerin yazılıp yazılamadığı gibi konular incelenir.

Validation Nedir?

Validation, geliştirilen yazılımın kullanıcı ihtiyaçlarına uygun olduğunu doğrulamak anlamına gelir. Bu aşama, genellikle yazılım geliştirme sürecinin sonlarına doğru uygulanır ve kullanıcı beklentilerini karşılayıp karşılamadığını kontrol eder.

Validation’ı anlamak içinde aşağıdaki soruya cevap vermeliyiz.

Did we build the right system? (Doğru sistemi kurduk mu?)

Özellikler:

  • Kullanıcı ihtiyaçlarına uygunluğu doğrular.
  • Test ekipleri tarafından gerçekleştirilir.
  • Genellikle geliştirme sürecinin son aşamalarında uygulanır.
  • Kullanıcı deneyimini kontrol eder.

Burada yazılan kod blogu doğru çalışıyor olabilir fakat önemli olan müşteri gereksinimlerinin karşılanıp karşılanmadığıdır. Test süreçlerinde yapılan fonksiyonel testler veya kabul testleri örnek olarak gösterilebilir.

Validation’ı yukarıda bahsettiğimiz login örneği ile anlamaya çalışalım. Verification ile login ekranının çalıştığını, butona tıklanabildiğini, input alanlarına giriş yapılabildiği ve tasarımsal olarak gereksinimleri karşıladığını doğrulamıştık. Validation ile verification’dan farklı olarak müşteri istekleri göz önüne alınarak TC input alanına sadece 11 haneli bir değer girilmesi, fazla ya da az karakter girildiğinde uyarı vermesi, password input alanına girilen değerin maskeli şekilde gözükmesi, butona tıklandığında doğru sayfaya yönlendiriyo olması gibi fonksiyonel özellikler kontrol edilmiş olur.

Özet olarak verification ile kurulan kod blogunun çalıştığı doğrulanır, validation ile çalışan kod blogunun müşterinin istediği şekilde çalıştığı doğrulanır.

Verification ile Validation Arasındaki Farklar

Zaman:

  • Verification, geliştirme sürecinin erken aşamalarında uygulanır.
  • Validation, geliştirme sürecinin sonlarına doğru uygulanır.

Odak:

  • Verification, gereksinimlere ve tasarım belgelerine odaklanır.
  • Validation, kullanıcı ihtiyaçlarına ve kullanıcı deneyimine odaklanır.

Kapsam:

  • Verification, genellikle teknik özelliklere odaklanır.
  • Validation, genellikle kullanıcı beklentilerine odaklanır.

Yazılım geliştirme sürecinde, verification ve validation bir arada kullanılarak kaliteli bir ürün elde etmek önemlidir. Her iki süreç de birbirini tamamlayarak yazılımın doğruluğunu ve kullanılabilirliğini sağlar.

Umarım sizler için faydalı olmuştur. :)

--

--