Investigation of Code Change and Smell to Support the Software Regression Test Selection

Bibliographic Details
Main Author: Mori, Allan Victor
Publication Date: 2024
Format: Doctoral thesis
Language: eng
Source: Biblioteca Digital de Teses e Dissertações da USP
Download full: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-28112024-143829/
Summary: 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.
id USP_3cae53df9bbc19d08ab51401e8441941
oai_identifier_str oai:teses.usp.br:tde-28112024-143829
network_acronym_str USP
network_name_str Biblioteca Digital de Teses e Dissertações da USP
repository_id_str 2721
spelling Investigation of Code Change and Smell to Support the Software Regression Test SelectionInvestigação de Alterações de Código e de Smell para Apoiar a Seleção de Testes de Regressão de SoftwareAbordagem de mudança e smellBaseado em dependênciaChange and smell approachCode smellDependency-basedRegression testing selectionSeleção de teste de regressãoSmell de códigoRegression 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.O teste de regressão é uma atividade de manutenção da engenharia de software que envolve a reexecução de casos de teste em um sistema de software modificado para verificar se as alterações no código expõe falhas existentes. No entanto, ele pode consumir muito tempo e recursos, especialmente em sistemas grandes. As técnicas de seleção de testes de regressão podem ajudar a gerenciar esse problema, selecionando um subconjunto de casos de teste a serem executados. A técnica \"Change Based\" seleciona um subconjunto dos casos de teste existentes e verifica classes modificadas. Além de reduzir o conjunto de testes, essa técnica pode reduzir a capacidade de revelar falhas. A partir dessa perspectiva, os code smells são conhecidos por identificar problemas de design e de qualidade de software. Alguns trabalhos exploraram a associação entre smells e falhas com alguns resultados promissores. Inspirados por esses resultados, propomos combinar a informações sobre alteração do código e code smells para selecionar testes de regressão e apresentamos oito técnicas. Além disso, desenvolvemos a Regression Testing Selection Tool (RTST) para automatizar o processo de seleção usando essas técnicas. Avaliamos empiricamente a abordagem em projetos do Defects4J, comparando a eficácia das novas técnicas com as técnicas clássicas de seleção de regressão. Os resultados mostram que a técnica Change and Smell Intersection Based atinge a maior taxa de redução no tamanho do conjunto de testes, mas com menor cobertura de classe. Por outro lado, a técnica Change and \"Smell Firewall\" obtém a menor redução no tamanho do conjunto de testes com os casos de teste de maior eficácia na detecção de falhas, sugerindo que a combinação de code smells e classes alteradas podem potencialmente encontrar mais falhas. A técnica \"Smell Based\" fornece uma cobertura de classe comparável à abordagem de mudança de código e smell. Nossas descobertas indicam oportunidades para melhorar a eficácia do teste de regressão e destacam que a qualidade do software deve ser uma preocupação durante toda a evolução do software.Biblioteca Digitais de Teses e Dissertações da USPPaiva, Ana Cristina RamadaSouza, Simone do Rocio Senger deMori, Allan Victor2024-08-05info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/55/55134/tde-28112024-143829/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesseng2024-11-28T16:52:02Zoai:teses.usp.br:tde-28112024-143829Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212024-11-28T16:52:02Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false
dc.title.none.fl_str_mv Investigation of Code Change and Smell to Support the Software Regression Test Selection
Investigação de Alterações de Código e de Smell para Apoiar a Seleção de Testes de Regressão de Software
title Investigation of Code Change and Smell to Support the Software Regression Test Selection
spellingShingle Investigation of Code Change and Smell to Support the Software Regression Test Selection
Mori, Allan Victor
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
title_short Investigation of Code Change and Smell to Support the Software Regression Test Selection
title_full Investigation of Code Change and Smell to Support the Software Regression Test Selection
title_fullStr Investigation of Code Change and Smell to Support the Software Regression Test Selection
title_full_unstemmed Investigation of Code Change and Smell to Support the Software Regression Test Selection
title_sort Investigation of Code Change and Smell to Support the Software Regression Test Selection
author Mori, Allan Victor
author_facet Mori, Allan Victor
author_role author
dc.contributor.none.fl_str_mv Paiva, Ana Cristina Ramada
Souza, Simone do Rocio Senger de
dc.contributor.author.fl_str_mv Mori, Allan Victor
dc.subject.por.fl_str_mv 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
topic 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
description 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.
publishDate 2024
dc.date.none.fl_str_mv 2024-08-05
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.teses.usp.br/teses/disponiveis/55/55134/tde-28112024-143829/
url https://www.teses.usp.br/teses/disponiveis/55/55134/tde-28112024-143829/
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv
dc.rights.driver.fl_str_mv Liberar o conteúdo para acesso público.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Liberar o conteúdo para acesso público.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.coverage.none.fl_str_mv
dc.publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
dc.source.none.fl_str_mv
reponame:Biblioteca Digital de Teses e Dissertações da USP
instname:Universidade de São Paulo (USP)
instacron:USP
instname_str Universidade de São Paulo (USP)
instacron_str USP
institution USP
reponame_str Biblioteca Digital de Teses e Dissertações da USP
collection Biblioteca Digital de Teses e Dissertações da USP
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)
repository.mail.fl_str_mv virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br
_version_ 1826319293021683712