Sapere i principi base delle programmazione (special modo Java) e dell'ingegneria del software.
Familiarizzare con le fasi di validazione e verifica di sistemi e software all'interno dello sviluppo del software. Apprendere tecniche e metodologie per il testing e la verifica del software,
1 Introduzione
Concetti generali
Processo di test e di verifica
2 Testing
Ruolo del testing
Fondamenti teorici
Program-based testing (creiteri di copertura)
Esecuzione dei test
3 Verifica del codice
Concetti generali sulla logica
Concetti generali sulla verifica
Design by Contract
JML
4 Verifica tramite Model Checking
Linear-time Temporal Logic (LTL)
Computation Tree Logic (CTL)
Algoritmi di Model Checking
AsmetaSMV
5 Testing Model-based
Partition testing e testing combinatoriale
Testing basato su specifiche (FSM)
Concretizzazione dei test
Software Testing and Analysis: Process, Principles and Techniques
Mauro Pezze, Michal Young
lezioni frontali con esercitazioni
Prova pratica in laboratorio della durata di 4h in cui è richiesto di svolgere un esercizio per ogni argomento (testing, dbc, verifica di programmi, model checking, MBT, combinatorial testing) e prova orale.
Basic knowledge of programming (especially Java) and software engineering.
Basic undestanding fo the importance of the validation and verification of software systems. Mastering techniques and methodologies for testing and verification of software.
1 Introduction
Testing and verification processes
2 Testing
Theoretical framework
Program-based testing (coverage criteri)
Test execution
3 Code verification
Intro to logics and verification
Design by Contract
JML
4 Verification by model checking
Linear-time Temporal Logic (LTL)
Computation Tree Logic (CTL)
Model Checking Algorithms
AsmetaSMV
5 Testing Model-based
Partition testing and combinatorial testing
Specification-based (FSM) testing
Test concretization
Software Testing and Analysis: Process, Principles and Techniques
Mauro Pezze, Michal Young
front lectures with exercises in the laboratory
Exercices in lab (for around 4 h) in which the student applies all the techniques to a case study (testing, dbc, program verification, model checking, MBT, combinatorial testing) and oral questions.