- Software Quality (blended)
- Summary
Course Syllabus
Obiettivi
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 sintetici
- Fundamentals of Test and Analysis
- Software Qualities
- Basic Principles
- Dependence and Data Flow Models
- Symbolic Execution and Proof of Properties
- Test Case Selection and Adequacy
- Functional Testing
- Data Flow Testing
- Model-Based Testing
- Fault-Based Testing
- Test Execution
- Scaffolding
- Test Oracles
- Program Analysis
- The Quality Process
- Monitoring the Process
- Integration Testing
- System Testing
- Acceptance Testing
- 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
-
Test Case Selection and Adequacy
-
Adequacy Criteria
-
Comparing Criteria
-
Functional Testing
-
Random versus Partition Testing Strategies
-
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
-
The Quality Process
-
Test and Analysis Plans
-
Monitoring the Process
-
Integration Testing
-
System Testing
-
Acceptance Testing
-
Regression Testing
Prerequisiti
programmazione, elementi di ingegneria del software.
Modalità didattica
blended eLearning: lezioni in aula, studio individuale, esercizi e questionari online, corretti dal docente e discussi in aula.
Il corso è offerto in lingua inglese.
Materiale didattico
materiale disponibile sulla piattaforma online:
- libro: Mauro Pezzè and Michal Young, Software Testing and Analysis, process, principle and techniques, John Wiley 2007
- articoli
- slide
- esercizi
- questionari
Periodo di erogazione dell'insegnamento
secondo semestre
Modalità di verifica del profitto e valutazione
esercizi e questionari proposti online e prova orale
Esercizi e questionari concorrono con lo stesso peso alla determinazione del voto finale, la prova orale è volta a confermare il voto ottenuto con esercizi e questionari.
Orario di ricevimento
su appuntamento
Sustainable Development Goals
Aims
The course provides the knowledge necessary to understand principles, techniques and quality process, the basis for test designers, quality managers and project managers.
At the end of the course, the students will be able to define and implement a quality plan for complex software systems.
Contents
- Fundamentals of Test and Analysis
- Software Qualities
- Basic Principles
- Dependence and Data Flow Models
- Symbolic Execution and Proof of Properties
- Test Case Selection and Adequacy
- Functional Testing
- Data Flow Testing
- Model-Based Testing
- Fault-Based Testing
- Test Execution
- Scaffolding
- Test Oracles
- Program Analysis
- The Quality Process
- Monitoring the Process
- Integration Testing
- System Testing
- Acceptance Testing
- Regression Testing
Detailed program
-
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
-
Test Case Selection and Adequacy
-
Adequacy Criteria
-
Comparing Criteria
-
Functional Testing
-
Random versus Partition Testing Strategies
-
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
-
The Quality Process
-
Test and Analysis Plans
-
Monitoring the Process
-
Integration Testing
-
System Testing
-
Acceptance Testing
-
Regression Testing
Prerequisites
programming, basis of software engineering
Teaching form
blended eLearning: lectures, individual study, online exercises and questionnaires discussed in class.
The course is offered in English.
Textbook and teaching resource
material available on the eLearning platform:
- book: Mauro Pezzè and Michal Young, Software Testing and Analysis, process, principle and techniques, John Wiley 2007
- papers
- slides
- exercises
- questionnaires
Semester
second (spring) semester
Assessment method
online exercises and questionnaires and oral exam.
Exercises and questionnaires contribute to the final grade with the same weight. The oral exam amis to confirm the grade from exercises and questionnaires.
Office hours
on demand