Inizio della pagina -
Logo DISCO
|
Visita la Versione ad elevata leggibilità
|
Vai al Contenuto della pagina
|
Vai alla Fine dei contenuti
|
Vai al Menu Principale
|
Vai alla Barra di navigazione (sei in)
|
Vai al Menu di navigazione (albero)
|
Vai alla Lista dei comandi
|
Vai alla Lista degli approfondimenti
|
Vai al Menu inferiore
|
Logo Ateneo
   
Didattica
Qualità del Software

Codice ins.

Insegnamento

CFU ins.

Anno

Sem.

SSD ins.

Responsabile insegnamento

F1801Q115

Qualità del software

6

1

2

ING-INF/05

PEZZE' Mauro

Assessment:
Valutazione in itinere ed esame finale

Contenuti:
La qualità di un sistema software, che può essere definita come il grado con cui un sistema software soddisfa le proprietà richieste e che rappresenta un elemento essenziale del processo di sviluppo del software, non può essere garantita a priori, ma deve essere verificata durante e dopo lo sviluppo.
Questo corso introduce le principali tecniche di test e analisi del software che possono essere utilizzate per identificare difetti e verificare la qualità del software.
Il corso introduce i principi generali e le tecniche di base, ne mostra l’applicabilità per la soluzione di problemi rilevanti, fa capire le complementarietà e differenze tra le varie tecniche e ne illustra l’organizzazione nel contesto di un processo coerente.

Testi di riferimento:
Mauro Pezzè and Michal Young, Software Testing and Analysis, process, principle and techniques, John Wiley 2007.

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 ed implementare un piano di qualità per progetti software complessi.

Prerequisiti:
Conoscenze di base di programmazione ed ingegneria del software sono necessarie per comprendere alcuni principi e tecniche e per apprezzare gli elementi di automazione del processo di qualità che sono parte integrante del processo.

Metodi didattici:
Le modalità didattiche comprendono lezioni di approfondimento, esercizi e attività progettuali. Alle lezioni di approfondimento sono associati esercizi proposti agli studenti in anticipo e risolti in aula. Piccole attività di progetto permettono di approfondire aspetti relativi all’automazione delle attività di test e analisi e apprezzare così l’utilità dei principi e delle tecniche apprese a lezione.

Programma esteso:

  1. Problemi e rilevanza della qualità nel processo di sviluppo e manutenzione
  2. Convalida e verifica
  3. Principi di base
  4. Modelli finiti e astrazione
  5. Modelli di controllo e flusso dei dati
  6. Esecuzione simbolica e prova di proprietà
  7. Verifica a stati finiti
  8. Criteri di selezione e adeguatezza dei test
  9. Test funzionale

10.  Test strutturale

11.  Test basato su modelli di flusso

12.  Test basato su modelli

13.  Test basato su difetti

14.  Esecuzione dei casi di test

15.  Ispezione e code review

16.  Analisi del software

17.  Processo, pianificazione e monitoraggio

18.  Test di integrazione e test basato sui componenti

19.  Test di sistema e accettazione

20.  Test di regressione

21.  Test di usabilità

22.  Verifica di prestazioni e proprietà di sicurezza

23.  Automazione del test

Modalità di verifica dell'apprendimento:
Esame finale

Tipo esame:
Orale - prova pratica

Tipo valutazione:
Voto finale

Course code

Course title

Credits

Year

Semester

Scientific  sector code

 

Responsible for teaching

Course code

F1801Q115

Software quality

6

1

2

ING-INF/05

PEZZE' Mauro

 

Contents:
Software quality can be defined as the degree of satisfaction of the requirements, represents an essential part of the software development and cannot be guaranteed a-priori, but most be verified both during and after the development.
This course introduces the main testing and analysis techniques that can be used to identify failures and verify the quality of software systems.
The course introduces the general testing and analysis principles and the basic techniques, shows how to apply them to solve relevant quality problems, illustrates complementarities and differences among the different techniques, and presents the organization of a coherent quality process.

References:
Mauro Pezzè and Michal Young, Software Testing and Analysis, process, principle and techniques, John Wiley 2007.

Goals:

The course provides the elements needed to understand principles, techniques and process that comprise the basic background of test designer, quality manager and project manager.
At the end of the course, the students will be able to define and implement quality plans for complex software systems.

Prerequisites:
Basic programming skills and knowledge of software engineering are required to understand some principles and techniques and to learn how to automate testing and analysis activities within the software quality process.

Teaching style:
The course involves lectures, exercises and project activities. Lectures are associated with exercises that are proposed in advance discussed in class. Project activities focus on test and analysis automation and help students appreciate the usefulness of principles and techniques learned in the course.

Syllabus:

  1. Problems and relevance of quality in the development and maintenance process
  2. Verification and validation
  3. Basic principles
  4. Finite models and abstraction
  5. Dependency and data flow models
  6. Symbolic execution and proofs of properties
  7. Finite state verification
  8. Test selection and adequacy criteria
  9. Functional testing

10.  Structural testing

11.  Data flow testing

12.  Model based testing

13.  Fault based testing

14.  Test execution

15.  Code inspection and review

16.  Program analysis

17.  Process, planning and monitoring

18.  Integration and component based testing

19.  System and acceptance testing

20.  Regression testing

21.  Usability testing

22.  Performance and security testing

23.  Automation of testing and analysis activities

Verification:
Final exam

Exam:
Oral - project

Evaluation:
Final grade

 

Approfondimenti

Google Translate
Translate to English Translate to French Translate to German Translate to Spanish Translate to Chinese Translate to Portuguese Translate to Arabic
Translate to Albanian Translate to Bulgarian Translate to Croatian Translate to Czech Translate to Danish Translate to Dutch Translate to Finnish Translate to Greek Translate to Hindi
Translate to Hungarian Translate to Irish Translate to Japanese Translate to Korean Translate to Norwegian Translate to Polish Translate to Romanian Translate to Russian Translate to Serbian
Translate to Slovenian Translate to Swedish Translate to Thai Translate to Turkish

(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - ultimo aggiornamento di questa pagina 27/09/2012