Anno di corso: 1

Anno di corso: 2

Crediti: 6
Crediti: 6
Crediti: 6
Tipo: A scelta dello studente
Crediti: 12
Tipo: A scelta dello studente
Crediti: 33
Tipo: Lingua/Prova Finale

QUALITA' DEL SOFTWARE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2018/2019
Anno di corso: 
1
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio a scelta
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
48
Prerequisiti: 

programmazione, elementi di ingegneria del software.

Moduli

Metodi di valutazione

Tipo di esame: 
Orale
Modalita' di verifica dell'apprendimento: 

esercizi e questionari proposti online e prova orale

Valutazione: 
Voto Finale

Obiettivi formativi

Il corso approfondisce le conoscenze necessarie per comprendere a fondo principi, tecniche e organizzazione del processo di qualità, elementi di base della formazione di test designer, quality manager e project manager.

Al termine del corso, lo studente sarà in grado di definire e implementare un piano di qualità per progetti software complessi e avrà le conoscenze che caratterizzano un buon quality e project manager.

Dopo il corso lo studente sarà in grado di definire, controllare ed eseguire un piano di qualità per progetti software complessi

Contenuti

Fundamentals of Test and AnalysisSoftware Qualities

Basic Principles
Dependence and Data Flow Models
Symbolic Execution and Proof of Properties
Test Case Selection and Adequacy
Functional Testing
Combinatorial Testing
Data Flow Testing
Model-Based Testing
Fault-Based Testing
Test Execution
Scaffolding
Test Oracles
Program Analysis

The Quality Process
Test and Analysis Plans
Risk Planning
Monitoring the Process
Integration Testing
System Testing
Acceptance Testing
Usability
Regression Testing

Programma esteso

Fundamentals of Test and Analysis
Software Test and Analysis in a Nutshell
Engineering Processes and Verification
Software Qualities
Quality Goals
Dependability Properties
Validation and Verification
Degrees of Freedom
Basic Principles
Dependence and Data Flow Models
Data Flow Analysis
Classic Analyses
Interprocedural Analysis
Symbolic Execution and Proof of Properties
Symbolic State and Interpretation
Compositional Reasoning
Test Case Selection and Adequacy
Adequacy Criteria
Comparing Criteria
Functional Testing
Random versus Partition Testing Strategies
Combinatorial Testing
Pairwise Combination Testing
Catalog-Based Testing
Data Flow Testing
Data Flow Testing Criteria
The Infeasibility Problem
Model-Based Testing
Deriving Test Cases from Finite State Machines
Testing Decision Structures
Deriving Test Cases from Control and Data Flow Graphs
Deriving Test Cases from Grammars
Fault-Based Testing
Mutation Analysis
Fault-Based Adequacy Criteria
Test Execution
From Test Case Specifications to Test Cases
Scaffolding
Generic versus Specific Scaffolding
Test Oracles
Self-Checks as Oracles
Capture and Replay
Program Analysis
Memory Analysis
Lockset Analysis
Happens Before Analysis}{378}

The Quality Process
Test and Analysis Plans
Risk Planning
Monitoring the Process
Integration Testing
System Testing
Acceptance Testing
Usability
Regression Testing

Bibliografia consigliata

materiale disponibile sulla piattaforma online:

libro: Mauro Pezzè and Michal Young, Software Testing and Analysis, process, principle and techniques, John Wiley 2007
articoli
lucidi
esercizi
questionar

Metodi didattici

blended eLearning: lezioni in aula, studio individuale, esercizi e questionari online, corretti dal docente e discussi in aula