Yazılım Testinde Doğrulama ve Doğrulama: Temelleri Bilin
Yayınlanan: 2022-09-30Yazılım testinde doğrulama ve doğrulama, bir yazılım sisteminin amacını yerine getirip getirmediğini ve amaçlanan özellikleri karşılayıp karşılamadığını kontrol etme süreçleridir.
Bu iki terim, yazılım geliştirme yaşam döngüsünde yazılım test uzmanları tarafından kullanılan yazılım kalite kontrolü olarak da adlandırılır. Görünüş ve kulağa benzer görünse de, analizlerinde farklılık gösterirler.
Doğrulama, yazılımın kalitesini belirleme sürecidir, doğrulama ise yazılım işlevselliği aracılığıyla müşterinin gereksinimlerini kontrol etmektir. Geliştirme döngüsünün sonunda doğrulamalar tamamlandıktan sonra doğrulama gerçekleştirilir.

Uygulama testi dünyasında bu terimler hakkında çok fazla kafa karışıklığı var. Bu nedenle, işiniz yazılım testi ile ilgiliyse veya sadece merak ediyorsanız, yazılım testinde bu terimler arasındaki farkları bilmeniz gerekir.
Bu makalede, doğrulama ve doğrulamayı, faydalarını ve daha fazlasını tartışacağım. Daha sonra bu terimler arasındaki farkları bir tabloda anlatacağım.
İşte başlıyoruz!
Doğrulama Nedir?
Doğrulama, geliştirme sürecinde yazılımın doğrulanması için basit bir işlemdir. Planları, kodları, belgeleri, spesifikasyonları ve gereksinimleri değerlendirmek için toplantılar, incelemeler, gözden geçirmeler, incelemeler ve daha fazlasını içerir.
Teknik terimi ile, gereksinimleri karşılayıp karşılamadığını ve müşterileri veya son kullanıcıları tatmin edip edemeyeceğini belirlemek için uygulamanın değerlendirilmesini içeren süreç olarak tanımlanır.

Bu nedenle, doğrulamanın birincil amacı, yazılım uygulama kalitesini, mimarisini, tasarımını ve daha fazlasını sağlamaktır. Doğrulamada, spesifikasyonlar, uygulama geliştirme süreci için girdi görevi görür. Kod, özellikleri ayrıntılı olarak belirten belgelere dayalı olarak yazılır.
Yazılım test uzmanları, uygulamanın kapsamına ve karmaşıklığına bağlı olarak çeşitli doğrulama yöntemleri kullanır. Bazen yazılım hakkında tahminlerde bulunmak ve kodun arkasındaki mantığı doğrulamak için matematiksel modeller ve türetilmiş hesaplamalar kullanırlar.
Ayrıca doğrulama, geliştirme ekibinin ürünü doğru oluşturup oluşturmadığını kontrol eder. Başka bir deyişle doğrulama, doğrulama sürecinden önce başlayan ve yazılım doğrulanıp yayınlanıncaya kadar devam eden bir süreçtir.
Doğrulama sürecinde yer alan üç aşama vardır. Bunlar:
- Gereksinim doğrulama: Taleplerin veya gereksinimlerin eksiksiz, doğru ve kesin olduğunu doğrulamak ve onaylamak için bir süreçtir. Uygulama tasarım için gitmeden önce, yazılım test ekibi müşteri veya iş gereksinimlerinin eksiksiz ve doğru olup olmadığını doğrular.
- Tasarım doğrulama: Yazılım uygulamasının belgede belirtilen tasarım özelliklerini karşılayıp karşılamadığının kanıt sunarak kontrol edilmesi işlemidir. Burada yazılım test ekibi, hedeflenen işlevsel ve işlevsel olmayan gereksinimleri karşılamak için uygulamanın prototiplerini, yerleşim planlarını, mimari tasarımını, mantıksal veritabanı modellerini ve gezinme çizelgelerini kontrol eder.
- Kod doğrulama: Kodun doğruluğunu, tutarlılığını ve eksiksizliğini kontrol etme işlemidir. Bu süreçte yazılım test ekibi, kullanıcı arayüzleri, kaynak kodları ve fiziksel veritabanı modelleri dahil olmak üzere inşaat yapılarının tasarım özelliklerini karşılayıp karşılamadığını kontrol eder.

Bu kavramı anlamak için gerçek hayattan bir örnek alalım.
Eviniz için bir iç mimar tuttuğunuzda, öncelikle ihtiyacınızı söylemeniz gerekir. Bu gereksinimlere göre, iç mimar ekibi size nasıl göründüğünü göstermek için bir model geliştirir. Aynı ekip, o tasarımın fizibilitesini de test eder ve gereksinime ve geri bildirime göre doğru olanı ve mal sahibinin talebini de karşılayanı sonuçlandırmak için değişiklikler yapar.
Burada ev modeli koddur, iç tasarım ekipleri geliştiriciler ve testçilerdir ve ev sahibi müşteridir.
Doğrulama Nedir?
Validasyon, yazılım geliştirme süreci sırasında veya sonunda yazılımları iş veya müşteri taleplerine göre değerlendirmek için kullanılan bir süreçtir. Uygulamanın müşterilerin beklenti ve gereksinimlerini karşılayıp karşılamadığını kontrol etmek için nihai uygulamayı değerlendirir.

Test ile birlikte gerçek projeyi doğrulamanın dinamik mekanizması olarak bilinir. Doğrulama çıktıya odaklanır; iç süreçlerle ilgisi yoktur. Sadece doğrulama işleminden sonra başlayan tek seferlik bir işlemdir.
Yazılım ekipleri, kara kutu testi (fonksiyonel test) ve beyaz kutu testi (fonksiyonel olmayan test veya tasarım/mimari test) gibi çeşitli doğrulama yöntemleri kullanır.
- Beyaz kutu testi, önceden tanımlanmış bir dizi veri girişi aracılığıyla uygulamanın doğrulanmasına yardımcı olur. Bu nedenle, test ediciler, yazılımın beklendiği gibi benzer çıktılar üretip üretmediğini kontrol etmek için yazılım uygulama değerlerinin çıktısını girdi veri değerleriyle karşılaştırır.
- Kara kutu testinde üç önemli değişken vardır – giriş değerleri, beklenen çıkış değerleri ve çıkış değerleri.
Kısacası, işlevsel test veya kara kutu testi, entegrasyon testini, sistem testini ve birim testini içerirken, işlevsel olmayan test veya beyaz kutu testi, kullanıcı kabul testini içerir.
Doğrulama, yazılım içeriğini müşteri özelliklerine göre kontrol ederek yazılım ürününü doğru geliştirmenizi sağlar.
Doğrulama süreçleri aşağıdaki adımları içerir:

- Tasarım incelemesi: Yazılım test ekibi, müşterilerin gereksinimlerini özetler. Daha sonra, üretime geçmeden önce yazılımdaki her bir öğeyi onaylamak için bir test planı oluştururlar. Geliştirme ekipleri, ürünün hazır olup olmadığına ilişkin onay alacaktır.
- Kurulum incelemesi: Yazılım test ekibi, test planına göre yazılım uygulamasının kurulumunu dener. Amaç, kurulum sürecinin ve temel sistem donanımının spesifikasyonlara uygun olduğundan emin olmaktır. Ayrıca, test cihazları yazılım işlevlerinin durumunu onaylar.
- Operasyonel inceleme: Yazılım test uzmanları, eksiksizliğini kontrol etmek için uygulamayı farklı test senaryolarından geçirir. Amaç, yazılımın müşterinin istediği gibi çalışıp çalışmadığını belirlemek için tüm işlemleri veya işlevleri gözden geçirmektir.
- Performans incelemesi: Yazılım uygulamasının gerçek dünya koşullarında iş ihtiyaçlarına göre çalışabileceğini gösterir. Müşteriler ayrıca bir fikir edinmek ve doğru şekilde geliştirilip geliştirilmediğini bilmek için beta testi yapabilir. Harici bir görünüm seti, geliştirilen ekip tarafından gözden kaçırılmış olabilecek kusurları ve hataları açıkça tespit eder.
- Üretime hazırlık incelemesi: Tüm incelemeler tamamlandıktan sonra doğrulama süreci tamamlanır ve ürün üretime hazır hale getirilir. Bu, ekibin uygulamayı üretim ortamına bırakarak ilerleyebileceği anlamına gelir.

Ayrıca, sürümden sonra kusurlar ve hatalar tespit edilirse, yazılım geliştirme ekibi bu sorunları gidermek için yeni güncellemeler yayınlayabilir.
Önceki örneği ele alalım ve doğrulamanın ne olduğunu anlayalım.
Bir iç tasarım projesi üzerinde çalışan ekip için doğrulama, eksiksiz ev iç dekorasyonunuzun nihai sonucunu üretmenize yardımcı olacaktır. Ancak doğrulama, bu tasarımı hissederek ve analiz ederek test edilebilecek bir sonraki adımdır. Doğrulama, evinizi tasarımda gördüğünüzle aynı bulduğunuzda gelir.
Başka bir örnek, belirli bir kafeden krep yemek istediğinizi varsayalım. Krepin sipariş ettiğiniz gözleme ile aynı olduğunu doğrulamak için tadına bakmanız gerekir.
Doğrulama ve Doğrulama: Avantajlar

Doğrulamanın Faydaları
Doğrulama testinin bazı avantajlarını tartışalım:
- Sık ve erken doğrulama, yazılım hatası riskini azaltır ve daha sonra ortaya çıkabilecek kusurları ve hataları en aza indirmeye yardımcı olur.
- Paydaşlar, ürün yöneticileri ve geliştiriciler, her aşamada kodları doğrulayarak yazılım uygulaması hakkında daha fazla bilgi edinir. Bu sayede yazılımın sonraki aşamalarda nasıl bir performans göstereceğini tahmin edebilirler.
- Yazılımın doğrulanması, geliştirme aşamasının her aşamasında yazılımınızın iş ve müşteri gereksinimleriyle uyumlu olmasına yardımcı olur. Bu, geliştirme devam ederken geliştiricilerin daha az gereksiz iş yapmasına yardımcı olur.
- Tüm hatalar tamamen ortadan kaldırılamadığından, doğrulama, QA'ların daha sonra ortaya çıkabilecek sorunları tahmin etmesine yardımcı olur, böylece ihtiyaç anında bu hataları hemen ele almak için bir belge hazırlayabilirler.
- Yeniden yazdırma ve yeniden nakliye maliyetini azaltır.
- Doğrulamada, geliştirme aşamasından sonra sistem arızası olasılığı daha düşüktür.
Doğrulamanın Faydaları
Sistemin işlevlerini çalıştırarak ve ölçülebilir ve somut sonuçları izleyerek beklendiği gibi çalışmasını sağlamak için tüm doğrulama testleri yapılır.


Yazılım testinde doğrulamanın avantajlarını tartışalım.
- Doğrulama aşamalarında gözden kaçan herhangi bir kusur veya hata, tüm doğrulama testleri çalıştırılırken kolayca tespit edilebilir.
- Spesifikasyonlar başlangıçta yetersiz veya doğru değilse, doğrulama bunların etkisizliğini ortaya çıkarır. Bu, kötü yazılım uygulamasının piyasaya çıkmasını önleyecektir.
- Doğrulama testleri, yazılım uygulamasının düşük pil, yavaş bağlantı ve daha fazlası gibi çeşitli koşullar altında iş veya müşteri taleplerine, beklentilerine ve tercihlerine uyduğunu ve bunlara uyduğunu doğrular.
- Bu testler, yazılımın çeşitli tarayıcı-cihaz-OS kombinasyonlarında çalışmasına izin verir. Bu, doğrulamanın tarayıcılar arası uyumluluk için yazılımı doğruladığı anlamına gelir.
- Doğrulama, yazılım uygulamasının güvenilirliğini artırmaya yardımcı olur.
Doğrulama ve Doğrulama: Bunları Ne Zaman Kullanmalı?

Doğrulama Testi Ne Zaman Kullanılır?
Doğrulama testleri, herhangi bir özelliği uygulamadan önce geliştirme döngüsünün her aşamasında çalışır.
Örneğin, web sitenize “İstek Listesine Ekle” etiketli bir düğme ekleyin. Düğmenin oluşturulmasına başlamadan önce doğrulama testleri, beyin fırtınası ve fikir oluşturma aşamalarında önceden kararlaştırılan gereksinimleri inceler.
Diyelim ki belgelerde buton macenta ile yazılmış harflerle mavi olmalı ve 15mm X 10mm'den büyük olmamalıdır. Ayrıca, düğme, sitenin her ürün sayfasının alt orta kısmında sürekli olarak görünmelidir.
Sayfadaki her ürünün altına aynı özellikte başka bir buton yerleştirilmelidir. Çalışmaya başlamadan önce gereksinimler ve tasarım tablosu gözden geçirilmeli ve gerekli özellikler listelenmelidir.
Kısacası, doğrulama testi, yazılım uygulamasının geliştirme döngüsü öncesinde ve sırasında kullanılır.
Doğrulama Testi Ne Zaman Kullanılır?
Doğrulama süreci, geliştirme döngüsündeki her adım veya özellik tamamlandıktan sonra çalışır. Örneğin, her kod birimi oluşturulduktan sonra birim testleri çalıştırılır. Aynı şekilde farklı modüller tek tek tamamlandıktan ve kombinasyona hazır hale getirildikten sonra entegrasyon testleri yapılır.

Bir doğrulama testi biçimi olan çapraz tarayıcı testi, doğrulamada önemli bir unsurdur. QA ekipleri, her özelliğin, tasarım öğesinin ve işlevin farklı tarayıcı-cihaz-OS kombinasyonlarında beklendiği gibi göründüğünü kontrol etmelidir. Örneğin, QA'ların "Sepete Ekle" düğmesinin her tarayıcıda görünüp görünmediğini ve herhangi bir cihaz tarayıcısında düzgün çalışıp çalışmadığını kontrol etmesi gerekir.
Yazılım test uzmanları, beyaz kutu testi (dahili uygulama kodunun üzerinden geçen) ve kara kutu testi (veya yalnızca uygulamaların harici işlevlerini arayan davranış testi) gibi doğrulama yöntemlerini kullanarak yazılım çıktısının doğru olduğundan emin olmak için ürün üzerinde çalışır. .
Şimdi doğrulama ve doğrulama arasındaki temel farkları tartışalım.
Yazılım Testinde Doğrulama ve Doğrulama: Farklılıklar
Doğrulama : Ürünü doğru geliştiriyor muyuz?
Doğrulama : Müşterinin gereksinimlerini karşılayan doğru ürünü geliştiriyor muyuz?

Doğrulama ve doğrulama, yazılım geliştirmenin ayrılmaz parçalarıdır. Uygun doğrulama ve doğrulama olmadan, bir yazılım ekibi kaliteli bir ürün oluşturamaz. Bu terimler, ürün arızası risklerini en aza indirmeye ve yazılım uygulamasının güvenilirliğini artırmaya yardımcı olur.
Her ikisinin de farklı yazılım geliştirme ve proje yönetimi firmalarında farklı kullanımları vardır. Örneğin, devam eden iş süreçlerinde her ikisine de ihtiyaç duyulduğundan, çevik geliştirme metodolojisinde her ikisi de aynı anda gerçekleşir.
Aşağıdaki tabloda doğrulama ve doğrulama arasındaki temel farklar şunlardır:
| Doğrulama | doğrulama |
| Doğrulama testinde, ilgili faaliyetler gereksinim doğrulama, kod doğrulama ve tasarım doğrulamadır. | Doğrulama testi, sistem testi, işlevsellik testi, güvenlik testi, performans testi, kullanılabilirlik testi vb. içerir. |
| Kod yürütmeyi içermez. | Yazılımın işlevselliğini ve kullanılabilirliğini test etmek için kod yürütülmesini gerektirir. |
| Doğrulama testi yaparken şu soruyu yanıtlamalısınız: “Doğru ürünü mü geliştiriyorsunuz?”. | Validasyon testi yaparken şu soruya cevap vermelisiniz – “geliştirilen ürün doğru mu ve müşteri gereksinimlerini karşılıyor mu?”. |
| Tasarım, kod, belgeler ve programları gözden geçirmenin statik bir uygulamasıdır. | Gerçek ürünü test etmenin ve doğrulamanın dinamik mekanizmasıdır. |
| Dosya ve belgelerin insan temelli kontrolüdür. | Programın bilgisayar tabanlı bir uygulamasıdır. |
| Doğrulama, doğrulamadan önce gelen düşük seviyeli bir alıştırmadır. | Doğrulama, doğrulama sırasında gözden kaçan hataları yakalayan üst düzey bir alıştırmadır. |
| Hedef, yazılım veya uygulama mimarisi, gereksinim özellikleri, eksiksiz tasarım, veritabanı tasarımı ve üst düzey tasarımdır. | Hedef, bir birim, bir modül, etkin bir nihai ürün ve birleştirilmiş modülleri içeren gerçek üründür. |
| Yazılımın belgede tanımlanan tasarım özelliklerine göre yapılıp yapılmadığının kontrolü Kalite Güvence ekibi tarafından yapılır. | Validasyon, test ekibinin de dahil olduğu doğrulama aşaması tamamlandıktan sonra gerçekleştirilir. |
| İncelemeler, teftişler, masa kontrolü ve gözden geçirmeler, doğrulamada kullanılan yöntemlerdir. | Kara kutu testi ve beyaz kutu testi, doğrulamada kullanılan yöntemlerdir. |
| Erken aşamada kusurları veya hataları azaltır. | Doğrulama aşamasında gözden kaçan hataları tespit eder. |
| Bu test, girdilerin çıktıları takip edip etmediğini tahmin etmenize yardımcı olacaktır. | Bu test, kullanıcıların nihai ürünü kabul edip etmeyeceklerini tahmin etmenize yardımcı olabilir. |
Yazılım Geliştirme Döngüsünün Farklı Aşamalarında Doğrulama ve Doğrulama (D&V)

Doğrulama ve doğrulama, geliştirme sürecinin her aşamasında gerçekleştirilir. Bir bakalım:
- Planlama aşaması, sözleşmenin doğrulanmasını, kavram belgesinin değerlendirilmesini ve risk analizinin yapılmasını içerir.
- Gereksinim aşaması, yazılım gereksinimlerinin ve arayüzlerin değerlendirilmesini ve kabul ve sistem test planının oluşturulmasını içerir.
- Tasarım aşaması, yazılım tasarımının ve arayüzlerin değerlendirilmesini ve entegrasyon planının, test tasarımının ve bileşen test planının oluşturulmasını içerir.
- Uygulama aşaması, kaynak kodun ve belgelerin değerlendirilmesini, test senaryolarının ve prosedürlerin oluşturulmasını ve bileşen test senaryolarının yürütülmesini içerir.
- Test aşaması, sistem ve kabul testi senaryolarının yürütülmesini, izlenebilirlik ölçümlerinin güncellenmesini ve risk analizini içerir.
- Kurulum ve kontrol aşaması, konfigürasyon ve kurulumun denetimini, kurulumun son testini ve nihai test raporunun oluşturulmasını içerir.
- İşletme aşaması, yeni kısıtlamaların değerlendirilmesini ve önerilen değişikliğin değerlendirilmesini içerir.
- Bakım aşaması, anormalliklerin değerlendirilmesini, geçiş ve yeniden deneme özelliklerinin değerlendirilmesini, önerilen değişiklikleri ve üretim sorunlarının doğrulanmasını içerir.
Çözüm
Doğrulama ve doğrulama süreçleri, yazılım geliştirmenin temel unsurlarıdır. Bu süreçler, yazılım uygulamasının tanımlanan gereksinimlere göre yapılıp yapılmadığını, iş gereksinimlerine uygun olup olmadığını ve müşteri taleplerini karşılayıp karşılamadığını belirlemenize yardımcı olabilir.
Her iki süreç de benzer görünebilir ancak yazılım geliştirme yaşam döngüsü boyunca nasıl uygulandıkları açısından farklıdır.
Ayrıca en iyi API geliştirme ve test araçlarını da keşfedebilirsiniz.
