Anno di corso: 1

Anno di corso: 2

Crediti: 6
Crediti: 12
Tipo: A scelta dello studente
Crediti: 33
Tipo: Lingua/Prova Finale

QUALITA' DEL SOFTWARE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2017/2018
Anno di corso: 
1
Anno accademico di erogazione: 
2017/2018
Tipo di attività: 
Obbligatorio a scelta
Crediti: 
6
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
48
Prerequisiti: 

Conoscenze di base di programmazione ed ingegneria del software sono necessarie per comprendere alcuni principi e tecniche e per apprezzare gli elementi di automazione del processo di qualità che sono parte integrante del processo.

Moduli

Metodi di valutazione

Tipo di esame: 
Orale
Modalita' di verifica dell'apprendimento: 

È previsto un esame orale finale sul programma del corso. È possibile svolger eun piccolo progetto complementare che dà un punteggio aggiuntivo. Chi frequenta può sostituire l'esame orale risolvendo le prove proposte durante il corso e discutendo la soluzione in aula.

Valutazione: 
Voto Finale

Obiettivi formativi

Il corso approfondisce le conoscenze necessarie per comprendere a fondo principi, tecniche e organizzazione del processo di qualità, elementi di base della formazione di test designer, quality manager e project manager. Al termine del corso, lo studente sarà in grado di definire ed implementare un piano di qualità per progetti software complessi e avrà le conoscenze che caratterizzano un buon quality e project manager.

Contenuti

La qualità di un sistema software, che può essere definita come il grado con cui un sistema software soddisfa le proprietà richieste e che rappresenta un elemento essenziale del processo di sviluppo del software, non può essere garantita a priori, ma deve essere verificata durante e dopo lo sviluppo. Questo corso introduce le principali tecniche di test e analisi del software che possono essere utilizzate per identificare difetti e verificare la qualità del software. Il corso introduce i principi generali e le tecniche di base, ne mostra l’applicabilità per la soluzione di problemi rilevanti, fa capire le complementarietà e differenze tra le varie tecniche e ne illustra l’organizzazione nel contesto di un processo coerente.

Programma esteso

1 Problemi e rilevanza della qualità nel processo di sviluppo e manutenzione, Convalida e verifica, Principi di base
2 Modelli finiti, astrazione e analisi data flow
3 Esecuzione simbolica e verifica a stati ifniti
4 "Test funzionale, strutturale e test basato su modelli di flusso "
5 "Test basato su modelli e su difetti, analisi mutazionale"
6 "Esecuzione dei casi di test, ispezione e code review, analisi del software"
7 Processo, pianificazione e monitoraggio
8 "Test di integrazione, test basato sui componenti, test di sistema e accettazione, test di regressione e test di proprietà non funzionali"

Bibliografia consigliata

Mauro Pezzè and Michal Young, Software Testing and Analysis, process, principle and techniques, John Wiley 2007.

Metodi didattici

Le modalità didattiche comprendono lezioni di approfondimento, esercizi e attività progettuali. Alle lezioni di approfondimento sono associati esercizi proposti agli studenti in anticipo e risolti in aula. Piccole attività di progetto permettono di approfondire aspetti relativi all’automazione delle attività di test e analisi e apprezzare così l’utilità dei principi e delle tecniche apprese a lezione.