Verifica e convalida del software

A.A. 2021/2022
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
Obiettivo dell'insegnamento è approfondire le tecniche di convalida (cioè determinare se un prodotto software corrisponde alle aspettative del cliente) e verifica (cioè determinare se un prodotto software corrisponde alle specifiche raccolte dall'analista): particolare attenzione è posta sulle tecniche di analisi statica, testing e analisi formale.
Risultati apprendimento attesi
Lo studente sarà in grado di usare in maniera evoluta e critica alcuni diffusi framework di testing e analisi, padroneggiandone i fondamenti metodologici e teorici.
Programma e organizzazione didattica

Edizione unica

Periodo
Secondo semestre
Programma
Gli argomenti principali trattati durante il corso sono:

- Testing e JUNIT 4 and JUNIT 5
- Parametric test
- Testare le eccezioni
- I modelli per estensioni di JUNIT
- Raggruppamenti
- CustomAssertion e altri Verify Patterns
- Dependency Injection
- Acceptance Test con Cucumber
- Static Analysis
- Mutation Analysis
- Property Based Testing
- Model Checking con Java PathFinder
- Analisi della concorrenza con Java PathFinder
- Symbolic Java PathFinder
- Java Modelling Language
Prerequisiti
Conoscenza e capacità di comprensione della terminologia dell'ingegneria del software e delle tecniche di base di gestione del processo di sviluppo del software, di progettazione del software.

È perciò fortemente consigliato il superamento di un esame di Ingegneria del software.
Metodi didattici
L'insegnamento viene svolto mediante lezioni frontali. Al termine di ogni lezione vengono dati agli studenti dei compiti a casa che vengono ritirati e analizzati all'inizio della lezione successiva.
Materiale di riferimento
Vengono fornite le slide presentate a lezione e repository con il codice presentato e discusso a lezione. È disponibile inoltre una dispensa collaborativa presente online.

Il materiale è disponibile a partire dal sito del corso: https://homes.di.unimi.it/bellettini/sito/vc.html
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di una prova orale.
Durante la prova orale viene chiesto ai candidati di preparare e discutere un seminario su un argomento concordato con aspetti sia tecnologici che teorici collegato agli argomenti trattati durante le lezioni. Inoltre durante l'esposizione al candidato può essere chiesto di rispondere a domande sugli argomenti del programma.

Al termine viene formulata la valutazione complessiva, espressa in trentesimi, tenendo conto dei seguenti parametri: grado di conoscenza degli argomenti e delle tecnologie, capacita' di applicare le conoscenze a problemi concreti, capacita' di ragionamento critico, chiarezza espositiva e proprieta' di linguaggio.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente/i
Ricevimento:
su appuntamento
ufficio 5006 Via Celoria 18 - Milano
Ricevimento:
Su appuntamento
Uff. 5004, Via Celoria 18, Milano