13. Verifica e Validazione del Software

Documenti analoghi
14. Verifica e Validazione

3. Ciclo di Vita e Processi di Sviluppo

Collaudo e qualità del software Quali test eseguire

Gestione dello sviluppo software Modelli Base

Le basi del linguaggio Java

2. Modellazione dei casi d uso

Materiale didattico. Sommario

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure

Introduzione a Matlab

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

INGEGNERIA DEL SOFTWARE

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

STORIA E CARATTERISTICHE

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Giovanni A. Cignoni 1

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino

PROGRAMMAZIONE DIDATTICA DIPARTIMENTO MECCANICO. Tecnologia meccanica e applicazioni. Classe 4 MT A.S

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

Programma di INFORMATICA

PROGRAMMA PER LA PROVA DI ACCERTAMENTO

1. UML 2 ed il Processo Unificato

Ingegneria del Software

Linguaggi di alto livello, compilatori e interpreti

APPUNTI PER IL CORSO DI ALFABETIZZAZIONE INFORMATICA

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

La Raccolta dei Requisiti. Corso di Ingegneria del Software Anno Accademico 2012/2013

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Software Testing. Esercizi proposti. Esercizi di Testing 1

Verifica del codice con Interpretazione Astratta

SIMULAZIONE DISCRETA

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Informatica per la Comunicazione/ Verdicchio/ 09/02/2017/ Domande / VERSIONE 1

Costanti e Variabili

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Elementi di C++ di base

Verifica e Convalida

Indice. Prefazione. 3 Oggetti e Java 53

Linee di programmazione

La programmazione ad oggetti: chiamate di metodi. Overloading. This

Verifica e Validazione del Software

I.I.S. N. PELLATI Nizza Monferrato - Canelli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

I.I.S. Federico II di Svevia - Melfi

Indice. Introduzione 15. L hardware 24. Il software 43. Introduzione al linguaggio di Arduino 60. Basi del linguaggio di Arduino 65

Linguaggi, Traduttori e le Basi della Programmazione

Modelli e Metodi per la Simulazione (MMS)

Modelli matematici e Data Mining

Modellizzazione dei processi aziendali

Collaudo e qualità del software Il testing nel ciclo di vita del software

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Input/Output. Livelli del sottosistema di I/O

Corso di. Fondamenti di Informatica T

GAMBOTTO-MANZONE, Conoscere e applicare la Matematica, vol.2 Tramontana GAMBOTTO-MANZONE, Conoscere e applicare la Matematica, vol.

PRESENTAZIONE DEL CORSO

23/05/ :56:05 Pagina 1 di 8

Lezione 6 Introduzione al C++ Mauro Piccolo

Correttezza (prima parte)

Controlli Automatici. Maria Gabriella Xibilia Blocco B piano 7 Tel. 7328

Transcript:

13. Verifica e Validazione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 13. Verifica e Validazione del Software 1 / 13

Verifica e Validazione - generalità Verifica: stiamo sviluppando il sistema correttamente? Validazione: stiamo sviluppando il prototto corretto? (Ingegneria del Software) 13. Verifica e Validazione del Software 2 / 13

Approaches to V&V Approcci statici: ispezione del software, verifica formale, analisi statica dei sorgenti Approcci dinamici: testing, monitoring Debugging? (Ingegneria del Software) 13. Verifica e Validazione del Software 3 / 13

Ispezione del software Può sembrare inefficace ma molte esperienze reali hanno dimostrato il contrario. In molti casi ispezione si è rivelata più efficace del testing Vantaggi sul testing: Non permette mascheramento di errori possibilità di applicazione a parti del software non ancora eseguibili possibiltà di verificare aderenza agli standard, ed a stile di codifica (Ingegneria del Software) 13. Verifica e Validazione del Software 4 / 13

Processo di ispezione Come tutte le atticità si svolge strutturando un processo e degli attori che svolgono specifiche attività Attori: Autore Ispettore Lettore Scriba Moderatore Responsabile del processo Il Processo di ispezione Pianificazione Overview Preparazione Individuale Riunione di ispezione Rielaborazione Follow-up (Ingegneria del Software) 13. Verifica e Validazione del Software 5 / 13

Uso di checklist Errori sui dati: inizializzazione delle variabili, uso di nomi per le costanti, indici di vettori, buffer overflow Errori nel controllo: specifica delle condizioni, terminazione dei cicli, uso delle parentesi, case comprende tutte le possibilità, uso dei comandi di break Errori negli input/output: uso di tutte le variabili, assegnamento di valori alle variabili di uscita, comportamento in caso di ingressi imprevisti Errori nelle interfacce: verifica del corretto uso dei parametri, ordine dei parametri Errori nella gestione della memoria: uso e modifica di una struttura con collegamenti, allocazione e deallocazione dinamica dello spazio Errori nella gestione delle eccezioni: possibili sorgenti di errore sono considerate (Ingegneria del Software) 13. Verifica e Validazione del Software 6 / 13

Considerazioni quantitative 500 linee all ora durante overview 125 righe di codice all ora durante preparazione individuale tra i 90 e le 125 righe durante il meeting (Ingegneria del Software) 13. Verifica e Validazione del Software 7 / 13

Verifica formale Applicabili nel caso di uso di formalismi di specifica formali. Correttezza può essere derivata con argomenti matematici Comunque: specifica formali potrebbe non rispecchiare i requisiti reali le prove potrebbero essere errate prove potrebbero fare assunzioni non valide nell ambiente finale d uso (Ingegneria del Software) 13. Verifica e Validazione del Software 8 / 13

Testing Il testing del software prevede l esecuzione di alcuni esperimenti al fine di poter acquisire sufficiente fiducia sul suo funzionamento. Testing riguarda tipicamente proprietà funzionali ma può riguardare anche caratteristiche extra-funzionali. Quali esperimenti devono essere eseguti? Quando posso dire che gli esperimenti sono sufficienti? Come posso decidere riguardo al risultato? Ho bisogno di riprodurre particolari ambienti? (Ingegneria del Software) 13. Verifica e Validazione del Software 9 / 13

Un po di tassonomia Test Case Test suite Driver Sistem Under Test (SUT) Stubs Testbed Controllo/Osservo Oracolo Workload... (Ingegneria del Software) 13. Verifica e Validazione del Software 10 / 13

Fasi del testing e V model Unit testing Integration testing System Testing Acceptance Testing (Ingegneria del Software) 13. Verifica e Validazione del Software 11 / 13

Criteri di scelta Dati - Partition testing, Boundary Condition Controllo - Path, Brach, Statement (Ingegneria del Software) 13. Verifica e Validazione del Software 12 / 13

Diverse Tipologie Robustness Testing Regression Testing (Ingegneria del Software) 13. Verifica e Validazione del Software 13 / 13