A multimethod study of test smells : cataloging, removal, and new types

Detalhes bibliográficos
Autor(a) principal: SOARES, Elvys Alves
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