A multimethod study of test smells : cataloging, removal, and new types
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Tese |
Idioma: | eng |
Título da fonte: | Repositório Institucional da UFPE |
dARK ID: | ark:/64986/00130000071ds |
Texto Completo: | https://repositorio.ufpe.br/handle/123456789/52055 |
Resumo: | Test smells are symptoms in the test code that indicate possible design or implementation problems. Their presence in automated test suites, along with their harmfulness, has already been demonstrated by previous research. Although test smells have been the subject of much gray and academic literature since their proposal in 2001, many questions regarding their ad- herence in the industry are yet to be clarified: concerning test smells — proposed by numerous studies and gray literature — no publicly available catalog aggregates them; considering the evolution of test frameworks and programming languages, there is no correspondence between the newly proposed features and their capability of refactoring or preventing test smells; finally, considering that test automation requires a significant initial investment not always available to software projects, little is known to the possibility of test smells’ existence in manual test suites, as well as how to identify and remove them. This work presents a multimethod study aimed at fulfilling these knowledge gaps in the test smells area, which comprises surveying state of the art on test smells and refactoring actions, the use of manual and automatic anal- yses of open-source repositories, the conduction of surveys with software testing professionals, the study of new test framework features and the proposition of test smell refactoring actions, and the submission of contributions to active and popular open-source software projects. The results present: (i) a catalog that unifies 127 primary studies and 480 distinct test smells in a previously unseen effort; (ii) the confirmation that new test framework features can refactor and prevent test smells, where we propose and evaluate new refactorings based on 7 JUnit 5 features intended for 13 test smells; (iii) the proposition of a catalog containing 8 new test smells specific to manual test suites, their identification strategies based on natural language processing, and their frequency in important government, industry and open-source systems. The findings of this work give directions for further development in various fronts of the test smells study area. |
id |
UFPE_722c0b5b41a5b8181000087c72f2938a |
---|---|
oai_identifier_str |
oai:repositorio.ufpe.br:123456789/52055 |
network_acronym_str |
UFPE |
network_name_str |
Repositório Institucional da UFPE |
repository_id_str |
2221 |
spelling |
SOARES, Elvys Alveshttp://lattes.cnpq.br/6415531537733982http://lattes.cnpq.br/0084300900034108http://lattes.cnpq.br/9300936571715992SANTOS, André Luis de MedeirosRIBEIRO, Márcio de Medeiros2023-08-24T12:58:21Z2023-08-24T12:58:21Z2023-05-31SOARES, Elvys Alves. A multimethod study of test smells: cataloging, removal, and new types. 2023. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2023.https://repositorio.ufpe.br/handle/123456789/52055ark:/64986/00130000071dsTest smells are symptoms in the test code that indicate possible design or implementation problems. Their presence in automated test suites, along with their harmfulness, has already been demonstrated by previous research. Although test smells have been the subject of much gray and academic literature since their proposal in 2001, many questions regarding their ad- herence in the industry are yet to be clarified: concerning test smells — proposed by numerous studies and gray literature — no publicly available catalog aggregates them; considering the evolution of test frameworks and programming languages, there is no correspondence between the newly proposed features and their capability of refactoring or preventing test smells; finally, considering that test automation requires a significant initial investment not always available to software projects, little is known to the possibility of test smells’ existence in manual test suites, as well as how to identify and remove them. This work presents a multimethod study aimed at fulfilling these knowledge gaps in the test smells area, which comprises surveying state of the art on test smells and refactoring actions, the use of manual and automatic anal- yses of open-source repositories, the conduction of surveys with software testing professionals, the study of new test framework features and the proposition of test smell refactoring actions, and the submission of contributions to active and popular open-source software projects. The results present: (i) a catalog that unifies 127 primary studies and 480 distinct test smells in a previously unseen effort; (ii) the confirmation that new test framework features can refactor and prevent test smells, where we propose and evaluate new refactorings based on 7 JUnit 5 features intended for 13 test smells; (iii) the proposition of a catalog containing 8 new test smells specific to manual test suites, their identification strategies based on natural language processing, and their frequency in important government, industry and open-source systems. The findings of this work give directions for further development in various fronts of the test smells study area.Test smells são sintomas no código de teste que indicam possíveis problemas de design ou implementação. Sua presença em conjuntos de testes automatizados, juntamente com sua nocividade, já foi demonstrada por pesquisas anteriores. Embora a área de test smells tenha sido objeto de muita literatura acadêmica e cinzenta desde sua proposta em 2001, muitas questões sobre a adesão dos test smells na indústria ainda precisam ser esclarecidas: com relação aos tipos de test smells — propostas por vários estudos e literatura cinzenta — nenhum catálogo publicamente disponível os agrega; considerando a evolução dos frameworks de teste e linguagens de programação, não há correspondência entre os novos recursos propostos e sua capacidade de refatoração ou prevenção de test smells; por fim, considerando que a automação de testes requer um investimento inicial significativo nem sempre disponível para projetos de software, pouco se sabe sobre a possibilidade da existência de test smells em suítes de testes manuais, bem como como identificá-los e removê-los. Este trabalho apresenta um estudo multimétodo que visa preencher essas lacunas de conhecimento na área de test smells, que compreende o levantamento do estado da arte sobre test smells e ações de refatoração, o uso de análises manuais e automáticas de repositórios de código aberto, a realização de pesquisas com profissionais de teste de software, o estudo de novos recursos de estrutura de teste, a proposição de ações de refatoração test smells e o envio de contribuições para projetos de software de código aberto ativos e populares. Os resultados apresentam: (i) um catálogo inédito que unifica 127 estudos primários e 480 test smells distintos; (ii) a confirmação de que novos recursos de frameworks de teste podem refatorar e prevenir test smells, onde propomos e avaliamos novas refatorações baseadas em 7 recursos JUnit 5 destinados a 13 test smells; (iii) a proposição de um catálogo contendo 8 novos cheiros de teste específicos para suítes de teste manual, suas estratégias de identificação baseadas no processamento de linguagem natural e sua frequência em importantes sistemas governamentais, industriais e de código aberto. As conclusões deste trabalho fornecem direções para um maior desenvolvimento em várias frentes da área de estudo de test smells.engUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de software e Linguagens de programaçãoTeste de softwareTest smellsA multimethod study of test smells : cataloging, removal, and new typesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisdoutoradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPEORIGINALTESE Elvys Alves Soares.pdfTESE Elvys Alves Soares.pdfapplication/pdf2210317https://repositorio.ufpe.br/bitstream/123456789/52055/1/TESE%20Elvys%20Alves%20Soares.pdfcd47dc3534ee0a3b3df19ea20902b823MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/52055/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82362https://repositorio.ufpe.br/bitstream/123456789/52055/3/license.txt5e89a1613ddc8510c6576f4b23a78973MD53TEXTTESE Elvys Alves Soares.pdf.txtTESE Elvys Alves Soares.pdf.txtExtracted texttext/plain286325https://repositorio.ufpe.br/bitstream/123456789/52055/4/TESE%20Elvys%20Alves%20Soares.pdf.txt8c95eac61bacd7ddb49a9a0801606d48MD54THUMBNAILTESE Elvys Alves Soares.pdf.jpgTESE Elvys Alves Soares.pdf.jpgGenerated Thumbnailimage/jpeg1190https://repositorio.ufpe.br/bitstream/123456789/52055/5/TESE%20Elvys%20Alves%20Soares.pdf.jpge37e61504197a0799243db830ed1f7d5MD55123456789/520552023-08-25 02:17:22.156oai:repositorio.ufpe.br:123456789/52055VGVybW8gZGUgRGVww7NzaXRvIExlZ2FsIGUgQXV0b3JpemHDp8OjbyBwYXJhIFB1YmxpY2l6YcOnw6NvIGRlIERvY3VtZW50b3Mgbm8gUmVwb3NpdMOzcmlvIERpZ2l0YWwgZGEgVUZQRQoKCkRlY2xhcm8gZXN0YXIgY2llbnRlIGRlIHF1ZSBlc3RlIFRlcm1vIGRlIERlcMOzc2l0byBMZWdhbCBlIEF1dG9yaXphw6fDo28gdGVtIG8gb2JqZXRpdm8gZGUgZGl2dWxnYcOnw6NvIGRvcyBkb2N1bWVudG9zIGRlcG9zaXRhZG9zIG5vIFJlcG9zaXTDs3JpbyBEaWdpdGFsIGRhIFVGUEUgZSBkZWNsYXJvIHF1ZToKCkkgLSBvcyBkYWRvcyBwcmVlbmNoaWRvcyBubyBmb3JtdWzDoXJpbyBkZSBkZXDDs3NpdG8gc8OjbyB2ZXJkYWRlaXJvcyBlIGF1dMOqbnRpY29zOwoKSUkgLSAgbyBjb250ZcO6ZG8gZGlzcG9uaWJpbGl6YWRvIMOpIGRlIHJlc3BvbnNhYmlsaWRhZGUgZGUgc3VhIGF1dG9yaWE7CgpJSUkgLSBvIGNvbnRlw7pkbyDDqSBvcmlnaW5hbCwgZSBzZSBvIHRyYWJhbGhvIGUvb3UgcGFsYXZyYXMgZGUgb3V0cmFzIHBlc3NvYXMgZm9yYW0gdXRpbGl6YWRvcywgZXN0YXMgZm9yYW0gZGV2aWRhbWVudGUgcmVjb25oZWNpZGFzOwoKSVYgLSBxdWFuZG8gdHJhdGFyLXNlIGRlIG9icmEgY29sZXRpdmEgKG1haXMgZGUgdW0gYXV0b3IpOiB0b2RvcyBvcyBhdXRvcmVzIGVzdMOjbyBjaWVudGVzIGRvIGRlcMOzc2l0byBlIGRlIGFjb3JkbyBjb20gZXN0ZSB0ZXJtbzsKClYgLSBxdWFuZG8gdHJhdGFyLXNlIGRlIFRyYWJhbGhvIGRlIENvbmNsdXPDo28gZGUgQ3Vyc28sIERpc3NlcnRhw6fDo28gb3UgVGVzZTogbyBhcnF1aXZvIGRlcG9zaXRhZG8gY29ycmVzcG9uZGUgw6AgdmVyc8OjbyBmaW5hbCBkbyB0cmFiYWxobzsKClZJIC0gcXVhbmRvIHRyYXRhci1zZSBkZSBUcmFiYWxobyBkZSBDb25jbHVzw6NvIGRlIEN1cnNvLCBEaXNzZXJ0YcOnw6NvIG91IFRlc2U6IGVzdG91IGNpZW50ZSBkZSBxdWUgYSBhbHRlcmHDp8OjbyBkYSBtb2RhbGlkYWRlIGRlIGFjZXNzbyBhbyBkb2N1bWVudG8gYXDDs3MgbyBkZXDDs3NpdG8gZSBhbnRlcyBkZSBmaW5kYXIgbyBwZXLDrW9kbyBkZSBlbWJhcmdvLCBxdWFuZG8gZm9yIGVzY29saGlkbyBhY2Vzc28gcmVzdHJpdG8sIHNlcsOhIHBlcm1pdGlkYSBtZWRpYW50ZSBzb2xpY2l0YcOnw6NvIGRvIChhKSBhdXRvciAoYSkgYW8gU2lzdGVtYSBJbnRlZ3JhZG8gZGUgQmlibGlvdGVjYXMgZGEgVUZQRSAoU0lCL1VGUEUpLgoKIApQYXJhIHRyYWJhbGhvcyBlbSBBY2Vzc28gQWJlcnRvOgoKTmEgcXVhbGlkYWRlIGRlIHRpdHVsYXIgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIGRlIGF1dG9yIHF1ZSByZWNhZW0gc29icmUgZXN0ZSBkb2N1bWVudG8sIGZ1bmRhbWVudGFkbyBuYSBMZWkgZGUgRGlyZWl0byBBdXRvcmFsIG5vIDkuNjEwLCBkZSAxOSBkZSBmZXZlcmVpcm8gZGUgMTk5OCwgYXJ0LiAyOSwgaW5jaXNvIElJSSwgYXV0b3Jpem8gYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIGEgZGlzcG9uaWJpbGl6YXIgZ3JhdHVpdGFtZW50ZSwgc2VtIHJlc3NhcmNpbWVudG8gZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCBwYXJhIGZpbnMgZGUgbGVpdHVyYSwgaW1wcmVzc8OjbyBlL291IGRvd25sb2FkIChhcXVpc2nDp8OjbykgYXRyYXbDqXMgZG8gc2l0ZSBkbyBSZXBvc2l0w7NyaW8gRGlnaXRhbCBkYSBVRlBFIG5vIGVuZGVyZcOnbyBodHRwOi8vd3d3LnJlcG9zaXRvcmlvLnVmcGUuYnIsIGEgcGFydGlyIGRhIGRhdGEgZGUgZGVww7NzaXRvLgoKIApQYXJhIHRyYWJhbGhvcyBlbSBBY2Vzc28gUmVzdHJpdG86CgpOYSBxdWFsaWRhZGUgZGUgdGl0dWxhciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGUgYXV0b3IgcXVlIHJlY2FlbSBzb2JyZSBlc3RlIGRvY3VtZW50bywgZnVuZGFtZW50YWRvIG5hIExlaSBkZSBEaXJlaXRvIEF1dG9yYWwgbm8gOS42MTAgZGUgMTkgZGUgZmV2ZXJlaXJvIGRlIDE5OTgsIGFydC4gMjksIGluY2lzbyBJSUksIGF1dG9yaXpvIGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgUGVybmFtYnVjbyBhIGRpc3BvbmliaWxpemFyIGdyYXR1aXRhbWVudGUsIHNlbSByZXNzYXJjaW1lbnRvIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgcGFyYSBmaW5zIGRlIGxlaXR1cmEsIGltcHJlc3PDo28gZS9vdSBkb3dubG9hZCAoYXF1aXNpw6fDo28pIGF0cmF2w6lzIGRvIHNpdGUgZG8gUmVwb3NpdMOzcmlvIERpZ2l0YWwgZGEgVUZQRSBubyBlbmRlcmXDp28gaHR0cDovL3d3dy5yZXBvc2l0b3Jpby51ZnBlLmJyLCBxdWFuZG8gZmluZGFyIG8gcGVyw61vZG8gZGUgZW1iYXJnbyBjb25kaXplbnRlIGFvIHRpcG8gZGUgZG9jdW1lbnRvLCBjb25mb3JtZSBpbmRpY2FkbyBubyBjYW1wbyBEYXRhIGRlIEVtYmFyZ28uCg==Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212023-08-25T05:17:22Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false |
dc.title.pt_BR.fl_str_mv |
A multimethod study of test smells : cataloging, removal, and new types |
title |
A multimethod study of test smells : cataloging, removal, and new types |
spellingShingle |
A multimethod study of test smells : cataloging, removal, and new types SOARES, Elvys Alves Engenharia de software e Linguagens de programação Teste de software Test smells |
title_short |
A multimethod study of test smells : cataloging, removal, and new types |
title_full |
A multimethod study of test smells : cataloging, removal, and new types |
title_fullStr |
A multimethod study of test smells : cataloging, removal, and new types |
title_full_unstemmed |
A multimethod study of test smells : cataloging, removal, and new types |
title_sort |
A multimethod study of test smells : cataloging, removal, and new types |
author |
SOARES, Elvys Alves |
author_facet |
SOARES, Elvys Alves |
author_role |
author |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/6415531537733982 |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/0084300900034108 |
dc.contributor.advisor-coLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/9300936571715992 |
dc.contributor.author.fl_str_mv |
SOARES, Elvys Alves |
dc.contributor.advisor1.fl_str_mv |
SANTOS, André Luis de Medeiros |
dc.contributor.advisor-co1.fl_str_mv |
RIBEIRO, Márcio de Medeiros |
contributor_str_mv |
SANTOS, André Luis de Medeiros RIBEIRO, Márcio de Medeiros |
dc.subject.por.fl_str_mv |
Engenharia de software e Linguagens de programação Teste de software Test smells |
topic |
Engenharia de software e Linguagens de programação Teste de software Test smells |
description |
Test smells are symptoms in the test code that indicate possible design or implementation problems. Their presence in automated test suites, along with their harmfulness, has already been demonstrated by previous research. Although test smells have been the subject of much gray and academic literature since their proposal in 2001, many questions regarding their ad- herence in the industry are yet to be clarified: concerning test smells — proposed by numerous studies and gray literature — no publicly available catalog aggregates them; considering the evolution of test frameworks and programming languages, there is no correspondence between the newly proposed features and their capability of refactoring or preventing test smells; finally, considering that test automation requires a significant initial investment not always available to software projects, little is known to the possibility of test smells’ existence in manual test suites, as well as how to identify and remove them. This work presents a multimethod study aimed at fulfilling these knowledge gaps in the test smells area, which comprises surveying state of the art on test smells and refactoring actions, the use of manual and automatic anal- yses of open-source repositories, the conduction of surveys with software testing professionals, the study of new test framework features and the proposition of test smell refactoring actions, and the submission of contributions to active and popular open-source software projects. The results present: (i) a catalog that unifies 127 primary studies and 480 distinct test smells in a previously unseen effort; (ii) the confirmation that new test framework features can refactor and prevent test smells, where we propose and evaluate new refactorings based on 7 JUnit 5 features intended for 13 test smells; (iii) the proposition of a catalog containing 8 new test smells specific to manual test suites, their identification strategies based on natural language processing, and their frequency in important government, industry and open-source systems. The findings of this work give directions for further development in various fronts of the test smells study area. |
publishDate |
2023 |
dc.date.accessioned.fl_str_mv |
2023-08-24T12:58:21Z |
dc.date.available.fl_str_mv |
2023-08-24T12:58:21Z |
dc.date.issued.fl_str_mv |
2023-05-31 |
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.citation.fl_str_mv |
SOARES, Elvys Alves. A multimethod study of test smells: cataloging, removal, and new types. 2023. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2023. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufpe.br/handle/123456789/52055 |
dc.identifier.dark.fl_str_mv |
ark:/64986/00130000071ds |
identifier_str_mv |
SOARES, Elvys Alves. A multimethod study of test smells: cataloging, removal, and new types. 2023. Tese (Doutorado em Ciência da Computação) – Universidade Federal de Pernambuco, Recife, 2023. ark:/64986/00130000071ds |
url |
https://repositorio.ufpe.br/handle/123456789/52055 |
dc.language.iso.fl_str_mv |
eng |
language |
eng |
dc.rights.driver.fl_str_mv |
http://creativecommons.org/licenses/by-nc-nd/3.0/br/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
http://creativecommons.org/licenses/by-nc-nd/3.0/br/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.publisher.program.fl_str_mv |
Programa de Pos Graduacao em Ciencia da Computacao |
dc.publisher.initials.fl_str_mv |
UFPE |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Federal de Pernambuco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFPE instname:Universidade Federal de Pernambuco (UFPE) instacron:UFPE |
instname_str |
Universidade Federal de Pernambuco (UFPE) |
instacron_str |
UFPE |
institution |
UFPE |
reponame_str |
Repositório Institucional da UFPE |
collection |
Repositório Institucional da UFPE |
bitstream.url.fl_str_mv |
https://repositorio.ufpe.br/bitstream/123456789/52055/1/TESE%20Elvys%20Alves%20Soares.pdf https://repositorio.ufpe.br/bitstream/123456789/52055/2/license_rdf https://repositorio.ufpe.br/bitstream/123456789/52055/3/license.txt https://repositorio.ufpe.br/bitstream/123456789/52055/4/TESE%20Elvys%20Alves%20Soares.pdf.txt https://repositorio.ufpe.br/bitstream/123456789/52055/5/TESE%20Elvys%20Alves%20Soares.pdf.jpg |
bitstream.checksum.fl_str_mv |
cd47dc3534ee0a3b3df19ea20902b823 e39d27027a6cc9cb039ad269a5db8e34 5e89a1613ddc8510c6576f4b23a78973 8c95eac61bacd7ddb49a9a0801606d48 e37e61504197a0799243db830ed1f7d5 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE) |
repository.mail.fl_str_mv |
attena@ufpe.br |
_version_ |
1815172745332260864 |