Metriche del software e di testing

Cluster di dipartimento

  • Ingegneria del software

Descrizione

La ricerca si articola su metodologie di tipo sperimentale su

  • definizione di metriche sperimentali di complessità strutturale e di qualità;
  • testing automatico pilotato da metriche;
  • testing automatico guidato da modelli;
  • problematiche organizzative legate all’Ingegneria del Software Esistente (Riuso, Manutenzione).

L’attività di ricerca ha un filo conduttore nell’analisi sperimentale di progetti informatici di tipo industriale, con particolare attenzione al software legato agli ERP aziendali. Si sono studiate nuove metriche ricavate principalmente con metodi statistici, che siano in grado di misurare gli artefatti informatici (codice, ma anche requisiti, specifiche, progetti) in dipendenza dal particolare contesto applicativo: strumenti software di sviluppo utilizzati, tipologia dei problemi affrontati, esperienza dello staff di sviluppo, ecc. Ciò permette, fra l’altro, di produrre metriche non astratte e generaliste (e quindi in genere relativamente poco accurate), ma che si auto-tarino sugli specifici ambienti di analisi e quindi modellano con maggiore precisione la realtà progettuale. Si è indagato sui legami fra le misurazioni ottenute con queste metriche e la presenza di fault (malfunzionamenti) dei programmi, verificando sperimentalmente i tipi di misurazione che meglio identificano la complessità strutturale dei singoli moduli. Con alcune di queste metriche si è studiata la possibilità di pilotare il test (di modulo o di accettazione) sui programmi che con maggiore probabilità potrebbero contenere malfunzionamenti ad una particolare release del software. Ulteriori analisi hanno portato ad identificare all’interno di questi programmi le porzioni di codice o i costrutti che si rivelano più critici nel particolare contesto progettuale. Tutte queste analisi sono state sviluppate in ambiente sperimentale, calcolandone i livelli di accuratezza. Con tecniche di testing guidate da modelli è possibile fornire metriche di copertura di una test suite che fanno riferimento ai componenti del modello; queste tecniche vengono sperimentate ad esempio nel caso di uso di modelli UML di macchine a stati che rappresentano il comportamento di interfacce utenti. Le corrispondenti metriche di copertura possono venir usate per decidere quali ulteriori test sarebbe necessario sviluppare ed eseguire in modo da ridurre ulteriormente i rischi di qualità.

Linee di ricerca

  • Definizione di metriche del software sperimentali
  • Identificazione rischio moduli software
  • Tecniche model-driven per il testing automatizzato

Settori ERC

  • PE6_3 Software engineering, programming languages and systems

Etichette libere

  • Metriche software, Complessità strutturale, Probabilità fault
  • Testing automatico, Model-driven testing

Componenti

MAURIZIO PIGHIN
Incaricato esterno di insegnamento
Giorgio BRAJNIK