14. Verifica e Validazione
|
|
|
- Daniela Cavallaro
- 8 anni fa
- Просмотров:
Транскрипт
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dell utente? Introdurremo i concetti di verifica e validazione Descriveremo le fasi del processo di testing Parleremo di pianificazione del testing Descriveremo diverse strategie di testing 1 Verifica & validazione 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 l utente 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 2
2 Verifica e Validazione requisiti informali verifica spec. livello 1 spec. livello 2 validazione spec. livello n implementaz. 3 Verifica statica/dinamica 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 4
3 V&V statica e dinamica Static verification Requirements specification High-level design Fo rmal specification Detailed design Program Prototype Dynamic validation 5 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 6
4 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 un anomalia 7 Esempio ERRORE di editing ANOMALIA --> * invece di + MALFUNZIONAMENTO --> la stampa program RADDOPPIA read (x); y := x*x; write (y)... ANOMALIA causata da un errore MALFUNZIONAMENTO causato da un anomalia 8
5 Obiettivo per un test Individuare tecniche empiriche per aumentare la probabilità che una anomalia causi un malfunzionamento 9 Testing Il test può servire per scoprire la presenza di possibili malfunzionamenti, ma non a garantirne l assenza (Dijkstra) Un test ha successo se permette di individuare uno o più errori Per i requisiti non funzionali possono solo essere utilizzate tecniche di validazione 10
6 Testing Testing statistico Il test è progettato in relazione alla frequenza d uso 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 l errore e progettarne la correzione 11 Fasi del testing Unit testing Module testing Sub-system testing System testing Acceptance testing Component testing Integration testing User testing 12
7 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 13 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 14
8 Modello a V del processo software Requirements specification System specification System design Detailed design Acceptance test plan System integration test plan Sub-system integration test plan Module and unit code and tess Service Acceptance test System integration test Sub-system integration test 15 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 16
9 Incremental testing A T1 A T1 A T1 T2 B T2 T2 B T3 B T3 C T3 T4 C T4 D T5 Test sequence 1 Test sequence 2 Test sequ ence 3 17 Esperienza Sembra che circa il 40% di malfunzionamenti possa essere attribuito a problemi di integrazione essenzialmente errori nell interpretazione che un modulo fa delle specifiche dell altro 18
10 Test di modulo Un modulo fa parte di un sistema è cliente di altri moduli è usato da altri moduli MOD 19 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 20
11 Top-down testing Testing Level 1 Level 1 sequence... Level 2 Level 2 Le vel 2 Level 2 Le vel 2 stubs Le vel 3 stubs 21 Top-down testing Inizia con i livelli più alti del sistema e procede all ingiù: 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 22
12 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 23 Bottom-up testing Test drivers Level N Level N Le vel N Level N Level N Testing sequence Test drivers Level N 1 Level N 1 Level N 1 24
13 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 all insù, realizzando dei drivers che simulano l ambiente 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 25 Thread testing Adatto a sistemi real-time e ad oggetti Si basa sul testare un operazione 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 26
14 Esempio: interazione di processi I1 (P1) I1 (P2) I2 (P1) P1 I3 (P1) P2 P5 O1 (P5) I1 (P3) P3 O1 (P4) P4 O2 (P4) 27 Thread testing I1 (P3) P3 P2 P4 O1 (P4) I1 (P1) I2 (P1) P1 P2 P5 O1 (P5) I3 (P1) 28
15 Multiple-thread testing I1 (P1) I1 (P2) I2 (P1) P1 P2 P5 O1 (P5) I3 (P1) P4 O2 (P4) 29 Stress testing 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 30
16 Back-to-back testing Testa diverse versioni del programma con lo stesso input, e confronta gli output. Se l output è 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 31 Back-to-back testing Test data Program version A Program version B Resu lts comparator Difference report 32
Verifica e Validazione del Software
Verifica e Validazione del Software Testing processes Ingegneria del Software 2 Testing Processes 1 Riferimenti Ian Sommerville, Ingegneria del Software, capitoli 22-23-24 (più dettagliato sui processi)
13. Verifica e Validazione del Software
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
Processo parte III. Modello Code and fix. Modello a cascata. Modello a cascata (waterfall) Leggere Sez. 7.4 Ghezzi et al.
Modello Code and fix Processo parte III Leggere Sez. 7.4 Ghezzi et al. Modello iniziale Iterazione di due passi scrittura del codice correzione degli errori Problemi: dopo una serie di cambiamenti, la
Gestione dello sviluppo software Modelli Base
Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione GESTIONE DEI SISTEMI ICT Paolo Salvaneschi A4_1 V1.0 Gestione dello sviluppo software Modelli Base Il contenuto
Modelli di Ciclo di Vita del Software (CVS)
Modelli di Ciclo di Vita del Software (CVS) Una morfologia dell organizzazione del lavoro nelle fabbriche del software: fasi della produzione, tipi di attività, collegamento ed interfacciamento, pianificazione,
Ingegneria del Software
Ingegneria del Software Introduzione e Concetti Fondamentali Porfirio Tramontana, 2009 Corso di Ingegneria del Software Slide 1 Riferimenti Ian Sommerville, Ingegneria del Software, Capitolo 1 Porfirio
Introduzione ai casi d uso
Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni
Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven
Tesi di laurea in Informatica Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven Relatore Ch.mo Prof. Giuseppe Trautteur Candidato Gioacchino Del
Stato dell arte sulle tecniche di testing di Sistemi Embedded
tesi di laurea Anno Accademico 2011/2012 relatore Ch.mo prof. Porfirio Tramontana candidato Alfonso Cutolo Matr. 041/3068 Obiettivi Facoltà di Ingegneria Obiettivi Ordinare e descrivere in maniera metodologica
Collaudo e qualità del software Quali test eseguire
Collaudo e qualità del software Relatore Ercole Colonese Roma, Tipologie di test Temi trattati nel libro Modello a V Livelli di testing Tipi di test Test funzionali Test delle funzionalità Test di gestione
Modulo 2. La produzione industriale del software Il ciclo di vita del software I modelli di sviluppo. La industrializzazione del software
Modulo 2 La produzione industriale del software Il ciclo di vita del software I modelli di sviluppo La industrializzazione del software Il software è divenuto un componente essenziale dei prodotti a maggior
Ingegneria del Software
Ingegneria del Software Obiettivi della lezione: Definire cosa si intende per Ingegneria del Software Discutere i concetti di prodotto software e di processo software Spiegare il concetto di visibilità
Lo sviluppo del progetto informatico
Lo sviluppo del progetto informatico Il progetto Il controllo di qualità Le qualità per i prodotti di software Le figure professionali La metodologia La conoscenza degli obiettivi L analisi La progettazione
Software Testing. Esercizi proposti. Esercizi di Testing 1
Software Testing Esercizi proposti Esercizi di Testing 1 Esercizi proposti Una delle prove obbligatorie per sostenere l esame di Ingegneria del Software 2 è lo svolgimento di un esercizio pratico di testing
Materiale didattico. Sommario
Diploma Universitario in Ingegneria Informatica Corso di Ingegneria del Software Docente: ing. Anna Rita Fasolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
Corso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca [email protected] 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 2.4 Comparazione dei modelli 2.5
PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI
PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI ATTIVITA CHE ESAMINEREMO: 1. ANALISI PRELIMINARE identificazione problema / opportunita analisi di utenti, fabbisogni, requisiti, obiettivi, ecc. DOCUMENTO
Piano dei Test e Collaudo del software Titolo Documento
Controllo delle copie Il presente documento, se non preceduto dalla pagina di controllo identificata con il numero della copia, il destinatario, la data e la firma autografa del Responsabile della Documentazione,
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi
Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per
3. Ciclo di Vita e Processi di Sviluppo
3. Ciclo di Vita e Processi di Sviluppo come posso procedere nello sviluppo? Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 3. Ciclo di Vita e Processi di
Fasi di revisione del progetto
Fasi di revisione del progetto Revisione dei requisiti (comunicazione e pianificazione) Revisione della specifica architetturale Revisione della codifica e collaudo Accettazione (esame finale) Documentazione
PROGETTARE SISTEMI INFORMATIVI. Fasi e relativi approcci
PROGETTARE SISTEMI INFORMATIVI Fasi e relativi approcci OBIETTIVI 1. Descrivere un approccio generale per pianificare e impostare il progetto di un S.I. 2. Identificare i passi fondamentali 3. Illustrare
Progettazione di circuiti integrati
Architetture e Reti logiche Esercitazioni VHDL a.a. 2003/04 Progettazione di circuiti integrati Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari
Cosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
Sistemi e modelli. Sistemi
Sistemi e modelli Obbiettivo: sviluppare metodologie e strumenti di analisi quantitativa della QoS di sistemi costruzione e soluzione di modelli per la valutazione di prestazioni e affidabilità di sistemi
Correttezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
La tolleranza ai guasti. Concetti generali
Politecnico di Milano La tolleranza ai guasti Concetti generali Docente: William Fornaciari Politecnico di Milano [email protected] www.elet.polimi.it/~fornacia Sommario Storia Concetti fondamentali
MATERIALI PER LA DISCUSSIONE
SETTORE TECNOLOGICO MATERIALI PER LA DISCUSSIONE ISTITUTO TECNICO INDIRIZZO ARTICOLAZIONE TELECOMUNICAZIONI INFORMATICA E TELECOMUNICAZIONI ESITI DI APPRENDIMENTO Regolamento, Art. 5 comma 1 Nota: Le Competenze,
Il calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
Modelli e Metodi per la Simulazione (MMS)
Modelli e Metodi per la Simulazione (MMS) [email protected] Programma La simulazione ad eventi discreti, è una metodologia fondamentale per la valutazione delle prestazioni di sistemi complessi (di
Fondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
IC Test & Design for Testability
IC Test & Design for Testability Collaudo (testing) dei sistemi digitali Realizzazione di sistemi digitali (VLSI) Collaudo e verifica Collaudo ideale e collaudo reale Costo del collaudo Ruolo del collaudo
PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:
PIANO DI LAVORO Programmazione Didattica per Competenze Indirizzo Informatica e Telecomunicazioni Articolazione Informatica DOCENTE: ITP: MATERIA: CLASSE: ORE SETTINALI: CANTARELLA ALFREDO NATALE LUIGI
INTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Per dubbi/domande 2 [email protected] Modelli di Cicli
Modularizzazione del software
Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica
SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:
SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i
La simulazione è l'imitazione di un processo o di un sistema reale per un
1 2 La simulazione è l'imitazione di un processo o di un sistema reale per un determinato periodo di tempo. La simulazione è l'imitazione di un processo o di un sistema reale per un determinato periodo
Applicativo FRACAS già operativo in azienda industriale con responsabilità totale del ciclo di vita dei prodotti
Applicativo FRACAS già operativo in azienda industriale con responsabilità totale del ciclo di vita dei prodotti L uso del FRACAS (Failure Report Analysis and Corrective Action System) su web, per il miglioramento
Micaela Caserza Magro Università degli Studi di Genova
Micaela Caserza Magro Università degli Studi di Genova La SAFETY è la protezione contro i malfunzionamenti di componenti e sistemi in un impianto E necessario considerare i rischi in modo globale in modo
1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione
1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.
Laboratorio di Progettazione di Sistemi Software Design Patterns
TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali
Livelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente
L'importanza dell'usabilità per i siti Web della PA: rischi e strumenti a supporto della valutazione
L'importanza dell'usabilità per i siti Web della PA: rischi e strumenti a supporto della valutazione Giuseppe Desolda IVU Lab, Dipartimento di Informatica, Università degli Studi di Bari Aldo Moro L importanza
1) Pianificazione di breve termine (budget e scostamenti)
L evoluzione della pianificazione d impresa 1) Pianificazione di breve termine (budget e scostamenti) 2) Pianificazione di lungo termine (anni 50, proiezioni di lungo periodo relative a capacità produttiva,
Fieldbus Foundation e la sicurezza
Fieldbus Foundation Freedom to choose. Power to integrate Fieldbus Foundation e la sicurezza Safety Integrity System La sicurezza Cosa è la sicurezza?... eliminazione dei rischi inaccettabili! Si devono
Collaudo e qualità del software Il testing nel ciclo di vita del software
Il testing nel ciclo di vita del software Relatore Ercole Colonese Roma, Il test nel ciclo di vita del software Temi trattati nel libro Il test nello sviluppo del software Strategia e pianificazione dei
Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1
Modelli di processo Ciclo di vita di un prodotto sw = tutte le fasi che accompagnano tale prodotto dal concepimento dell idea dello stesso fino al suo ritiro Modello di processo = tentativo di organizzare
Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test
Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa
Software Testing. Lezione 2 Livelli di test. Federica Spiga. [email protected]. A.A. 2010-2011 Autori: F.Rabini/F.Spiga
Software Testing Lezione 2 Livelli di test Federica Spiga [email protected] A.A. 2010-2011 Autori: F.Rabini/F.Spiga 1 2 Livelli di test Unit Testing Integration Testing System Testing Unit Testing
INTERAZIONE UOMO-MACCHINA
INTERAZIONE UOMO-MACCHINA Cicli di vita Barbara Rita Barricelli Stefano Valtolina Dipartimento di Informatica Università degli studi di Milano Modelli di Cicli di vita 2 Mostrano come le attività sono
Gestione di progetto: pianificazione
Gestione di progetto: pianificazione Simona Bernardi Corso di Ingegneria del Software 04/ 05 Prof.Susanna Donatelli Introduzione: dove siamo? Gestione di progetto: Pianificazione Monitoraggio e controllo
Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
lezione ERGONOMIA DESIGN Human-Centered Design
Corso di Laurea in Disegno Industriale - 2 anno LABORATORIO DI ERGONOMIA corso A a.a. 2017-18 prof.ssa Francesca Tosi Tutor: prof.ssa Alessia Brischetto, dott. Mattia Pistolesi lezione & ERGONOMIA DESIGN
Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario
Sistemi RAID 1 Motivazioni Concetti di base Livelli RAID Sommario 2 1 Motivazione L evoluzione tecnologica ha permesso di avere dischi sempre più piccoli e meno costosi E facile equipaggiare un sistema
Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
Organizzazione aziendale Lezione 9 L organizzazione dell impresa Cap. 6. Ing. Marco Greco Tel
Organizzazione aziendale Lezione 9 L organizzazione dell impresa Cap. 6 Ing. [email protected] Tel.0776.299.3641 Stanza 1S-28 La produzione La produzione è la fase dove, dato un input I, una funzione di
Rappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
