Gereksinim Doğrulama Yöntemleri

Gereksinim, projede bir paydaş tarafından belirli bir problemi çözmek ya da bir amacı yerine getirmek için tanımlanmaktadır. Tanımlanan her bir gereksinim aslında sistemin olması gereken bir özelliğini/yeteneğini anlatmaktadır. Gereksinimler yazılım geliştiricileri tarafından hayata geçirildikten sonra artık sahne bizimdir 🙂 Hayata geçirilen bu gereksinimlerin istenilen özellikte olup olmadığını kontrol etmemiz yani doğrulamamız (verification) gerekir. Bu yazımda gereksinim doğrulama yöntemlerinden bahsedeceğim.

Giriş

Projede iş analistleri müşteriyle analiz görüşme toplantıları yaparak müşterinin ihtiyaçlarını tespit eder. Müşterinin ihtiyaçları önceliklendirilerek sistemde olması gereken her bir özellik/yetenek için gereksinimler oluşturulur. Oluşturulan gereksinimler müşteriye onaylatılmadan (validation) önce şirket bünyesinde eşdüzey gözden geçirme toplantılarıyla kontrol edilir.

Kontrol listesine göre tüm gereksinimler gözden geçilir. Bu aşamada her bir gereksinim için aşağıdaki kriterler kontrol edilmelidir;

  1. Test edilebilirlik (doğrulanabilir)
  2. Tutarlılık
  3. İzlenebilirlik (varsa şartname maddesiyle izlenebilirlik sağlanmalı)
  4. Tasarımdan bağımsızlık (tasarım detayına inmeden)
  5. Sade ve açıklık (her bir gereksinim tek bir özelliği/yeteneği vurgulamalı)
  6. Tekil tanımlayıcı (her bir gereksinim için unique numara atanmalı)

Biz test uzmanları olarak mutlaka gereksinim doğrulama toplantılarına katılmayız ve her bir gereksinim maddesini test edilebilirlik kriterine göre kontrol etmeliyiz. Bu kritere uymayan gereksinimleri paydaşlara bildirerek gereksinimin uygun hâle getirilmesini sağlamalıyız. Aksi durumda test ve kabul sürecinde sorunlarla karşı karşıya kalabiliriz.

Doğrulama süreci tamamlanan gereksinimler, müşterinin de onaylaması (geçerleme) için müşteriye iletilir. Müşteri gereksinimleri onayladığında ise artık tasarım aşamasına geçilebilir. Tasarım ve geliştirme aşamalarında her bir gereksinim tek tek ele alınarak müşterinin ihtiyaçlarına uygun çözümler üretilir.

Burada önemli bir noktanın altını çizmek istiyorum, yukarıda bahsedilen doğrulama çalışması gereksinimleri içeren Sistem/Yazılım/Arayüz Gereksinim Dokümanına yapılmaktadır. Test sürecindeyse yazılım kodu doğrulanacaktır.

Test Süreci

Analiz aşamasında müşteri ihtiyaçlarına göre şekillenen gereksinimler, yazılım geliştiricileri tarafından uygun çözümler üretilerek ekran arayüzleri haline getirilmiştir. Artık söz sırası biz test uzmanlarındadır.

Bizim bu aşamada yapmamız gereken ilk görev her bir gereksinim maddesi için tek tek hangi yöntemle doğrulanacağını tanımlamak olmalıdır. Öncelikle bu makalenin de temel noktası olan doğrulama yöntemlerinin neler olduğunu görerek devam edelim.

Doğrulama Yöntemleri

Test sürecinde gereksinimler doğrulanırken dört temel doğrulama yönteminden faydalanılmaktadır bunlar aşağıdaki gibidir;

  • Gösterim (Demonstration)

Gereksinimlerin gözlem yoluyla nitel olarak doğrulandığı yöntemdir. Bu yöntem, fonksiyonel gerekinimlerin doğrulanmasında kullanılır. Gereksinimler doğrulanırken test araçlarından veya simülasyon tekniklerinden faydalanılabilir. Gösterim yöntemi, geçme/kalma koşullarını göstermek için, belli bir girdiye karşılık, uygun tepkinin verildiğini göstermek için kullanılır.

  • Test

Gerçek veya simüle edilmiş kontrollü koşullara tabi tutulduğunda fonksiyonel, ölçülebilir özelliklerin ve performans kapasitesinin niceliksel olarak doğrulandığı yöntemdir. Test, analiz edilecek doğru nicel verileri elde etmek için genellikle test araçlarından faydalanılır.

  • Muayene (Inspection)

Bir ürün veya sistemin istenilen özelliklere sahip olup olmadığını beş duyu organından birini veya birkaçını kullanarak yapılan görsel doğrulama yöntemidir. Bir birime/bileşene bakmak veya tanımlayıcı dokümantasyonu incelemek yoluyla, ilgili özellikleri belirlenmiş standartlarla karşılaştırmaktır.

  • Analiz (Analysis)

Belirli gereksinimlerin karşıladığının tespiti amacıyla, kabul görmüş tekniklerle birimin/bileşenin tasarım parametrelerinin doğrulama yöntemidir. Çizimlerin, yazılım kodunun, denklemlerin, grafiklerin, diyagramların veya temsili verilerin teknik açıdan değerlendirilmesini kapsar. Esas olarak gerçekçi koşullara göre testin gerçekleştirilemediği veya uygun maliyetli olmadığı durumlarda kullanılır.

Genellikle her bir gereksinim için bir doğrulama yöntemi tanımlanmaktadır ancak istisnai olarak bir gereksinim için birden fazla da tanımlanabilir. Şimdi bu yöntemleri daha iyi anlayabilmek için örnek gereksinim maddeler oluşturulalım ve doğrulama yöntemini seçelim.

NoGereksinimDoğrulama Yöntemi
1Sistem, kullanıcı tanımlanabilmesine imkân sağlayacaktır.Gösterim
2Sistem, rol veya görev tanımlanabilmesine imkân sağlayacaktır.Gösterim
3Sistem, web servislere yapılan her bir isteği 1sn içerisinde işleyebilecektir.Test
4Sistem, aynı anda 1000 kullanıcıya hizmet verebilecektir.Test
5Sistem katmanlı mimari yapısında web tabanlı olarak geliştirilecektir.Muayene
6Sistem mikroservis mimarisine göre geliştirilecektir.Muayene
7Sistem, en kısa yolun bulunabilmesi için dijikstra algoritmasını kullanacaktır.Analiz
Tablo1: Gereksinim Doğrulama Matrisi

Bu yöntemlerin dışında doğrudan test edilmesi mümkün olmayan gereksinimler için uygunluk beyanında bulunmak gerekmektedir. Örnek vermek gerekirse; Sistem, sunucu ile client arasındaki bağlantının şifreli olarak yapılmasını sağlayacaktır. Böyle bir gereksinim maddesinin doğrudan test edilmesi mümkün değildir bu nedenle uygunluk beyanı vererek gereksinim maddesi doğrulanır.

Gereksinim maddeleri için doğrulama yöntemlerini belirledikten sonra artık bu gereksinimleri karşılayacak test senaryolarımızı oluşturmalıyız. Test senaryolarınızı oluştururken bu makalemden yardım alabilirsiniz.

Sonuç

Yazılım projelerinin başarısı için gereksinim yönetimi hayati önem taşımaktadır. Biz test uzmanları olarak bu süreçte aktif rol oynamalı, test edilebilirlik ilkesine göre tüm gereksinimleri kontrol etmeli ve gerektiğinde de bayrak kaldırabilmeliyiz. Doğrulama testlerinden önce her bir gereksinim için doğrulama yöntemini tanımlamamız gerekmektedir. Geçerleme testleri sırasındaysa bu yöntemleri kullanarak gereksinimlerin karşılandığına dair kanıtlar sunmalıyız.

Bir sonraki yazımda görüşmek üzere sağlıklı ve mutlu günler dilerim.

Faydalı olması dileğiyle…


Referanslar