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
Controllo della qualità del software

Codice insegnamento: F1801Q031

Docente: Mauro Pezzè

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. Processo, pianificazione e monitoraggio

Modalità di verifica dell'apprendimento

Esame finale

Tipo esame:

orale

prova pratica

Tipo valutazione:

voto finale

 

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 11/10/2011