TESTING E VERIFICA DEL SOFTWARE | Università degli studi di Bergamo - Didattica e Rubrica

TESTING E VERIFICA DEL SOFTWARE

Attività formativa monodisciplinare
Codice dell'attività formativa: 
21056

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2021/2022
Insegnamento (nome in italiano): 
TESTING E VERIFICA DEL SOFTWARE
Insegnamento (nome in inglese): 
SOFTWARE TESTING AND CHECK
Tipo di attività formativa: 
Attività formativa Affine/Integrativa
Tipo di insegnamento: 
Opzionale
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno di corso: 
2
Anno accademico di offerta: 
2022/2023
Crediti: 
6
Responsabile della didattica: 
Mutuazioni

Altre informazioni sull'insegnamento

Modalità di erogazione: 
Didattica Convenzionale
Lingua: 
Italiano
Ciclo: 
Secondo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
48
Ambito: 
Attività formative affini o integrative
Prerequisiti

Sapere i principi base delle programmazione (special modo Java) e dell'ingegneria del software.

Obiettivi formativi

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,

Contenuti dell'insegnamento

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
Analisi statica del codice

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

Metodi didattici

lezioni frontali con esercitazioni

Modalità verifica profitto e valutazione

Prova pratica in laboratorio in cui è richiesto di svolgere alcuni esercizi pratici e teorici e prova orale. All'orale, lo studente dovrà presentare un progetto da concordare con li professore.

Prerequisites

Basic knowledge of programming (especially Java) and software engineering.

Educational goals

Basic undestanding fo the importance of the validation and verification of software systems. Mastering techniques and methodologies for testing and verification of software.

Course content

1 Introduction
Testing and verification processes

2 Testing
Theoretical framework
Program-based testing (coverage criteri)
Test execution

3 Code verification
Intro to logic and verification
Design by Contract
JML
Static analysis of the source code

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

Teaching methods

front lectures with exercises in the laboratory

Assessment and Evaluation

Exercises in lab in which the student applies all the techniques to several theoretical and practical exercises and oral questions. The student must present also a project (previous agreement with the teacher)