polito.it
Politecnico di Torino (logo)

Sviluppo di uno strumento per l'analisi della fragilità delle suite di test = Development of a tool for the analysis of the fragility of test suites

Francesco Riba

Sviluppo di uno strumento per l'analisi della fragilità delle suite di test = Development of a tool for the analysis of the fragility of test suites.

Rel. Luca Ardito, Maurizio Morisio. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2022

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (3MB) | Preview
Abstract:

Il system testing tramite l'interfaccia utente grafica (GUI) è una preziosa forma di verifica e convalida per le applicazioni moderne, in particolare nei settori ad alta intensità grafica come le applicazioni mobili. Tuttavia, la pratica è spesso trascurata dagli sviluppatori principalmente a causa della sua natura costosa e dell'assenza di un feedback immediato sulla qualità della suite di test. Questa tesi propone lo sviluppo di un software che può essere utilizzato per ottenere feedback sulla qualità dei test attraverso la rappresentazione grafica di alcune metriche, consentendo così una rapida comprensione della qualità di questi ultimi. L'estrema digitalizzazione che si sta verificando in questo periodo storico porta a un aumento significativo dello sviluppo di applicazioni mobili e non. Il lavoro di questa tesi è quello di fornire una misura per il test, che consenta di migliorane le funzionalità e di conseguenza la qualità del codice delle applicazioni. Il lavoro di tesi è iniziato con lo studio e la selezione di alcune metriche relative sia al codice che compone l'applicazione in questione, sia alle suite di test. Tra tutte le metriche descritte in letteratura, è stata selezionata una serie di metriche generalizzabili e di facile comprensione, che sono risultate le più adeguate per una presentazione in uno strumento grafico. Lo sviluppo successivo è stato basato su queste decisioni, abbiamo sviluppato un paio di applicazioni: la prima basata su script python e la seconda in Java. L'applicazione Python riceve come input un repository di codice open source, esegue i pull di tutte le versioni e calcola le metriche. Una volta calcolate le metriche, le inserisce in un file CSV. Tale file verrà successivamente esaminato dall'applicazione Java che manipola la GUI con cui l'utente interagisce, consentendo la generazione di più grafici e il calcolo di varie funzioni statistiche. Alcuni dati relativi all'intero progetto sono ottenuti con l'ausilio del software SonarQube. Uno dei principali problemi legati a questa tesi è stato quello di ottenere repository con codice di qualità: la maggior parte dei repository analizzati, infatti, presentava una piccola percentuale di linee di codice di test rispetto a quella delle linee di codice che compongono l'applicazione. Questa notevole differenza implica un importante problema di fondo: spesso gli sviluppatori concentrano molte più energie sullo sviluppo del codice tralasciando così quella dei test case. In conclusione, è stato sviluppato uno strumento di lavoro completo ed è stato valutato su molti progetti open source testati. Lo strumento è stato in grado di recuperare tutte le metriche desiderate e i grafici generati erano facilmente comprensibili. Lo strumento attuale può essere applicato a qualsiasi progetto open source per fornire preziose informazioni agli sviluppatori nell'analisi dello stato delle loro suite di test. Un futuro upgrade sullo strumento potrebbe includere l'integrazione continua direttamente nella piattaforma GitHub Actions e l'implementazione della capacità di riconoscere linguaggi diversi da java e kotlin.

Relators: Luca Ardito, Maurizio Morisio
Academic year: 2021/22
Publication type: Electronic
Number of Pages: 87
Subjects:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: UNSPECIFIED
URI: http://webthesis.biblio.polito.it/id/eprint/22700
Modify record (reserved for operators) Modify record (reserved for operators)