Lo scopo del corso è 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.
Competenze acquisite
Al termine 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
– 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
Testi Consigliati
– slide fornite dal docente
Modalità di Verifica
– Prova scritta con domande aperte e scelta multipla