Prerequisiti:
Conoscenze di base relative al processo di sviluppo del
software, modellazione UML
Obiettivi di apprendimento:
Il corso fornisce le conoscenze necessarie per organizzare
e svolgere una fase di test tenendo conto sia del tipo di
applicazione sia del tipo di verifica o validazione da svolgere.
Vengono inoltre fornite le informazioni necessarie all'utilizzo
dei principali strumenti automatici applicabili durante
la fase di test utili sia alla sua pianificazione, sia alla
derivazione dei casi di test da eseguire.
Descrizione:
Il corso introduce ai concetti basilari di verifica e validazione
di prodotti software, evidenziando il ruolo della fase di
test all'interno del processo di sviluppo. Vengono presentate
le principali tecniche di verifica statica e dinamica e
i metodi e le misure applicabili durante la fase di test.
Programma
Introduzione e concetti base:
Definizioni base.
Obiettivi della fase di test.
Pianificazione della fase di test.
Misurazione e valutazione della fase di test.
Principali tecniche di verifica statica:
Ispezione e Revisione del codice.
Verifica di modelli.
Verifica basata sul flusso dei dati:
Criteri di copertura.
Tecniche applicabili.
Verifica e validazione utilizzando specifiche e test di conformitą:
Principali metodi di verifica basata sull'uso di specifiche.
Utilizzo di macchine a stati finiti o di sistemi di transizione etichettati.
Affidabilitą del Software:
Definizione e concetti di base.
Approccio SRET.
Verifica e valutazione di software sviluppato utilizzando linguaggi orientati agli oggetti:
Metodi applicabili.
Problemi tipici.
Verifica e valutazione di basata su modelli:
Utilizzo di diagrammi di stato.
Utilizzo di scenari.
Verifica e valutazione di software basato su componenti e di sistemi orientati ai servizi:
Definizioni e concetti di base.
Ore lezione: 32 Ore esercitazione: 16
Bibliografia
Articoli recenti apparsi su conferenze e riviste (distribuiti
a lezione).
Capitoli scelti dai seguenti testi:
Mauro Pezzè and Michael Young, Software Test and Analysis:
Process, Principles, and Techniques John Wiley & Sons, 2007.
Michael R. Lyu, Handbook of Software Reliability Engineering
IEEE Computer Society Press and McGraw-Hill Book Company.