Sei sulla pagina 1di 5

Verifica e validazione

Verifica e validazione Verifica e validazione


IS IS
Contenuti
 Concetti e terminologia
Verifica
e validazione  Verifica, validazione, integrazione e collaudo

IS 2001-4
IS  Verifica statica

Corso di Ingegneria del Software  Inspection e walkthrough


V. Ambriola, G.A. Cignoni,
C. Montangero, L. Semini
 Verifica e validazione di qualità
Con aggiornamenti di: T. Vardanega

Dipartimento di Informatica, Università di Pisa 1/25 Dipartimento di Informatica, Università di Pisa 2/25

Verifica e validazione Verifica e validazione


IS IS
Verifica e validazione Guasti, difetti, malfunzionamenti
 Attività necessarie  Guasto Fault
 Atto od omissione, possibile
 Accertare che il processo non abbia introdotto difetti nel causa (anche umana) di
comportamento fuori norma un impiegato distratto
prodotto  Può non avere effetto
 Accertare che il prodotto realizzato sia quello atteso  Errore o Difetto Error
validazione  Stato erroneo di sistema
introdotto da un guasto un dato sbagliato in una pratica
 Può restare latente, va eliminato

requisiti prodotto
... prodotto
prodotto  Malfunzionamento Failure
intermedio intermedio  Effetto di un errore, risulta in
deviazione da specifica emissione di una multa ingiusta
 Può causare danni rilevanti
verifica
Dipartimento di Informatica, Università di Pisa 3/25 Dipartimento di Informatica, Università di Pisa 4/25

Verifica e validazione Verifica e validazione


IS IS
Verifiche statiche e dinamiche Ambiente di prova
 Verifiche statiche  Ripetibilità della prova
 Ambiente definito (hardware, condizioni, …)
 Non comportano esecuzione del codice
 Casi di prova definiti (ingressi e comportamenti attesi)
 Usate prevalentemente per attività di verifica
 Procedure definite
 Effettuate sulle componenti (non sul sistema)

 Strumenti
 Verifiche dinamiche (prove ↔ test)  Driver componente attiva fittizia per pilotare un modulo
 Comportano esecuzione del codice  Stub componente passiva fittizia per simulare un modulo
 Usate per attività di verifica e/o di validazione
 Effettuate sulle componenti e/o sul sistema  Registrazione ed analisi dei dati di prova

Dipartimento di Informatica, Università di Pisa 5/25 Dipartimento di Informatica, Università di Pisa 6/25

IS 2001-4 - Corso di Ingegneria del Software 1


Verifica e validazione

Verifica e validazione Verifica e validazione


IS IS
Verifiche sulle componenti Integrazione
 Approcci possibili  Costruzione e verifica del sistema
 Statico, dal controllo di routine (desk-check) all’ispezione  Componenti realizzate in parallelo
 Dinamico, con realizzazione di driver e stub  Componenti realizzate e verificate indipendentemente
 In condizioni ottime, l’integrazione è banale
 Responsabilità
 Problemi
 Del programmatore stesso (non pianificata)
 Errori nella realizzazione delle componenti
 Con l’intervento di una controparte (pianificata)
 Modifica delle interfacce o cambiamenti nei requisiti
 Esempio: verifica dinamica non pianificata + verifica statica
pianificata  Riuso di componenti
 Il debugging è responsabilità specifica del programmatore  Integrazione con altre applicazioni

Dipartimento di Informatica, Università di Pisa 7/25 Dipartimento di Informatica, Università di Pisa 8/25

Verifica e validazione Verifica e validazione


IS IS
Collaudo Verifica statica
Qualifica  Verifica senza esecuzione del codice (analisi)
 Validazione del sistema
 Attività svolta dal fornitore α test o pre-collaudo  Metodi manuali
 Attività svolta dal committente β test o collaudo  Basati sulla lettura del codice (desk-check)
 Su casi di prova definiti nel contratto  Più frequentemente usati, ma di scarsa efficacia per sistemi di
elevata complessità
 Più o meno formalmente documentati
 Valore contrattuale
 Il collaudo è un’attività ufficiale  Metodi formali
 Al collaudo segue il rilascio del sistema  Basati sulla prova assistita di proprietà del codice
 La cui dimostrazione dinamica può essere eccessivamente onerosa
 Conclusione della commessa (a meno di servizi e garanzie)
 Verifica di equivalenza o generazione automatica

Dipartimento di Informatica, Università di Pisa 9/25 Dipartimento di Informatica, Università di Pisa 10/25

Verifica e validazione Verifica e validazione


IS IS
Metodi di lettura del codice Inspection
 Inspection e Walkthrough  Obiettivi
 Rivelare la presenza di difetti
 Metodi pratici  Eseguire una lettura mirata del codice
 Basati sulla lettura del codice
 Efficacia dipendente dall’esperienza dei verificatori  Agenti
 Per organizzare le attività di verifica  Verificatori distinti e separati dai programmatori
 Per documentare l’attività ed i suoi risultati
 Strategia
 Metodi tra loro complementari  Focalizzare la ricerca su presupposti (error guessing)

Dipartimento di Informatica, Università di Pisa 11/25 Dipartimento di Informatica, Università di Pisa 12/25

IS 2001-4 - Corso di Ingegneria del Software 2


Verifica e validazione

Verifica e validazione Verifica e validazione


IS IS
Attività di ispezione Walkthrough
 Fase 1: pianificazione  Obiettivo
 Rivelare la presenza di difetti
 Fase 2: definizione della lista di controllo  Eseguire una lettura critica (a largo spettro) del codice

 Fase 3: lettura del codice  Agenti


 Gruppi misti ispettori/sviluppatori, ma con ruoli ben distinti

 Fase 4: correzione dei difetti


 Strategia
 Percorrere il codice simulandone possibili esecuzioni
 Documentazione (rapporto delle attività)

Dipartimento di Informatica, Università di Pisa 13/25 Dipartimento di Informatica, Università di Pisa 14/25

Verifica e validazione Verifica e validazione


IS IS
Attività di walkthrough Inspection contro walkthrough
 Fase 1: pianificazione  Affinità
 Controlli statici basati su desk-check
 Programmatori e verificatori su fronti contrapposti
 Fase 2: lettura del codice
 Documentazione formale

 Fase 3: discussione
 Differenze
 Inspection basato su (errori) presupposti
 Fase 4: correzione dei difetti  Walkthrough basato sull’esperienza
 Walkthrough più collaborativo
 Documentazione (rapporto delle attività)  Inspection più rapido

Dipartimento di Informatica, Università di Pisa 15/25 Dipartimento di Informatica, Università di Pisa 16/25

Verifica e validazione Verifica e validazione


IS IS
Verifica e validazione di qualità Funzionalità
 Evidenza di qualità  Dimostrabile tramite prove
 A fronte di una metrica e di livelli definiti
 Verifica statica come attività preliminare
 Verificare (validare) per dare evidenza
 Controllo (interno) ed accertamento (esterno) della qualità  Liste di controllo (rispetto ai requisiti)
 Completezza ed economicità (tutte e sole le funzionalità
richieste)
 ISO/IEC 9126 come riferimento  Interoperabilità (compatibilità tra le soluzioni adottate)
 Quali strumenti per quali caratteristiche?  Sicurezza (delle soluzioni adottate)
 Aderenza alle norme ed alle prescrizioni
 La qualità in uso è esclusa
 4 caratteristiche residue nella visione utente e 2 nella visione produttore  Prove per accuratezza

Dipartimento di Informatica, Università di Pisa 17/25 Dipartimento di Informatica, Università di Pisa 18/25

IS 2001-4 - Corso di Ingegneria del Software 3


Verifica e validazione

Verifica e validazione Verifica e validazione


IS IS
Affidabilità Usabilità
 Dimostrabile tramite analisi e prove  Le prove sono imprescindibili

 Verifica statica come attività preliminare  Verifica statica come attività complementare
 Liste di controllo (rispetto ai manuali d’uso)
 Liste di controllo (rispetto ai requisiti)  Comprensibilità
 Robustezza (tolleranza ai guasti)  Apprendibilità
 Capacità di ripristino  Aderenza alle prescrizioni
 Aderenza alle prescrizioni
 Questionari all’utenza (a seguito di prove)
 Prove per maturità  Operabilità
 Attraenza

Dipartimento di Informatica, Università di Pisa 19/25 Dipartimento di Informatica, Università di Pisa 20/25

Verifica e validazione Verifica e validazione


IS IS
Efficienza Manutenibilità
 Prove necessarie con la tecnologia attuale  Verifica statica come strumento ideale
 Verifica statica come attività preliminare  Liste di controllo (norme di codifica)
 Analizzabilità
 Liste di controllo (rispetto a criteri realizzativi)  Modificabilità
 Efficienza temporale (algoritmica)  Aderenza alle prescrizioni
 Efficienza spaziale (uso delle risorse)
 Liste di controllo (batterie di prove)
 Miglioramento e confidenza  Verificabilità
 L’efficienza provata fornisce confidenza
 La verifica statica non da confidenza (attualmente), ma
indicazioni importanti per migliorare il codice
 Prove per la stabilità

Dipartimento di Informatica, Università di Pisa 21/25 Dipartimento di Informatica, Università di Pisa 22/25

Verifica e validazione Verifica e validazione


IS IS
Portabilità Riepilogo
 Verifica statica come strumento ideale  Concetti e terminologia

 Liste di controllo (norme di codifica)  Verifica, validazione, integrazione e collaudo


 Adattabilità
 Aderenza alle prescrizioni
 Verifica statica
 Prove come strumento complementare
 Facilità d’installazione  Inspection e walkthrough
 Compatibilità ambientale
 Facilità di sostituzione  Verifica e validazione di qualità

Dipartimento di Informatica, Università di Pisa 23/25 Dipartimento di Informatica, Università di Pisa 24/25

IS 2001-4 - Corso di Ingegneria del Software 4


Verifica e validazione

Verifica e validazione
IS
Riferimenti
 Standard for Software Component Testing,
British Computer Society SIGIST, 1997

 M.E. Fagan, Advances in Software Inspection,


IEEE Transaction on Software Engineering,
luglio 1986

 G.A. Cignoni, P. De Risi, “Il test e la qualità


del software”, Il Sole 24 Ore, 1998

Dipartimento di Informatica, Università di Pisa 25/25

IS 2001-4 - Corso di Ingegneria del Software 5

Potrebbero piacerti anche