Investigation of Code Change and Smell to Support the Software Regression Test Selection
| Main Author: | |
|---|---|
| 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 |