Research on the detection of test smells and flaky tests

[EN] This project is an empirical study that aims to research about test smells and flaky tests. Software testing is a key part of the development process of every project. During the implementation of test code, test smells arise, which are poor programming practices present in the test cases. Beca...

Descripción completa

Detalles Bibliográficos
Autor: Vicent Micó, Alejandro
Tipo de recurso: tesis de maestría
Fecha de publicación:2023
País:España
Institución:Universitat Politècnica de València (UPV)
Repositorio:RiuNet. Repositorio Institucional de la Universitat Politécnica de Valéncia
Idioma:inglés
OAI Identifier:oai:riunet.upv.es:10251/198550
Acceso en línea:https://riunet.upv.es/handle/10251/198550
Access Level:acceso abierto
Palabra clave:Malos olores
Pruebas inestables
Pruebas de software
Herramientas de detección
Prácticas de programación
Test smells
Flaky tests
Software testing
Detection tools
Programming practices
LENGUAJES Y SISTEMAS INFORMATICOS
Máster Universitario en Ingeniería Informática-Màster Universitari en Enginyeria Informàtica
Descripción
Sumario:[EN] This project is an empirical study that aims to research about test smells and flaky tests. Software testing is a key part of the development process of every project. During the implementation of test code, test smells arise, which are poor programming practices present in the test cases. Because of that, not only the effectiveness of the tests is affected, but also the maintenance and readability. In addition, some tests may have non-deterministic outcomes. These tests are called flaky and often lead to confusion and unreliable results . In this study, tools for the automated detection of test smells have been examined and used, which allow developers to find test smells in their projects in an efficient way. The tools were executed over a set of projects with flaky tests and the results were compared with the flaky results for analyzing the test methods with flaky behavior and test smells. The most common smells were found out and the relation between smells and flakiness was considered. The reached conclusion was that there is not enough evidence to support a strong correlation between test smells and flaky tests. However, some test smells might be related to other patterns that cause flaky results, such as asynchronous behaviors and connections to external resources. For easing the process of detecting and comparing test smells and flaky tests, an application was developed. As a result, the introduction of these practices is a bad habit that should be avoided, and some guidelines are provided in this regard.