Verifica e validazione della qualità del sw



Похожие документы
Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure

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

Collaudo e qualità del software Quali test eseguire

Ingegneria del Software 21. Verifica e validazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Sistemi Informativi I Lezioni di Ingegneria del Software

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

Qualità del software. Tecniche di Programmazione 2009/10. Giovanni A. Cignoni contenuti. definizione di qualità

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

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

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

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

Parte 4. Progettazione di una simulazione

Governare il processo della sicurezza

Automazione Industriale (scheduling+mms) scheduling+mms.

INTRODUZIONE ALLO STUDIO DEI SISTEMI DI CONTROLLLO AUTOMATICO: APPROCCIO CLASSICO APPROCCIO MODERNO

Norme per l organizzazione - ISO serie 9000

ISTITUTO TECNICO ECONOMICO MOSSOTTI

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

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

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

ISO 9000:2000 Assicurazione della qualità Parte della gestione per la qualità mirata a dare fiducia che i requisiti per la qualità saranno

Presidenza della Giunta Ufficio Società dell'informazione. ALLEGATO IV Capitolato tecnico

UNI EN ISO 9001:2008 Sistemi di Gestione per la Qualità: requisiti e guida per l uso

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Concetti di base di ingegneria del software

Sistemi Operativi. 5 Gestione della memoria

Piano di gestione della qualità

Generazione Automatica di Asserzioni da Modelli di Specifica

Database. Si ringrazia Marco Bertini per le slides

La Metodologia adottata nel Corso

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_3 V2.0. Processi. Scelta dei processi adeguati

Scheda per la Valutazione della Assicurazione della Qualità dei CdS

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Allegato A al CCNL 2006/2009 comparto Ministeri

PASSAGGIO ALLA ISO 9000:2000 LA GESTIONE DELLE PICCOLE AZIENDE IN OTTICA VISION

Trasformazione dei Processi in Progetti DIB 1

Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici. Prof. Franco Sirovich Dipartimento di Informatica Università di Torino

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Progettazione dei Sistemi di Produzione

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

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A Autori: F.Rabini/F.Spiga

Corso formazione su Sistema di gestione della qualità. Standard ISO 9001:2000/2008 Vision 2000

Programmazione per la disciplina Informatica PROGRAMMAZIONE DI MATERIA: INFORMATICA SECONDO BIENNIO AMMINISTRAZIONE FINANZA E MARKETING

PROCEDURA OPERATIVA PER LA GESTIONE DELLO SVILUPPO DEL SOFTWARE BM-33T

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Architetture software

LA CERTIFICAZIONE. Dr.ssa Eletta Cavedoni Responsabile Qualità Cosmolab srl Tortona

Linguaggi e Paradigmi di Programmazione

EUROPEAN PROJECT MANAGEMENT QUALIFICATION - epmq. Fundamentals. Syllabus

La progettazione centrata sull utente nei bandi di gara

Azione su un prodotto-servizio NC, per renderlo conforme ai requisiti

Verifica di ipotesi e intervalli di confidenza nella regressione multipla

Azienda Sanitaria Firenze

Gestione Operativa e Supporto

SPC e distribuzione normale con Access

Ingegneria del Software

Gestione parte IIC. Diagrammi di Gantt. Esempio. Schemi di scomposizione delle attività

LINGUAGGI DI PROGRAMMAZIONE

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

La gestione manageriale dei progetti

PROGETTO TECNICO SISTEMA DI GESTIONE QUALITA IN CONFORMITÀ ALLA NORMA. UNI EN ISO 9001 (ed. 2008) n. 03 del 31/01/09 Salvatore Ragusa

ISO/IEC 2700:2013. Principali modifiche e piano di transizione alla nuova edizione. DNV Business Assurance. All rights reserved.

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

I PROBLEMI ALGEBRICI

PROGRAMMAZIONE DIDATTICA ANNUALE. SETTORE TECNOLOGICO Indirizzo: Elettrotecnica ed Elettronica

11. Evoluzione del Software

PROGRAMMA DI LABORATORIO TRATTAMENTO TESTI

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Certificazione ISO Il sistema di gestione per la qualità

I SISTEMI DI GESTIONE DELLA SICUREZZA

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

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

figure professionali software

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

I modelli normativi. I modelli per l eccellenza. I modelli di gestione per la qualità. ! I modelli normativi. ! I modelli per l eccellenza

03. Il Modello Gestionale per Processi

Le fattispecie di riuso

Progettazione dei Sistemi Produttivi. Sergio Terzi

Gestione di progetti (software)

L insegnamento del Laboratorio di Fisica. Alcune considerazioni didattiche

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

MANUALE DELLA QUALITÀ SEZIONE 5.1: FUNZIONAMENTO DEL SISTEMA DI GESTIONE PER LA QUALITÀ

MANUALE DELLA QUALITÀ SEZIONE 5.1: FUNZIONAMENTO DEL SISTEMA DI GESTIONE PER LA QUALITÀ

GESTIONE DELLA QUALITÀ DELLE FORNITURE DI BENI E SERVIZI

Транскрипт:

Verifica e validazione della qualità del sw Tecniche di Programmazione Lez. 07 Università di Firenze a.a. 2009/10, I semestre 1/40 contenuti Termini e definizioni Tecniche rispetto alle caratteristiche di Q Walkthrough e inspection Progettazione delle prove Valutazione delle prove 2/40 ottenere la qualità Seguire la ricetta (volta per volta) Definire bene e controllare Analisi e definizione dei requisiti Modelli per la qualità del software Strumenti per la definizione dei sistemi Metriche per definire livelli qualitativi Controllo dello sviluppo Vincoli contrattuali e aziendali di assicurazione della q. Verifiche e prove, come strumenti 3/40 - http://www.di.unipi.it/~giovanni/ 1

verifica e validazione Ingegneria del software (Bohem) Are we building the product right? Are we building the right product? ISO Conferma, a fronte di evidenze oggettive, che i requisiti sono stati soddisfatti Conferma, a fronte di evidenze oggettive, che i requisiti per un uso o un applicazione specifici sono stati soddisfatti 4/40 collaudo Validazione finale del sistema software Interna Alfa-test o precollaudo Svolta da chi ha sviluppato il sistema Esterna Beta-test o collaudo Svolta dal committente o dall utenza Può essere formale, per accettazione 5/40 termini notevoli Errore (mistake) Causa (umana), può non essere interessante Difetto (fault, bug) Introdotto da un errore, magari latente, va eliminato Malfunzionamento (failure) Prodotto da un difetto, di solito si traduce in un danno Scostamento (error) Differenza fra comportamento osservato e desiderato 6/40 - http://www.di.unipi.it/~giovanni/ 2

il primo bug (documentato) 1945, sul Mark II Trovato da G.M. Hopper 7/40 metodi di V&V statici e dinamici Metodi statici Non prevedono l esecuzione del codice Quasi sempre svolte come attività di verifica Adottati per i componenti Metodi dinamici Comportano l esecuzione del codice Attività di verifica o di validazione Adottati per i componenti o per il sistema (validazione) 8/40 metodi statici V&V senza esecuzione del codice Metodi manuali Basati sulla lettura del codice (desk-check) Più comunemente usati Più o meno formalmente documentati Metodi formali Basati sulla prova di proprietà Assistiti da strumenti Fertile terreno di ricerca risultati nella generazione di codice) 9/40 - http://www.di.unipi.it/~giovanni/ 3

perché i metodi statici Pratici, spesso intuitivi, generalizzabili Indispensabili per alcune caratteristiche di q. Convenienza economica Costi proporzionali alle dimensioni del codice Bassi costi di infrastruttura (desk-check) Buona prevedibilità dei risultati Necessari in alcuni casi (UKDef Std. 00-55) Efficaci per classi di errori Memory leak Dead/livelock, priority inversion,... 10/40 recensione del codice Inspection e Walkthrough Metodi pratici Basati sulla lettura del codice Dipendenti dall esperienza dei verificatori Per organizzare le attività di verifica Per documentare l attività e i suoi risultati Metodi complementari Inspection più pratico e rapido Walktrhrough più collaborativo e formativo 11/40 inspection Caratteristiche Eseguire una lettura mirata del codice Verificatori diversi dai programmatori Focalizzata: caratteristiche di qualità, error guessing Organizzazione Pianificazione Definizione della lista di controllo Lettura del codice Correzione dei difetti Documentazione 12/40 - http://www.di.unipi.it/~giovanni/ 4

walkthrough Caratteristiche Eseguire una lettura critica del codice Gruppi misti ispettori/sviluppatori Percorrere il codice simulandone l esecuzione Organizzazione Pianificazione Lettura del codice (separata) Discussione Correzione dei difetti Documentazione 13/40 metodi dinamici (prove) V&V tramite esecuzione del codice Prevedono l esecuzione del software Ambiente controllato, input e output definiti Come verifica (sulle componenti) Come validazione (sul sistema) Idea generale tanto intuitiva quanto complessa Progettazione, esecuzione, analisi, debugging Costi e risultati difficili da stimare e rispettare 14/40 caratteristiche Una prova non è (quasi) mai definitiva È definita e ripetibile I suoi risultati non sono estendibili Evidenzia malfunzionamenti Le prove sono costose Occorrono tempo, macchine, persone È necessario un processo definito Richiedono attività di ricerca dei difetti 15/40 - http://www.di.unipi.it/~giovanni/ 5

elementi di una prova Caso di prova (o test case) Una tripla <input, output, ambiente> Batteria di prove (o test suite) Un insieme (una sequenza) di casi di prova Spesso organizzata per condividere/riusare l ambiente Procedura di prova Le procedure (automatiche e non) per eseguire, registrare analizzare e valutare i risultati di una batteria di prove 16/40 ambiente di prova Ripetibilità della prova Ambiente definito (hardware, condizioni, ) Casi di prova definiti Procedure definite Strumenti Driver Stub comp. fittizia per pilotare comp. fittizia per sostituire Registrazione e analisi dei dati di prova 17/40 conduzione di una prova Definizione dell obiettivo della prova Progettazione della prova Realizzazione dell ambiente di prova Esecuzione della prova Analisi dei risultati Valutazione della prova 18/40 - http://www.di.unipi.it/~giovanni/ 6

progettazione delle prove Criteri funzionali A scatola chiusa (black box) Basati sulla conoscenza delle funzionalità Funzionalità, affidabilità, efficienza Criteri strutturali A scatola aperta (white box) Basati sulla conoscenza del codice Obiettivo (generale) di esercitare il software Ricerca di difetti 19/40 criteri funzionali Generazione dei casi di prova Obiettivi Ridurre i casi di prova Assicurare la significatività delle prove Non fare ipotesi sul codice Applicabilità Collaudo Progettazione anticipata delle prove 20/40 selezione casuale o statistica Modello dei dati d ingresso Modello dei valori Modello operazionale della loro distribuzione Progettazione Batterie di prove corrispondenti al modello Nei valori e nella distribuzione Variabili casuali, non valori a caso 21/40 - http://www.di.unipi.it/~giovanni/ 7

valori di frontiera Modello dei dati di ingresso Partizionato in insiemi con frontiera definita Insiemi di dati validi e non validi Progettazione Prove su ogni limite Valori corrispondenti, inferiori e superiori Esercitare il trattamento dei casi limite 22/40 partizioni equivalenti Modello dei dati di ingresso Insiemi con comportamento equivalente Selezione di valori rappresentanti Progettazione Prove su ogni valore rappresentante Scelta opportunistica dei rappresentanti Esercitare i comportamenti del sistema 23/40 generazione sintattica Modello dei dati di ingresso Definizione sintattica degli ingressi Sequenze, iterazioni e selezioni di simboli Progettazione Batterie di prove come frasi del linguaggio Batterie su frasi valide e non valide Metodo strumentale (sel. casuale) 24/40 - http://www.di.unipi.it/~giovanni/ 8

grafi causa-effetto Modello dei dati d ingresso Fatti elementari di ingresso e uscita Specifica booleana come causa-effetto Progettazione Specifica e validazione dei requisiti Casi di prova rappresentativi dei fatti elementari Metodo strumentale (partizioni) 25/40 criteri strutturali Generazione dei casi di prova Obiettivi Ridurre i casi di prova Assicurare la significatività delle prove Sfruttando la conoscenza del codice Applicabilità Verifica delle componenti Necessitano di codice e strumenti 26/40 lcsaj Linear Code Sequence And Jump Struttura elementare di codice Identificabile in ogni programma Progettazione Identificazione delle LCSAJ: <start, end, jump> Casi di prova per esercitare le LCSAJ Indipendente dal linguaggio (liv. binario) 27/40 - http://www.di.unipi.it/~giovanni/ 9

transizione di stati Automi a stati finiti Modello della componente Stati, eventi che inducono transizioni, azioni Progettazione Realizzazione del modello Casi di prova per esercitare stati e transizioni Uso a livelli d astrazione diversi 28/40 grafi di flusso Grafo di flusso Definisce la struttura del codice Ottenuto a partire dal codice (con strumenti) Esercitare la maggior parte del codice Comandi, condizioni, decisioni Cammini, n-cicli Assegnamenti e usi Assegnamenti e usi in espressioni e calcoli 29/40 funzionali vs strutturali Generalità degli approcci Rispetto alla validità dei risultati Rispetto alle caratteristiche da provare Rispetto ai costi da sostenere Dipendenze e implicazioni I criteri funzionali non dipendono dal codice I criteri strutturali sono utili per valutare le prove Uso congiunto (gray box) Progettazione funzionale Valutazione strutturale 30/40 - http://www.di.unipi.it/~giovanni/ 10

prove di integrazione Costruzione e verifica del sistema Realizzazione parallela delle componenti Realizzazione e verifica indipendenti In condizioni ottime, l integrazione è banale (big bang) Problemi Errori nella realizzazione delle componenti Modifica delle interfacce Cambiamenti nei requisiti Riuso di componenti Progettazione conseguente delle prove 31/40 strategie di integrazione Incrementale bottom-up o top-down Verifica delle funzionalità vs simulazione Sbilanciamento nell esercizio delle componenti Disponibilità dei componenti Ordine di realizzazione (c. iterativo/evolutivo) Prima i componenti critici (alto rischio di difetti) Costi della realizzazione di driver e stub Inutilità dell esercizio di driver e stub Componenti coese implicano stub complicati Sistemi accoppiati implicano molti driver Sfruttamento di driver naturali e sicuri (GUI) 32/40 economia delle prove Costi vs confidenza Le prove devono fornire adeguata confidenza Come strumento di sviluppo interno Come strumento di collaudo e accettazione La confidenza delle prove costa Valutazione di una prova Qualità di una prova in sé Raggiungimento della confidenza desiderata Stima della maturità del prodotto Certificazione dei risultati 33/40 - http://www.di.unipi.it/~giovanni/ 11

copertura Quanto la prova esercita il prodotto Copertura del 100% non è assenza di difetti Non è detto che il 100% sia raggiungibile Funzionale, su funzioni e argomenti Requisiti, punteggio funzionale Profili operazionali, valori di frontiera, partizioni,... Strutturale LCSAJ, stati, transizioni Nodi del grafo di flusso, comandi decisioni, n-cicli,... 34/40 fallimenti provocati e mutanti Fallimenti provocati Seminare difetti per ritrovarli con le prove Indicatore di adeguatezza : R = d. trovati / d. seminati Stima della maturità (difettosità residua) Mutanti Programmi costruiti modificando l originale Mutanti morti (non passano le prove) e vivi I vivi sono tali per prove inadeguate o per equivalenza Indicatore di adeguatezza: S = morti / (mutanti-eq) NB: l equivalenza è indecidibile 35/40 certificazione dei risultati Oracolo Lo strumento che genera i risultati attesi...... necessari per certificare i risultati delle prove In particolare quando i casi di prova sono generati Criteri generali Basati sulle specifiche funzionali Basati sulla semplificazione delle prove Basati su componenti indipendenti Costi e implicazioni sull adeguatezza delle prove 36/40 - http://www.di.unipi.it/~giovanni/ 12

risultati dalle specifiche Risultati ricavati dalle specifiche Specifiche formali (generazione di invarianti) Specifiche eseguibili (back-to-back) Es.: grafi causa-effetto Inversione delle funzioni Quando l inversa è più facile A volte disponibile fra le funzionalità Limitazioni per difetti di approssimazione 37/40 semplificazione dei dati Semplificazione dei dati d ingresso Provare le funzionalità su dati semplici Risultati noti o calcolabili con altri mezzi Ipotesi di comportamento costante Semplificazione dei risultati Accontentarsi di risultati plausibili Tramite vincoli fra ingressi e uscite Tramite invarianti sulle uscite 38/40 programmi indipendenti Versioni precedenti dello stesso sistema sw Disponibili (per funzionalità non modificate) Prove di non regressione Versioni multiple indipendenti Programmi pre-esistenti (back-to-back) Sviluppate ad hoc Semplificazione degli algoritmi 39/40 - http://www.di.unipi.it/~giovanni/ 13

riferimenti H. Zhu e altri, Software Unit Test Coverage and Adequacy, ACM Computing Surveys, 1997 Standard for Software Component Testing, British Computer Society, SIGIST, 1997 G.A. Cignoni, P. De Risi, Il test e la qualità del software, Il Sole 24 Ore, 1998 40/40 - http://www.di.unipi.it/~giovanni/ 14