Ingegneria del Software



Documenti analoghi
Collaudo e qualità del software Quali test eseguire

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Introduzione ai Metodi Formali

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

11. Evoluzione del Software

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software.

e-dva - eni-depth Velocity Analysis

Test del Software. Definizione SCOPO LIMITI DEL TEST

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Descrizione di un algoritmo

FONDAMENTI di INFORMATICA L. Mezzalira

Algebra Booleana ed Espressioni Booleane

Esercizi Capitolo 6 - Alberi binari di ricerca

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Quilian. L evoluzione del progetto di strutture intelaiate in calcestruzzo armato. Marzo 2009

Rendering air show e verifica della sincronizzazione

12. Evoluzione del Software

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Il Modello Relazionale

GESTIONE AZIENDALE/GESTIONE DELL INNOVAZIONE E DEI PROGETTI

Esempi di algoritmi. Lezione III

LEAD GENERATION PROGRAM

Introduzione al MATLAB c Parte 2

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Ministero del Lavoro e della Previdenza Sociale

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

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

LA REVISIONE LEGALE DEI CONTI La comprensione

INFORMATICA 1 L. Mezzalira

Un esempio di applicazione della programmazione lineare intera all ingegneria del software: stima del worst-case execution time di un programma

Compilare il primo programma. Primo programma in C. Esercizio Somma due numeri. Compilare il primo programma. Analisi. Analisi

Lezione 8. La macchina universale

13: Il test del software. 13Test.1

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

La Qualità il Controllo ed il Collaudo della macchina utensile. Dr. Giacomo Gelmi

Metriche del software

Configuration Management

Pianificazione e progettazione

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

PROCESSI PRODUTTIVI E LOGISTICA I.T.S.T J.F. KENNEDY - PN

DAL DIAGRAMMA AL CODICE

Excel avanzato. I nomi. Gli indirizzi e le formule possono essere sostituiti da nomi. Si creano tramite Inserisci Nome Definisci

Abstract Data Type (ADT)

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

VERIFICHE PERIODICHE DEL MANTENIMENTO DI REQUISITI IMPIANTISTICI ED IGIENICO AMBIENTALI IN SALA OPERATORIA.

MESA PROJECT ITIS G. Cardano Pavia New Curriculum

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Realizzazione di una classe con un associazione

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

ARTICOLO TECNICO Smart-MED-Parks: il Software

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Ingegneria del Software T

MODULO PER LA GESTIONE DEI RESI

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

CONCETTO DI ANNIDAMENTO

Semantica Assiomatica

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Tecniche di Prototipazione. Introduzione

LE CARTE DI CONTROLLO (4)

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Esercizi su. Funzioni

Ingegneria del Software

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo

Invio SMS. DM Board ICS Invio SMS

Ciclo di vita dimensionale

Appendice III. Competenza e definizione della competenza

Sistemi di misurazione e valutazione delle performance

Calcolatori Elettronici A a.a. 2008/2009

Piano di gestione della qualità

Business Process Management

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

COME VIENE REALIZZATO UN SERVIZIO DI RIORGANIZZAZIONE DEI SISTEMI INFORMATIVI AZIENDALI?

PowerSchedo. Un sistema di supporto alla decisione nel settore dell'oil&gas. For further information:

Introduzione alla Virtualizzazione

Come trattare il risultato di un comando SQL (relazioni) che

Circolare N. 113 del 3 Agosto 2015

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

4 3 4 = 4 x x x 10 0 aaa

SISTEMA INFORMATIVO INPDAP SERVIZI E PROGETTI PER L'INTEGRAZIONE DEL SISTEMA STANDARD DI PRODOTTO PIANO DI QUALITA' DI PROGETTO

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Test di unità con JUnit4

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Il Testing. Ing. Emilio Spinicci 24/03/2002 1

Efficienza, efficacia, economicità

Transcript:

Ingegneria del Software Testing - Tecniche di Collaudo del Software Collaudabilità Un attributo di qualità del software E il grado di semplicità con cui il software può essere collaudato Si compone di Operabilità E legato al livello di correttezza del software Meglio funziona -> è più collaudabile

Si compone di Collaudabilità () Osservabilità E la capacità del sistema a produrre risultati facilmente osservabili Controllabilità E il grado di automazione che si può ottenere per il testing Scomponibilità E il livello di grana che si può ottenere rispetto alle unità di testing atomiche Si compone di Collaudabilità (3) Semplicità (!complessità) E il livello di complessità del sistema Stabilità E il grado di stabilità del codice sorgente (rispetto alle modifiche che si devono apportare) Comprensibilità E il livello di comprensione che si ha del sistema

Caratteristiche di un Collaudo Valido Un collaudo è valido quando: Ha un elevata probabilità di trovare gli errori Non è ridondante E il migliore nella sua categoria Non è né troppo semplice né troppo complesso Tecniche di Collaudo Due tecniche di testing white-box methods black-box methods Methods Strategies 3

White-Box Testing L obiettivo è quello di assicurare che tutti gli statements e le condizioni siano eseguiti almeno una volta Black-Box Testing requirements output input events

White-Box Testing Obiettivi Progettazione dei Test Cases Scoprire malfunzionamenti Criterio In maniera completa Vincoli Con il minimo costo 5

Testing Esaustivo loop < 0 X Semplice programma C di 00 linee di codice Due cicli annidati con costrutti if 0 possibili path! Se se ne eseguissero uno ogni millisecondi ci vorrebbero 370 anni Testing Selettivo Selected path loop < 0 X 6

Path Indipendenti Un path P si dice indipendente rispetto ad un insieme di path {P, P, Pn} se introduce almeno un nuovo insieme di istruzioni o una condizione Complessità Ciclomatica V(G) = numero di decisioni semplici + E il numero di cammini indipendenti di una base E il numero max di collaudi indipendenti 7

Complessità Ciclomatica () E una valutazione quantitativa della complessità logica di un programma Da indicazioni sull attitudine di un modulo a contenere errori modules V(G) modules in this range are more error prone Testing di una Base di Cammini Indipendenti Paths indipendenti: V(G) = Ci sono paths indipendenti 3 5 6 7 8 Path :,,3,6,7,8 Path :,,3,5,7,8 Path 3:,,,7,8 Path :,,,7,,,...7,8 Ora è necessario progettare i test cases che esercitano i path individuati 8

Un Esempio di Path Testing public void calcola(int A, int B, boolean found){ C = A*B/; System.out.println("A = "+A); System.out.println("B = "+B); System.out.println("C = "+C); if(found && C>0){ D = A; E = B/; if (D > E) F = D + E; else F = D-E; } else{ D = A; E = B/; if (D > E) F = D + *E; else F = D-*E; } } } Derivazione dei Casi di Prova. Tracciare il grafo di flusso. Calcolare la complessità ciclomatica 3. Determinare i path indipendenti. Individuare dei casi di prova per i path indipendenti 9

Grafo di Flusso Un nodo per ogni blocco di istruzioni C = A*B/; System.out.println("A = "+A); System.out.println("B = "+B); System.out.println("C = "+C); if if (D > E) F = D + *E; else F = D-*E; 3 3 Grafo di Flusso () Un nodo per ogni condizione semplice Uno per ogni predicato Predicato if(found && C>0) Predicato if(found && C>0) { B; } else { B; } B 3 found C>0 B 5 0

Costrutto ciclico While Grafo di Flusso (3) while(a) i++; 3 3 public void calcola(int A, int B, boolean found){ C = A*B/; System.out.println("A = "+A); System.out.println("B = "+B); System.out.println("C = "+C); } } if(found){ D = A; E = B/; if (D > E) F = D + E; else F = D-E; } else{ D = A; 3 E = B/; } 8 5 if (D > E) F = D + *E; else F = D-*E; 6 7 3 Grafo di Flusso 3 5 D>E 9 9 0 0 8 D>E 6 3 found 7

Complessità Ciclomatica found V(G) = numero di decisioni semplici + = D>E 9 3 5 8 D>E 6 7 0 3 Path Indipendenti P =,,3,8,9,,3 P =,,3,8,0,,3 P3 =,,,5,6,,3 P =,,,5,7,,3 3 5 D>E found 8 6 7 9 0 3 D>E

Casi di Prova Consideriamo il path P =,,,9,0,3, (found) = false (A>B/) (D>E) Test Case Found = false A = B = 0 Strumento per il calcolo automatico dei cammini indipendenti Matrici di Grafi 5 e g f a 3 b c d Connesso al nodo Nodo 3 5 a 3 5 d c g e b f 3

Altre Tecniche di Collaudo Strutturale Collaudo per condizioni Collaudo per flusso dati Collaudo per cicli Cicli semplici Cicli annidati Cicli concatenati Cicli non strutturati Loop Testing Simple loop Nested Loops Concatenated Loops Unstructured Loops

Collaudo per Cicli Test dei cicli semplici Saltare completamente il ciclo Eseguire una sola volta il ciclo Eseguire volte il ciclo Eseguire n-, n ed n+ volte il ciclo, essendo n il numero di iterazioni max Test dei cicli annidati Testare il ciclo più interno come un ciclo semplice e mantenere i cicli esterni ai valori minimi Testare i cicli più esterni come cicli semplici e mantenere quelli interni a valori tipici Test di cicli concatenati Problema dell indipendenza Test di cicli non strutturati? Black-Box Testing 5

Caratteristiche Non è un approccio alternativo alle tecniche white-box, piuttosto è complementare Evidenzia Errori nei requisiti Funzionalità errate o mancanti Errori nei meccanismi di interfacciamento Limiti di performance Limiti di carico massimo Black-Box Testing requirements output input events 6

Metodi di Collaudo Black-Box Metodi basati su grafi Es. grafo degli stati così come percepiti dall esterno Utilizzo delle classi di equivalenza object # Undirected link Directed link (link weight) object # 3 Parallel links object # Node weight (value ) Metodi basati sugli scenari new file is represented as (a) menu select generates (generation time <.0 sec) allows editing of document tex t (b) contains document window Attributes: background color: white text color: default color or preferences Testing delle Applicazioni a Componenti 7

Applicazioni con Componenti Sviluppati Ad-Hoc Si effettuano i livelli di testing tradizionale Identificazione delle unità di testing con i componenti Collaudo Componente Collaudo di Sistema Collaudo di Convalida Collaudo di Integrazione Collaudo Componente Collaudo Componente Applicazioni con Componenti COTS Si effettuano i livelli di testing tradizionale Identificazione delle unità di testing con i componenti Collaudo di Sistema Collaudo di Convalida Collaudo di Integrazione Collaudo Componente Componente COTS Componente COTS Nessun collaudo di unità 8

Applicazioni con Componenti COTS () Tendenza (errata) di presumere che i componenti COTS siano corretti e non debbano essere testati Gli sviluppatori avranno sicuramente fatto molto testing prima di immetterlo sul mercato Il componente COTS è in commercio da anni perciò ho ampie garanzie che sia corretto Un componente COTS viene sviluppato per un sistema generico Le esigenze di un sistema specifico possono evidenziare criticità del componente Applicazioni con Componenti COTS (3) Il caso del razzo Arianne 5, esploso in volo a causa di un errore software Un elemento software ampiamente testato ed utilizzato per il razzo Arianne fallì per un errore di conversione dovuto alla differente piattaforma Esperienza: Mai dare per scontato che un componente COTS, per quanto testato, in un nuovo sistema funzioni correttamente La correttezza di un sistema software può essere minata dall ambiente 9

Applicazioni BB (Web Services) Enterprise Enterprise Virtual Market Enterprise Enterprise Applicazioni BB () Quale testing? Si integrano sistemi e processi esterni Posso fare testing di integrazione? Non è quasi mai possibile perché sollecito funzionalità di sistemi di altre enterprise Si possono costruire in house dei Web Services (fittizzi) che emulano quelli reali esterni e procedere al testing di integrazione Ha senso? E comunque limitato dalle stesse problematiche dell approccio top-down 0

Pressman, cap. Riferimenti Bibliografici Paragrafi [.,.5] U {.6.} http://www.sei.cmu.edu/str/descriptions/cyclomatic_bo dy.html Slides