1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

1 t Mobilità internazionale e conversione dei voti Maria Sticchi Damiani Università della Calabria 8 febbraio 2013.
ECTS: la conversione dei voti Maria Sticchi Damiani Parte IV Conservatorio di Musica “N. Paganini” Genova, 2 maggio
/ fax
Introduzione ai Casi dUso (c) TECNET DATI (c) TECNET DATI Pag. 2 Dai requisiti ai casi duso obiettividefinire gli obiettivi –gli obiettivi del committente.
L’Informatica dal Problema alla Soluzione
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
6. Catene di Markov a tempo continuo (CMTC)
1 la competenza alfabetica della popolazione italiana CEDE distribuzione percentuale per livelli.
Training On Line – CONA. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Annuali > Nuova Richiesta Si accede alla pagina di Richiesta.
6. Catene di Markov a tempo continuo (CMTC)
1 Defect testing Lobiettivo: scoprire difetti in un programma Un test ha successo se forza il programma a comportarsi in modo anomalo I test provano la.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Gestione della Qualità
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
R. Torlone, A. Calì, G. Lorenzo, G. Solazzo Profilo utente Milano – 17 Novembre 04.
Identificazione delle attività
Algoritmo di Ford-Fulkerson
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Testing e Debugging.
eliana minicozzi linguaggi1a.a lezione2
Risorse e Stallo.
Corso di Informatica per Giurisprudenza Lezione 5
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Economia politica II – Modulo di Macroeconomia
Campagna di informazione sul Processo di BolognaLa nuova tabella ECTS: il progetto europeo EGRACONS (Euroepan GRAding CONversion System) Seminario nazionale.
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
Unità Didattica 2 I Linguaggi di Programmazione
DHTML: Modello degli Eventi 1. 2 Sommario Introduzione Evento onclick Evento onload Gestione errori con onerror Gestione mouse con levento onmousemove.
Lezione 8 Numerosità del campione
Num / 36 Lezione 9 Numerosità del campione.
Lezione 4 Probabilità.
Il marketing: costruire una relazione profittevole con il cliente
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
La progettazione di un sistema informatico
ISOIVA (LOCALE) TO ISOIVA (WEB) RIPARTIZIONE INFORMATICA UFFICIO APPLICATIVI AMMINISTRATIVI 13/04/2011 UNIVERSITÀ DEGLI STUDI DI FERRARA 1.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
L’ingegneria del software
TRASMISSIONE DATI CON MODEM
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
SCOPRI LA TABELLINA click Trova la regola nascosta… click
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
La tabella dei voti ECTS Maria Sticchi Damiani Sapienza, Roma 26 settembre
Sistemi e Tecnologie Informatiche Requisiti per la realizzazione di un buon programma.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
AICA Corso IT Administrator: modulo 4 AICA © EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Risoluzione dei Problemi e Analisi del Traffico.
Project Management La programmazione della produzione Ing
1 AUTOMATIZZAIAUTOMATIZZAIAUTOMATIZZAIAUTOMATIZZAI S.I. SISTEMASISTEMA INFORMATIVO INFORMATIVO PROCESSOPROCESSO DECISIONALE DECISIONALE DECISIONEDECISIONE.
LE COMPONENTI DEL SISTEMA INFORMATIVO
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
lun mar mer gio ven SAB DOM FEBBRAIO.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
1 Implementazione Significa “tradurre” la progettazione in codice scritto in un particolare linguaggio di programmazione Due scelte fondamentali: scelta.
Equazioni differenziali e applicazioni economiche
Sistemi e Tecnologie Informatiche Verifica di correttezza di un programma.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 5 -Test e verifica Ernesto Damiani Università degli Studi di Milano.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 5 -Test e verifica Ernesto Damiani Università degli Studi di Milano.
Progettazione di basi di dati: metodologie e modelli
I primi elaboratori Anni ‘50 Rigidamente sequenziali
Le basi di dati.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Transcript della presentazione:

1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione Descriveremo le fasi del processo di testing Parleremo di pianificazione del testing Descriveremo diverse strategie di testing

2 Verifica: Stiamo costruendo il prodotto nel modo giusto? Il software deve soddisfare la specifica Validazione: "Stiamo costruendo il prodotto giusto?" Il software deve fare quello che lutente realmente richiede Sono domande che devono percorrere tutto il ciclo di vita del software, per correggere errori e per valutare se il prodotto è usabile dal punto di vista operativo Verifica & validazione

3 spec. livello 1 spec. livello n implementaz. verifica validazione requisiti informali spec. livello 2 Verifica e Validazione

4 Verifica e Validazione dinamica Testare il prodotto facendo prove e osservandone il comportamento Verifica Statica Analizzare la rappresentazione statica del sistema per individuare i problemi Verifica statica/dinamica

5 V&V statica e dinamica

6 Testing La verifica di corretto comportamento corretto su un numero finito di casi non assicura la correttezza del programma Non si può raggiungere una certezza di correttezza attraverso il testing Questo non significa che sia una tecnica di verifica inutile Anche le prove matematiche possono contenere errori

7 Terminologia ERRORE la causa di un malfunzionamento, p.es. un errore umano di editing ANOMALIA, GUASTO (fault) difetto del programma dovuto a un errore MALFUNZIONAMENTO (failure) manifestazione visibile della presenza di unanomalia

8 Esempio ERRORE di editing ANOMALIA --> * invece di + MALFUNZIONAMENTO --> la stampa ANOMALIA causata da un errore MALFUNZIONAMENTO causato da unanomalia program RADDOPPIA read (x); y := x*x; write (y)...

9 Obiettivo per un test Individuare tecniche empiriche per aumentare la probabilità che una anomalia causi un malfunzionamento

10 Un test ha successo se permette di individuare uno o più errori Per i requisiti non funzionali possono solo essere utilizzate tecniche di validazione Testing Il test può servire per scoprire la presenza di possibili malfunziona- menti, ma non a garantirne lassenza (Dijkstra)

11 Testing Testing statistico Il test è progettato in relazione alla frequenza duso dei vari tipi di input da parte degli utenti. Usato per la stima di affidabilità del sistema e la efficienza del sistema Defect testing I test sono progettati per scoprire i difetti del sistema Debugging Individuare dove si trova lerrore e progettarne la correzione

12 Fasi del testing

13 Testing di sistemi OO Nei sistemi OO i livelli di integrazione sono meno distinti rispetto allo schema precedente Testare le singole classi corrisponde allo unit testing Cluster testing. Corrisponde al module testing. Testare un gruppo di oggetti che cooperano per fornire una serie di servizi

14 Il piano di testing E un documento che deve descrivere: 1. Il processo di testing adottato 2. Tracciabilità dei requisiti 3. Elementi testati 4. Schedule del testing: tempo e risorse allocate 5. Procedure di registrazione dei test 6. Requisiti hardware e software utilizzati 7. Vincoli che condizionano il testing

15 Modello a V del processo software

16 Strategie di testing Strategie diverse possono essere applicate nelle diverse fasi del processo di testing 1. Incremental testing 2. Top-down testing 3. Bottom-up testing 4. Thread testing 5. Stress testing 6. Back-to-back testing

17 Incremental testing

18 Esperienza Sembra che circa il 40% di malfunzionamenti possa essere attribuito a problemi di integrazione essenzialmente errori nellinterpretazione che un modulo fa delle specifiche dellaltro

19 Test di modulo Un modulo fa parte di un sistema è cliente di altri moduli è usato da altri moduli MOD

20 Test di modulo Occorre simulare i moduli usati STUB Occorre simulare i moduli che lo usano DRIVER Caso di MOD sottoprogramma DRIVER inizializza eventuali variabili globali chiama MOD STUB completa i sottoprogrammi mancanti con dei monconi

21 Top-down testing

22 Top-down testing Inizia con i livelli più alti del sistema e procede allingiù: le sottocomponenti sono rappresentate da stub (ceppi, monconi), che hanno la stessa interfaccia delle sottocomponenti ma funzionalità limitata E una strategia di testing adatta quando si procede in uno sviluppo top-down Individua rapidamente errori architetturali Può richiedere di aver già completa la struttura del sistema, prima di poter iniziare qualsiasi test Può risultare difficile sviluppare gli stub

23 Casi possibili di stub Il chiamato non fa nulla (eventualmente stampa la traccia) Il chiamato colloquia con il programmatore per calcolare il risultato atteso (stub interattivo) Il chiamato è una versione semplificata (un prototipo) del modulo che verrà chiamato

24 Bottom-up testing

25 Bottom-up testing I vantaggi del bottom-up sono gli svantaggi del top-down (e viceversa) Si inizia dalle componenti più a basso livello e si lavora allinsù, realizzando dei drivers che simulano lambiente nel quale le componenti saranno inserite Non individua errori di progettazione di alto livello se non molto avanti nel processo E appropriato per sistemi object-oriented

26 Thread testing Adatto a sistemi real-time e ad oggetti Si basa sul testare unoperazione che comporta una sequenza di passi di processo che sono legati da uno stesso thread (filo) nel sistema Inizia con thread legati a un singolo evento e poi viene reso più complesso testando threads a eventi multipli Può essere impossibile un threading test completo, a causa del numero elevato di combinazioni di eventi

27 Esempio: interazione di processi

28 Thread testing

29 Multiple-thread testing

30 Ha come obiettivo verificare che il sistema sopporta il carico massimo previsto in fase di progettazione. Il sistema viene testato oltre i limiti finché fallisce Testa il comportamento del sistema in caso di fallimento, e verifica le conseguenti perdite di dati o di servizi Particolarmente importante in sistemi distribuiti, che possono subire degrado quando la rete è troppo carica Stress testing

31 Back-to-back testing Testa diverse versioni del programma con lo stesso input, e confronta gli output. Se loutput è diverso, ci sono errori potenziali Riduce il costo di esaminare il risultato dei test: il confronto degli output può essere automatizzato Si può usare quando è disponibile un proptotipo, quando il sistema vine sviluppato in più versioni (su diverse piattaforme) o un upgrade di sistema

32 Back-to-back testing