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;
- Test edilebilirlik (doğrulanabilir)
- Tutarlılık
- İzlenebilirlik (varsa şartname maddesiyle izlenebilirlik sağlanmalı)
- Tasarımdan bağımsızlık (tasarım detayına inmeden)
- Sade ve açıklık (her bir gereksinim tek bir özelliği/yeteneği vurgulamalı)
- 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.
No | Gereksinim | Doğrulama Yöntemi |
1 | Sistem, kullanıcı tanımlanabilmesine imkân sağlayacaktır. | Gösterim |
2 | Sistem, rol veya görev tanımlanabilmesine imkân sağlayacaktır. | Gösterim |
3 | Sistem, web servislere yapılan her bir isteği 1sn içerisinde işleyebilecektir. | Test |
4 | Sistem, aynı anda 1000 kullanıcıya hizmet verebilecektir. | Test |
5 | Sistem katmanlı mimari yapısında web tabanlı olarak geliştirilecektir. | Muayene |
6 | Sistem mikroservis mimarisine göre geliştirilecektir. | Muayene |
7 | Sistem, en kısa yolun bulunabilmesi için dijikstra algoritmasını kullanacaktır. | Analiz |
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…