polito.it
Politecnico di Torino (logo)

Sviluppo di un tool di mutant injection nel contesto di un ambiente di GUI Testing con gamification = Development of a mutant injection tool as part of a gamified GUI Testing environment

Riccardo Gabellone

Sviluppo di un tool di mutant injection nel contesto di un ambiente di GUI Testing con gamification = Development of a mutant injection tool as part of a gamified GUI Testing environment.

Rel. Luca Ardito, Riccardo Coppola, Tommaso Fulcini. 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 (9MB) | Preview
Abstract:

Il GUI Testing è una disciplina del Software Testing basata sulla interazione grafica tra il tester e l’applicazione target tramite i vari elementi dell'interfaccia che la compongono. Il Mutation Testing è una disciplina del Software Testing basata sull'inserimento di bug artificiali all'interno del codice di un software, con lo scopo di creare test case più performanti e attraverso essi verificare il riconoscimento dei bug inseriti per migliorare la qualità finale della test suite. Nonostante tali pratiche siano un buon mezzo di validazione del software sviluppato, spesso si tende a trascurarle a causa dei costi elevati derivanti da un approccio manuale e dalla fragilità dei test risultanti da metodi puramente automatizzati. Un approccio più recente è fornito dall’Augmented Testing (AT), basato sul principio di Capture&Replay (C&R), prevede di generare sequenze di test con l'ausilio di informazioni visive che facilitano la creazione di test case rispetto a quanto era possibile con tecniche di generazioni precedenti. L'AT permette di combinare l’esaustività dei test manuali con la rapidità di esecuzione e il risparmio di tempo tipici dell’automazione. Questa tesi propone la combinazione delle suddette tecniche di testing, cercando di automatizzare la generazione e l'inserimento delle mutazioni all'interno della GUI di un'applicazione web con l'ausilio dell’integrazione di alcuni concetti di gamification, ossia l’inserimento di elementi e meccanismi tipici del game design all’interno di contesti non ludici, al fine di migliorare la qualità delle test suite risultanti e di stimolare l’aspetto emotivo del tester. La tesi si concentra sullo sviluppo di un tool (in Kotlin) che automatizzi la creazione di mutants all'interno del Document Object Model (DOM) di una pagina web, tramite la manipolazione del codice sorgente HTML. In un secondo momento il tool è stato integrato, insieme con alcuni elementi di gamification, all'interno di un plugin Java per un prototipo di software di Augmented Testing: Scout. L'obiettivo, in questo caso, dell'inserimento di elementi ludici, è comunicare al tester l'eventualità della scoperta del mutant all'interno di una pagina web cercando di renderlo più coinvolto durante la sessione di testing. Infine, è stata svolta una fase di validazione atta a valutare le potenzialità del tool sviluppato tramite delle sessioni individuali di testing. Un campione ristretto composto da studenti ha utilizzato il prototipo di Scout con i plugin di gamification e mutant injection. In generale, la fase di sperimentazione ha portato ad evidenziare i vantaggi dell’inclusione degli elementi di Gamification ma anche gli svantaggi e le limitazioni sofferte dal tool, sia per quanto riguarda la generazione di alcune mutazioni in alcune applicazioni web sia per quanto riguarda l’utilizzo di Scout. In Scout uno dei limiti principali ha riguardato la bassa prestazione nell’esecuzione dell’ambiente di testing dovuto ad un elevato consumo di risorse che non ha permesso talvolta la corretta interazione con i widgets nell’Augmented Layer. La responsività del tool, tuttavia, non era il principale obiettivo di quest’attività di ricerca, perciò, per i lavori futuri, oltre a considerare questo miglioramento sarà possibile perfezionare l’inserimento dei mutants sviluppati nel sorgente HTML e la generazione di altri tipi di mutazioni che vadano ad interagire anche con gli eventi dinamici dell’applicazione web, tenendo in considerazione un opportuno adattamento in Scout.

Relators: Luca Ardito, Riccardo Coppola, Tommaso Fulcini
Academic year: 2021/22
Publication type: Electronic
Number of Pages: 96
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/22684
Modify record (reserved for operators) Modify record (reserved for operators)