Docente responsabile: Mauro Pezzè
Obiettivi e contenuti
Il corso introduce principi, approcci e tecniche per il controllo della qualità del software. Dà un quadro completo delle complementarietà e differenze tra le varie tecniche, introduce gli principi e tecniche di base, ne mostra l'applicabilità per la soluzione di problemi rilevanti e ne illustra l'organizzazione nel contesto di un processo coerente.
Programma
- Il controllo della qualità del software, principali principi.
- Modelli strutturali del software.
- Analisi di flusso dei dati.
- Esecuzione simbolica
- Verifica a stati finiti
- Tecniche di test funzionale e combinatorio avanzate
- Test basato su modelli formali
- Test basato su analisi di flusso
- Tecniche di analisi statica
- Tecniche di analisi dinamica
- Automazione e documentazione del processo di test
Risultati di apprendimento previsti
Al termine del corso, lo studente sarà in grado di definire un processo di qualità per un progetto di dimensioni rilevanti trovando il giusto compromesso tra le diverse tecniche disponibili, patrimonio essenziale di manager della qualità e responsabili di processo.
Prerequisiti
Conoscenze di programmazione ed ingegneria del software.
Aims and contents
The course introduces principles, approaches and technique for managing software quality. It provides a coherent framework to understand complementarities and differences among different approaches to software test and analysis. It introduces the principles and the techniques for software testing and analysis and shows their applicability for solving relevant problems. It shows how to organize a coherent quality process.
Program details
- Managing software quality, main principles
- Structural models of software
- Data flow analysis
- Symbolic execution
- Finite state verification
- Functional and combinatorial approaches
- Model based testing
- Data flow testing
- Static analysis
- Dynamic analysis
- Test automation and documentation.
Learning outcomes
The student will be able to appreciate differences and complementarities of the different approaches to software quality and will be able to design and manage a software quality process, as a quality or a project manager.
Prerequisites
Basic knowledge of programming and software engineering.
Tipo esame:
Tipo valutazione: