Università degli studi dell'Insubria

VERIFICA E CONVALIDA DEL SOFTWARE

A.A. di erogazione 2015/2016

Laurea Magistrale in INFORMATICA
 (A.A. 2015/2016)

Docenti

L'insegnamento è condiviso, tecnicamente "mutuato" con altri corsi di laurea, consultare il dettaglio nella sezione Mutuazioni
Anno di corso: 
1
Tipologia di insegnamento: 
Caratterizzante
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Crediti: 
6
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
48
Dettaglio ore: 
Lezione (48 ore)

Obiettivi dell’insegnamento e risultati di apprendimento attesi
Il corso ha l’obiettivo di fornire una panoramica dei principali approcci di verifica e convalida, coprendo non solo quei temi ormai consolidate, ma anche introducendo alcune delle tendenze più significative della ricerca in questo contesto. Durante lo svolgimento delle lezioni, gli argomenti verranno affrontati sia in modo teorico che pratico, attraverso la presentazione di strumenti specifici (per ciascun metodo introdotto). Questo approccio permetterà di trasferire agli studenti sia la conoscenza teorica delle tecniche sia la capacità di applicare tali tecniche a casi di studio reale.
Inoltre, per ciascuna tipologia di tecnica di convalida e verifica verranno presentate le basi teoriche e le motivazioni, con l’obiettivo di fornire allo studente gli strumenti per poter apprendere nuove tecniche, partendo dalle conoscenze acquisite.
Inoltre, la discussione di argomenti avanzati ha lo scopo di affinare l’autonomia di giudizio degli studenti, che potranno confrontarsi con argomenti di ricerca attuali.
Infine, in entrambe le modalità d’esame previste, lo studente avrà la possibilità di mettere alla prova la propria capacità espressiva sia scritta sia orale.
Conoscenza e capacità di comprensione (knowledge and under standing)
Al termine del corso lo studente possiede le conoscenze e le capacità di comprensione necessarie per saper verificare e convalidare un artefatto software dal punto di vista del testing e dell’analisi.
Capacità di applicare conoscenza e comprensione.
Abilità comunicative
Al termine del corso lo studente è in grado di presentare con la corretta terminologia le metodologie, le tecnologie e gli strumenti a supporto per il testing e l’analisi del software. Inoltre è in grado di saper illustrare in maniera compiuta un sistema verificato e convalidato autonomamente. Infine, il corso vuole anche abituare lo studente al linguaggio tecnico del settore, con particolare riferimento alla terminologia in lingua inglese.

Modalità di verifica dell’apprendimento
Il grado di apprendimento viene verificato tramite una prova scritta e lo sviluppo di un progetto, svolto in autonomia dallo studente. Durante il corso sono previste due prove parziali il cui superamento comporta l’esonero dalla prova scritta.
Lo scopo della prova scritta (e delle prove parziali) è quello di verificare l’apprendimento e la comprensione degli elementi relativi ala verifica e convalida dei sistemi software e all’uso degli strumenti a supporto del testing e dell’analisi del software. Le prove scritte (come le prove parziali) consistono di:
- esercizi per la verifica della comprensione e della conoscenza delle tematiche affrontate durante il corso;
- esercizi per la verifica della capacità di utilizzare le metodologie e gli strumenti per testare ed analizzare il sw;
- domande per la verifica delle conoscenze degli aspetti più propriamente concettuali e sull’impatto della verifica e convalida del software a livello di processo di sviluppo di un sistema software.

Lo scopo del progetto è di mettere alla prova le capacità e le conoscenze dello studente nella verifica e convalida di sistemi software. La presentazione del progetto ha l’obiettivo di verificare le capacità comunicative sviluppate dallo studente, sia dal punto di vista tecnico e della terminologia sia dal punto di vista della capacità di saper trasmettere una visione completa e organizzata del lavoro effettuato.
Il voto della prova scritta (o delle due prove in itinere) è espresso in trentesimi, così come il voto del progetto. Il voto finale è determinato dal voto della prova scritta a cui viene applicata una variazione di al massimo tre punti derivante dalla valutazione del progetto.

Prerequisiti: 

È richiesta la conoscenza delle tematiche relative alla costruzione e alle caratteristiche del software e allo sviluppo in linguaggi Java.
È opportuna una buona conoscenza della lingua inglese scritta, che permetta la comprensione del materiale fornito dal docente e di quello disponibile in rete.

##Introduzione alla Verifica e Convalida del Sw. (2 ore)
##Model Checking (teoria + pratica) (8 ore)
- Testing e Debugging (16 ore): ##Finite State Verification
a. Symbolic Execution
b. Testing Funzionale
c. Testing Strutturale
d. Testing Data Flow
e. Testing Fault Based
f. Concetti di Terminazione e Copertura

- Analisi e Ispezione del Software (6 ore): ##Analisi Statica
a. Analisi Dinamica
b. Uso di Checklist

- Strumenti a supporto delle Attività di Testing e Analisi. (8 ore)
- Nuove aree di Ricerca. (4 ore)
- Studio di caso. (4 ore)

- Le slide usate a supporto delle lezioni sono disponibili sul sito dell’e-learning dell’Università.
Sul sito dell’e-learning dell’Università sono anche disponibili link a siti e materiale di interesse.

Testi di riferimento:
- Mauro Pezzè, Michal Young: Software Testing and Analysis: Process, Principles and Techniques, Wiley