Yazılım doğrulama - Software verification

Yazılım doğrulama , amacı yazılımın beklenen tüm gereksinimleri tam olarak karşıladığından emin olmak olan bir yazılım mühendisliği disiplinidir .

Geniş kapsam ve sınıflandırma

Geniş bir doğrulama tanımı, onu yazılım testine eşdeğer kılar . Bu durumda, doğrulamaya yönelik iki temel yaklaşım vardır:

  • Deney , dinamik test veya basitçe test olarak da bilinen dinamik doğrulama . - Bu, hataları bulmak için iyidir ( yazılım hataları ).
  • Analiz veya statik test olarak da bilinen statik doğrulama - Bu, bir programın doğruluğunu kanıtlamak için kullanışlıdır . Bununla birlikte, bir yazılımın gerçekten yaptığı işlem ile statik doğrulamanın yaptığını varsaydığı arasında bir veya daha fazla çelişki olduğunda yanlış pozitiflerle sonuçlanabilir.

Dinamik doğrulama (Test, deneme)

Dinamik doğrulama, yazılımın yürütülmesi sırasında gerçekleştirilir ve davranışını dinamik olarak kontrol eder; genellikle Test aşaması olarak bilinir . Doğrulama bir İnceleme Sürecidir. Testlerin kapsamına bağlı olarak, bunları üç ailede kategorize edebiliriz:

  • Küçük test: tek bir işlevi veya sınıfı kontrol eden bir test ( Birim testi )
  • Büyük ölçüde test edin: bir grup sınıfı kontrol eden bir test, örneğin
    • Modül testi (tek bir modül)
    • Entegrasyon testi (birden fazla modül)
    • Sistem testi (tüm sistem)
  • Kabul testi : bir yazılım için kabul kriterlerini kontrol etmek için tanımlanan resmi bir test
    • Fonksiyonel test
    • İşlevsel olmayan test (performans, stres testi )

Yazılım dinamik doğrulamanın amacı, bir faaliyetin getirdiği hataları bulmaktır (örneğin, biyo-kimyasal verileri analiz etmek için tıbbi bir yazılıma sahip olmak); veya bir veya daha fazla aktivitenin tekrarlayan performansıyla (örneğin bir web sunucusu için stres testi, yani aktivitenin mevcut ürününün aktivitenin başlangıcındaki kadar doğru olup olmadığını kontrol edin).

Statik doğrulama (Analiz)

Statik doğrulama, yazılımın çalıştırılmadan önce kodu inceleyerek gereksinimleri karşılayıp karşılamadığını kontrol etme sürecidir. Örneğin:

Analizle Doğrulama - Analiz doğrulama yöntemi, klasik ders kitabı yöntemlerini veya kabul edilen genel kullanım bilgisayar yöntemlerini kullanarak araştırma, matematiksel hesaplamalar, mantıksal değerlendirme ve hesaplamalar yoluyla doğrulama için geçerlidir. Analiz, gereksinimlere uygunluğu sağlamak için ölçülen verileri ve gözlemlenen test sonuçlarını hesaplanan beklenen değerlerle örneklemeyi ve ilişkilendirmeyi içerir.

Dar kapsam

Daha katı bir şekilde tanımlandığında, doğrulama yalnızca statik teste eşdeğerdir ve yapılara uygulanması amaçlanır. Ve doğrulama (tüm yazılım ürününün) dinamik teste eşdeğerdir ve çalışan yazılım ürününe uygulanması amaçlanır (gereksinimler haricinde yapıtlarına değil). Gereksinim doğrulamasının statik ve dinamik olarak gerçekleştirilebileceğine dikkat edin (Bkz. Yapay doğrulama ).

Doğrulama ile karşılaştırma

Yazılım doğrulama, genellikle yazılım doğrulama ile karıştırılır. Doğrulama ve doğrulama arasındaki fark :

  • Yazılım doğrulama , "Ürünü doğru bir şekilde geliştiriyor muyuz?" Sorusunu sorar; yani, yazılım kendi özelliklerine uygun mu? (Bir evin planlarına uyması gibi.)
  • Yazılım doğrulama , "Doğru ürünü mü yapıyoruz?" Sorusunu sorar; yani yazılım, kullanıcının gerçekten ihtiyaç duyduğu şeyi yapıyor mu? (Ev sahibinin ihtiyaç duyduğu ve istediği şeye uygun olduğu için.)

Ayrıca bakınız

Referanslar

  • IEEE : SWEBOK: Yazılım Mühendisliği Bilgi Yapı Kılavuzu
  • Carlo Ghezzi , Mehdi Jazayeri , Dino Mandrioli : Yazılım Mühendisliğinin Temelleri , Prentice Hall, ISBN   0-13-099183-X
  • Alan L. Breitler : Yapay Sinir Ağlarından Türetilen Yazılım için Bir Doğrulama Prosedürü , Uluslararası Test ve Değerlendirme Derneği Dergisi, Ocak 2004, Cilt 25, Sayı 4.
  • Vijay D'Silva, Daniel Kroening , Georg Weissenbacher: Biçimsel Yazılım Doğrulaması için Otomatikleştirilmiş Teknikler Araştırması . IEEE Trans. Entegre Devreler ve Sistemlerin CAD'si üzerine 27 (7): 1165-1178 (2008)