Politecnico di Torino (logo)

Enhance robustness of test cases by linting bad practices

Davide Calarco

Enhance robustness of test cases by linting bad practices.

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

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

Download (5MB) | Preview

In software testing, GUI test cases are software functions that test the quality of the application under test (AUT) only passing through the graphical user interface (GUI). GUI test cases are well-known to be fragile, namely, they do not pass anymore as soon as an element in the GUI gets modified. The thesis, therefore, aims at investigating the sources of fragility in GUI-based test cases and how to decrease it. First, it is presented the overall background of software testing with particular attention to web applications. Then, a process of statistical collection and analysis on real projects aims at giving an objective overview of how testers face fragility and the forms under which fragility appears. A second data collection and analysis, this time on community-crafted wikis, produces a direct and practical set of good practices as countermeasures for fragility. The analysis of these wikis suggests implementing a linter, that is a static analyzer, to enforce such good practices in test cases; after an assessment about the deployment environment of the linter and its design, the thesis presents the results: test cases taken from real projects differ from the ideal model where the aforementioned rules apply; fragility has multiple sources, categorized in a taxonomy. Subsequently, the threats to validity criticize the methodologies followed to collect data and test the linter. Finally, the thesis suggests possible future improvements about the present study and the linter.

Relators: Luca Ardito, Maurizio Morisio
Academic year: 2021/22
Publication type: Electronic
Number of Pages: 83
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/22691
Modify record (reserved for operators) Modify record (reserved for operators)