Anno di corso: 1

Anno di corso: 2

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

QUALITA' DEL SOFTWARE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2015/2016
Anno di corso: 
1
Anno accademico di erogazione: 
2015/2016
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.