Investigation of Code Change and Smell to Support the Software Regression Test Selection
Regression testing is a software engineering maintenance activity that involves re-executing test cases on a modified software system to check whether code changes expose the existing faults. However, it can be time-consuming and resource-intensive, especially for large systems. Regression testing s...
| Autor: | |
|---|---|
| Formato: | tesis doctoral |
| Estado: | Versión publicada |
| Fecha de publicación: | 2024 |
| País: | Brasil |
| Recursos: | Universidade de São Paulo (USP) |
| Repositorio: | Biblioteca Digital de Teses e Dissertações da USP |
| Idioma: | inglés |
| OAI Identifier: | oai:teses.usp.br:tde-28112024-143829 |
| Acesso em linha: | https://www.teses.usp.br/teses/disponiveis/55/55134/tde-28112024-143829/ |
| Access Level: | acceso abierto |
| Palavra-chave: | Abordagem de mudança e smell Baseado em dependência Change and smell approach Code smell Dependency-based Regression testing selection Seleção de teste de regressão Smell de código |
| Resumo: | Regression testing is a software engineering maintenance activity that involves re-executing test cases on a modified software system to check whether code changes expose the existing faults. However, it can be time-consuming and resource-intensive, especially for large systems. Regression testing selection techniques can help manage this issue by selecting a subset of test cases to run. The Change Based technique selects a subset of the existing test cases and verifies modified classes. Besides reducing the test suite, this technique may reduce the capability of revealing faults. From this perspective, code smells are known to identify poor design and software quality issues. Some works have explored the association between smells and faults with some promising results. Inspired by these results, we propose combining code change and smell to select regression tests and present eight techniques. Additionally, we developed the Regression Testing Selection Tool (RTST) to automate the selection process using these techniques. We empirically evaluated the approach in Defects4J projects by comparing the new techniques effectiveness with classic regression selection techniques. The results show that the Change and Smell Intersection Based technique achieves the highest reduction rate in the test suite size but with less class coverage. On the other hand, Change and Smell Firewall technique achieves the lowest test suite size reduction with the highest fault detection effectiveness test cases, suggesting the combination of smells and changed classes can potentially find more bugs. The Smell Based technique provides a comparable class coverage to the code change and smell approach. Our findings indicate opportunities for improving the effectiveness of regression testing and highlight that software quality should be a concern throughout the software evolution. |
|---|