Verification and Validation

Download Report

Transcript Verification and Validation

Doğrulama ve Geçerlilik
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 1
Doğrulama ve Geçerlilik

Doğrulama: “Biz ürünü doğru mu geliştiriyoruz"
•

Geçerlilik: “Biz doğru ürün mü geliştiriyoruz"
•


Yazılım belirteçlere uymalıdır
Yazılım kullanıcı isteklerini yerine getirmelidir
Doğrulama ve Geçerlilik (V & V) yöntemleri
yazılım sürecinin her adımına uygulanmalıdır
İki önemli hedef:
•
•
Sistemdeki kusurların (defect) bulunması
İşletimsel durumda sistemin kullanıcı için yararlı olabileceğinin
kestirimi
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 2
V & V amaçları



Doğrulama ve geçerlilik, kullanıcıda yazılımın
amacına uygun olması güvenini oluşturmalıdır
Ama bu güven yazılımın bütünlükle kusursuz
olacağı anlamına gelmez
Gereken güvenin seviyesi yazılımın kullanım
amacına bağlıdır:
•
Uçağın kontrolü yazılımı ve restoranda masa rezervasyonu
yazılımı
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 3
V & V güveni

Sistemin amacına, kullanıcı beklentilerine ve
pazarlama ortamına bağlıdır
•
Yazılım işlevi
» Güven seviyesi, yazılımın kullanılacağı ortam (kurum) için ne
kadar önemli olmasına bağlıdır
•
Kullanıcı beklentileri
» Bazı yazılımlar için kullanıcıların beklentileri düşük olabilir
•
Pazarlama ortamı
» Ürünün kusurlu halde erken pazara sürülmesi, kusurların
bulunmasından bazen daha önemli olabilir
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 4
Statik ve dinamik V&V

STATİK – yazılımı gözden geçirme
•
•

Sorunları bulmak için statik sistem çözümlemesi
Araç desteği ve kod çözümlemesi
DİNAMİK – yazılımın denenmesi
•
•
Ürünün davranışının izlenilmesi
Sistem deneme verileri ile çalıştırılır ve onun davranışı
gözlemlenir
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 5
Statik ve dinamik V&V
Static
verification
Gereksinimlerin belirteci
Requirements
specification
yüksekseviye tasarımı
High-level
design
formal belirteç
Formal
specification
Statik doğrulama
ayrıntılı tasarım
Detailed
design
©Ian Sommerville 2000
Program
Dynamic
validation
Prototype
prototip
program
Dinamik geçerlilik
Software Engineering, 6th edition. Chapter 19
Slide 6
V & V planlama




Deneme ve gözden geçirme süreçlerinden daha
iyi sonuç ala bilmek için ciddi planlama
gerekmektedir
Planlama geliştirme sürecinin erken aşamalarında
başlanılmalıdır
Plan, statik doğrulama ve deneme arasındaki
dengeyi tanımlamalıdır
Deneme planlamasında deneme süreci için
standartlar tanımlanmalıdır
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 7
Geliştirme için V-model
Gereksinim belirteci
sistem belirteci
Requir ements
specification
System
specification
teslim denemesi planı
ayrıntılı tasarım
System
design
System
integration
test plan
Acceptance
test plan
Detailed
design
Sub-system
integration
test plan
sistem bütünleşme denemesi planı
Acceptance
test
Service
Hizmetler
sistem tasarımı
teslim denemesi
©Ian Sommerville 2000
System
integration test
Modül kodlama
ve deneme
Module and
unit code
and tess
alt sistemlerin bütünleşme deneme planı
Sub-system
integration test
sistem bütünl. denemesi
Software Engineering, 6th edition. Chapter 19
altsistem büt. denemesi
Slide 8
Yazılımın gözden geçirilmesi

Sapmaları ve kusurları ortaya çıkarmak için kaynakların incelenmesi
•
•


Kusurlar
• Mantıksal hatalar
• Kodlardaki sapmalar( örn., başlangıç değer verilmemiş değişken)
• Standartlarla uyumsuzluk
Sistemin her türlü kaynaklarına uygulana bilir
•



Sistemin yürütülmesini gerektirmez
Çalıştırmadan önce kullanıla bilir
gereksinimler, tasarım, deneme verileri ve s.
Hataları ortaya çıkarmak için etkili yöntem
Basit gözden geçirme ile çok farklı kusurları ortaya çıkarmak
mümkündür
Alan ve programlama bilgilerinin yeniden kullanımı
•
Gözden geçirenler, sıklıkla ortaya çıka bilecek kusurları seze bilirler
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 9
Gözden geçirme ve deneme




Gözden geçirme ve deneme biri birini tamamlar
Her ikisi V & V sürecinde kullanılır
Gözden geçirme, müşterinin gerçek
gereksinimlerine uyumluluğu değil, belirteçlere
uyumluluğu yoklar;
Gözden geçirme işlevsel olmayan niteliklerin
(başarım, kullanılabilirlik) denemesini yapamaz
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 10
Gözden geçirme grubu





En azı 4 kişi
Kodun yazarı
Gözden geçiren(Inspector) hataları ve
uyumsuzlukları bular
Okuyucu (Reader) kodu grup üyelerine anlatır
Yönetici (Moderator) toplantılara başkanlık yapar
ve hataları kaydeder
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 11
Gözden geçirme grubu-devamı




Sistem, gözden geçirme grubuna anlatılır
Kod ve uygun belgeler grup üyelerine dağıtılır
Gözden geçirme zamanı bulunan hatalar
kaydedilir
Bulunan hataları gidermek için güncellemeler
yapılır
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 12
Otomatik statik çözümleme




STATİK çözümleyiciler –kaynak kodu
işlemek için yazılım araçları
Onlar program metnini taramakla olası hatalı
koşulları bulmaya çalışır ve bu hataları V&V
grubuna bildirir
Gözden geçirme sürecinde çok etkilidir.
Gözden geçirme yerine kullanılamaz
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 13
Statik çözümleme-hata türleri
Hata türleri
statik çözümlemeler
Veri hataları
Başlangıç değerlerini almamış değişkenlerin
kullanılması, Değişkenler ilan edilmiş ama
kullanılmamıştır, Değişkenlere iki kez değer verilmiş
ama arada hiç kullanılmamışlar
Dizilerin sınırlarında olası hatalar, İlan edilmemiş
değişkenler
Denetim hataları
erişilemez program (modül, fonksiyon)
Döngüde koşulsuz dallanma
Giriş-çıkış hataları
aynı değişken iki kez çıkış değişkeni olarak kullanılsa
da arada ona yeni değer verilmemiş
Arayüzü hataları
parametrenin türü yanlış, parametreler sayısı yanlış,
işlevlerin sonucu kullanılmayıp
çağrılmayan fonksiyon ve yordam
Bellek ile bağlı
hatalar
atanmamış göstergeler, göstergelerin doğru
hesaplanmaması
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 14
Statik çözümleme adımları





Denetim akışlarının çözümlenmesi
• Çok girişli veya çıkışlı döngüleri yoklamalı, erişilemeyen kodları bulmalı
ve s.
Verilerin kullanımının çözümlenmesi
• Başlangıç değerler verilmemiş, tanımlanmış, ama hiç zaman
kullanılmayan değişkenlerin ve s. bulunması
Arayüzü çözümlenmesi
• Altprogram ve yordamların belirtilmesi ve kullanımındaki tutarlılığının
yoklanılması
Bilgi akışının çözümlenmesi
• Çıkış değişkenlerinin bağımlılığının tanımlanması
Yol çözümlenmesi
• Programdaki yolların ve bu yollarda yürütülen komutların araştırılması
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 15
Deneme ve kod ayıklama-Testing and
debugging



Kusur denemesi ve kod ayıklama farklı
süreçlerdir
Denemenin amacı programda kusurların varlığını
tespit etmektir
Kod ayıklama hataları yerelleştirmek ve aradan
kaldırmak içindir
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 16
Deneme




Denemenin amacı, hataların var olmasını
araştırmaktır
Denemenin başarısı ,onun hatayı bulması ile
ölçülür
Deneme, işlevsel olmayan gereksinimlerin
geçerliliğini değerlendirmenin tek yöntemidir
Statik doğrulama ile birlikte kullanıla bilir
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 17
Deneme türleri

Kusur denemesi
•
•

Sistemin kusurlarını bulmak için tasarlanır.
Başarılı kusur denemesi sistemde hataların varlığının
belirlenmesinde çok önemlidir
İstatistiksel deneme
•
•
•
Güvenilirliği değerlendirmek için;
Kullanıcı girişlerinin sıklığını ifade etmek;
Güvenliğin tahmini için kullanılır
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 18
Yazılım deneme planının yapısı







Deneme süreci
Gereksinimlerin izlenebilirliği
Denenen birimler
Deneme zaman çizelgelemesi
Deneme yordamları
Donanım ve yazılım gereksinimleri
Kısıtlamalar
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 19
Önemli hususlar

Doğrulama ve geçerlilik aynı şey değildir.
•
•





Doğrulama sistemin belirtece uygunluğunu gösteriyor
Geçerlilik, programın müşteri isteklerini karşılamasını gösteriyor
Deneme sürecini yerine getirmek ve kontrol etmek için deneme
planları hazırlanır
Statik doğrulama yöntemleri hataları bulmak için programın
çözümlenmesini kapsar
Programın gözden geçirilmesi, hataları bulmak için çok etkili
yoldur
Gözden geçirme zamanı program kodu küçük grup tarafından
kontrol edilir
Statik çözümleme araçları program sapmalarını bula biliyor
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 19
Slide 20