Verifica e validazione: introduzione
Transcript
Verifica e validazione: introduzione
Verifica e validazione: introduzione Verifica e validazione IS Verifica e validazione: introduzione IS Verifica e validazione IS Verifica e validazione – 2 La verifica si occupa di accertare che l’esecuzione delle attività di processi svolti nella fase in esame non abbia introdotto errori nel prodotto La validazione si occupa di accertare che il prodotto realizzato sia conforme alle attese validazione Ingegneria del Software prodotto intermedio requisiti V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini verifica Aggiornamenti di: T. Vardanega (UniPD) Dipartimento di Informatica, Università di Pisa Verifica e validazione – 1 Software verification 1/28 Verifica e validazione IS Provides objective evidence that the design outputs of a particular phase of the software development life cycle meet all of the specified requirements for that phase Software verification looks for consistency, completeness, and correctness of the software and its supporting documentation, as it is being developed, and provides support for a subsequent conclusion that software is validated Dipartimento di Informatica, Università di Pisa 2/28 prodotto verifica verifica 3/28 Verifica e validazione IS Verifica e validazione – 2 validazione (vista cliente) TA verifica validazione (vista fornitore) RS verifica TS verifica DA TI verifica Confirmation by examination and provision of objective evidence that software specifications conform to user needs and intended uses, and that the particular requirements implemented through software can be consistently fulfilled prodotto intermedio Dipartimento di Informatica, Università di Pisa RU Software validation ... DD Dipartimento di Informatica, Università di Pisa verifica TU 4/28 Verifica e validazione: introduzione Verifica e validazione IS Forme di analisi Analisi statica La più piccola quantità di SW che è conveniente verificare singolarmente La sua natura specifica dipende dal linguaggio di programmazione in uso Conformità a regole date, assenza di difetti, presenza di proprietà positive Richieste esecuzione del programma Viene effettuata tramite prove (test) Usata sia nella verifica che nella validazione 5/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Unità Analisi dinamica Analisi dinamica: definizioni Prevalentemente usata in verifica, quando il sistema non è ancora disponibile Studia caratteristiche del codice sorgente (talvolta anche del codice oggetto) e della documentazione associata Non richiede esecuzione di alcuna parte del prodotto SW Verifica e validazione IS Analisi dinamica: ambiente di prova Ambiente (HW, stato iniziale, …) Specifica (ingressi richiesti, comportamenti attesi) Procedure (esecuzione, analisi dei risultati) Va sempre intesa in senso architetturale Non linee di codice ma entità di strutturazione (procedura, classe, package) Il «modulo» è parte dell’unità Il «componente» integra più unità 7/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Stub e driver U Test di unità su U M1 M2 a D2 M3 b D3 c M1 Con driver Strumenti M2 Driver componente attiva fittizia per pilotare una parte Stub componente passiva fittizia per simulare una parte Logger componente non intrusivo di registrazione dei dati di esecuzione per analisi dei risultati Dipartimento di Informatica, Università di Pisa Unità U composta dai moduli M1, M2, M3 La ripetibilità è requisito essenziale Tipicamente prodotta da un singolo programmatore 6/28 M3 M2 M3 Con stub a M1 S2 S3 b M1 M2 Dipartimento di Informatica, Università di Pisa S3 c M1 M2 M3 8/28 Verifica e validazione: introduzione Verifica e validazione IS Tipi di test Modulo Test di unità Modulo Unità Test di integrazione Build Modulo Unità Sistema Collaudo Sistema Build Modulo Unità Componenti sviluppati in parallelo e verificati incrementalmente In condizioni ottimali l’integrazione è priva di problemi Quali problemi rileva Modulo Test di integrazione Costruzione e verifica incrementale del sistema Test di sistema Verifica e validazione IS Errori residui nella realizzazione dei componenti Modifica delle interfacce o cambiamenti nei requisiti Riuso di componenti dal comportamento oscuro o inadatto Integrazione con altre applicazioni non ben conosciute Modulo 9/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Attività di analisi dinamica Con il supporto di attività mirate di analisi statica Si svolge con il massimo grado di parallelismo Validazione Test di sistema come attività interna del fornitore Collaudo come attività supervisionata dal committente Dello stesso programmatore per le unità più semplici Di un verificatore indipendente (meglio un automa) altrimenti 10/28 Per accertare la copertura dei requisiti SW Per dimonstrazione di conformità del prodotto sulla base di casi di prova specificati nel o implicati dal contratto Implicazioni contrattuali Verificare la correttezza del codice «as implemented» Dipartimento di Informatica, Università di Pisa Test di sistema e collaudo Obiettivi Verifica e validazione IS Responsabilità Test di unità 11/28 Dipartimento di Informatica, Università di Pisa Il collaudo è attività formale Al collaudo segue il rilascio del prodotto (con eventuale garanzia) e la fine della commessa (con eventuale manutenzione) Dipartimento di Informatica, Università di Pisa 12/28 Verifica e validazione: introduzione Verifica e validazione IS L’insieme di test necessari ad accertare che la modifica di una parte P di S non causi errori in P o nelle altri parti di S che dipendono da P Test di regressione 13/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Forme di analisi statica Non richiedono esecuzione di parti del sistema SW Applicano a ogni prodotto di processo e non solo al codice Metodi di lettura (desk check) Inspection e Walkthrough Metodi pratici Ripetizione di test già previsti ed effettuati per ogni parte coinvolta Il rischio aumenta all’aumentare dell’accoppiamento e al diminuire dell’incapsulazione Basati sulla lettura della documentazione sul prodotto Di efficacia dipendente dall’esperienza dei verificatori Nell’organizzare le attività di verifica Nel documentare le attività svolte e i risultati ottenuti Modalità relativamente complementari 15/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Inspection Impiegati solo per prodotti semplici Metodi di lettura Modifiche effettuate per aggiunta, correzione o rimozione non devono pregiudicare le funzionalità già verificate Verifica e validazione IS Obiettivi Rivelare la presenza di difetti Eseguire una lettura mirata [del codice] Agenti Verificatori distinti e separati dai programmatori Metodi formali Basati sulla prova assistita di proprietà La cui dimostrazione dinamica può essere eccessivamente onerosa Verifica di equivalenza o generazione automatica Dipartimento di Informatica, Università di Pisa Strategia Focalizzare la ricerca su presupposti 14/28 Error guessing Dipartimento di Informatica, Università di Pisa 16/28 Verifica e validazione: introduzione Verifica e validazione IS Attività di inspection Verifica e validazione IS Attività di walkthrough Fase 1: pianificazione Fase 1: pianificazione Fase 2: definizione della lista di controllo Fase 2: lettura Fase 3: lettura [del codice] Fase 3: discussione Fase 4: correzione dei difetti Fase 4: correzione dei difetti In ogni fase In ogni fase Documentazione come rapporto delle attività svolte 17/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Documentazione come rapporto delle attività svolte Verifica e validazione IS Inspection contro walkthrough Walkthrough Obiettivo A largo spettro Senza l’assunzione di presupposti Agenti Rivelare la presenza di difetti Eseguire una lettura critica [del codice] Gruppi misti ispettori/sviluppatori ma con ruoli ben distinti Strategia (per il codice) Percorrerlo simulandone possibili esecuzioni Dipartimento di Informatica, Università di Pisa 18/28 19/28 Dipartimento di Informatica, Università di Pisa Affinità Controlli basati su desk check Programmatori e verificatori su fronti opposti Documentazione formale Differenze Inspection basato su (errori) presupposti Walkthrough richiede maggiore attenzione Walkthrough più collaborativo Inspection più rapido Dipartimento di Informatica, Università di Pisa 20/28 Verifica e validazione: introduzione Verifica e validazione IS Verifica e validazione di qualità Serve a raccogliere evidenza di qualità Affidabilità Dimostrabile tramite combinazione di prove e analisi statica A fronte di specifiche metriche e di obiettivi definiti Verificare (validare) per dare evidenza Analisi statica come attività preliminare Controllo (interno) e accertamento (esterno) Prove a completamento ISO/IEC 9126 come riferimento Liste di controllo rispetto ai relativi requisiti Robustezza Quali strumenti per quali caratteristiche? Capacità di ripristino e recupero da errori La qualità in uso è valutata a posteriori Adesione alle norme e alle prescrizioni 21/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Funzionalità Dimostrabile tramite prove Analisi statica come attività preliminare Liste di controllo rispetto ai relativi requisiti Accertata la compatibilità tra le soluzioni realizzative adottate Dipartimento di Informatica, Università di Pisa 22/28 Analisi statica come attività complementare Liste di controllo rispetto ai manuali d’uso Comprensibilità Apprendibilità Adesione a norme e prescrizioni Questionari sottomessi agli utenti Valutazione di accuratezza Usabilità Le prove sono imprescindibili Tutte le funzionalità richieste per tutti e soli i componenti necessari Sicurezza del prodotto e dei suoi componenti Adesione alle norme e alle prescrizioni 23/28 Verifica e validazione IS Interoperabilità Valutazione di maturità Dipartimento di Informatica, Università di Pisa Completezza ed economicità Verifica e validazione IS Facilità e piacevolezza d’uso Dipartimento di Informatica, Università di Pisa 24/28 Verifica e validazione: introduzione Verifica e validazione IS Le prove sono necessarie Analisi statica come attività complementare Margini di miglioramento e confidenza L’efficienza provata fornisce confidenza nel prodotto L’analisi statica fornisce indicazioni specifiche sui margini di miglioramento prestazionale 25/28 Dipartimento di Informatica, Università di Pisa Verifica e validazione IS Manutenibilità Analisi statica come strumento ideale Liste di controllo Analisi statica come strumento ideale Liste di controllo rispetto a specifiche norme di codifica Quelle che puntano all’efficienza nel tempo e nello spazio Rispetto a specifiche norme di codifica Analizzabilità Modificabilità Ripetibilità Verificabilità Prove di stabilità Dipartimento di Informatica, Università di Pisa 26/28 Adattabilità Prove come strumento complementare Facilità d’installazione e di sostituzione Compatibilità ambientale Dipartimento di Informatica, Università di Pisa IS 27/28 Verifica e validazione 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 Rispetto alle prove per accertarne Portabilità Liste di controllo rispetto alle norme di codifica Efficienza Verifica e validazione IS Dipartimento di Informatica, Università di Pisa 28/28