CATSPY: um catálogo de test smells para Python

Detalhes bibliográficos
Autor(a) principal: Meneses, Marayah Sabelle Carvalho
Data de Publicação: 2025
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da Universidade Federal do Ceará (UFC)
Texto Completo: http://repositorio.ufc.br/handle/riufc/81282
Resumo: This work presents CATSPY, a catalog of test smells specifically designed for Python, developed to address the lack of studies focused on this language in the context of test smells. The catalog was created through the analysis of existing catalogs, detection tools, and academic literature, adapting test smells from other languages. Software test quality is a crucial factor for the reliability and maintainability of systems, and the presence of test smells can significantly compromise the effectiveness of automated tests. However, most research and tools aimed at detecting and correcting test smells focus on statically typed languages such as Java, leaving gaps for dynamically typed languages like Python. Given this scenario, this work proposes CATSPY, a catalog developed through the analysis of existing catalogs, detection tools, and academic literature, adapting test smells from other languages. Additionally, this research introduces two new test smells never before documented in the literature: Over-Patching and Mocking Native Functions, based on recurring practices observed in the community. To validate CATSPY, three steps were conducted: comparison with existing catalogs, severity ranking of test smells, and practical validation by experts. The comparison highlighted that the catalog offers unique features such as diverse examples, detailed refactorings, internationalization, and filtering by category, severity, and detectors. The structured classification process labeled the 40 test smells into high, medium, and low severity, ensuring a well-founded categorization. Finally, the practical validation demonstrated a high level of acceptance of the catalog, reinforcing its applicability in improving the quality of Python tests. The results of this research emphasize CATSPY as a tool for developers and testers, promoting cleaner, more maintainable, and reliable test code.
id UFC-7_dbb4f8a89eb9602f7a69f9eb055de23d
oai_identifier_str oai:repositorio.ufc.br:riufc/81282
network_acronym_str UFC-7
network_name_str Repositório Institucional da Universidade Federal do Ceará (UFC)
repository_id_str
spelling Meneses, Marayah Sabelle CarvalhoBezerra, Carla Ilane Moreira2025-06-12T18:24:17Z2025-06-12T18:24:17Z2025MENESES, Marayah Sabelle Carvalho. CATSPY: um catálogo de test smells para Python. 2025. 93 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) - Campus de Quixadá, Universidade Federal do Ceará, Quixadá, 2025.http://repositorio.ufc.br/handle/riufc/81282This work presents CATSPY, a catalog of test smells specifically designed for Python, developed to address the lack of studies focused on this language in the context of test smells. The catalog was created through the analysis of existing catalogs, detection tools, and academic literature, adapting test smells from other languages. Software test quality is a crucial factor for the reliability and maintainability of systems, and the presence of test smells can significantly compromise the effectiveness of automated tests. However, most research and tools aimed at detecting and correcting test smells focus on statically typed languages such as Java, leaving gaps for dynamically typed languages like Python. Given this scenario, this work proposes CATSPY, a catalog developed through the analysis of existing catalogs, detection tools, and academic literature, adapting test smells from other languages. Additionally, this research introduces two new test smells never before documented in the literature: Over-Patching and Mocking Native Functions, based on recurring practices observed in the community. To validate CATSPY, three steps were conducted: comparison with existing catalogs, severity ranking of test smells, and practical validation by experts. The comparison highlighted that the catalog offers unique features such as diverse examples, detailed refactorings, internationalization, and filtering by category, severity, and detectors. The structured classification process labeled the 40 test smells into high, medium, and low severity, ensuring a well-founded categorization. Finally, the practical validation demonstrated a high level of acceptance of the catalog, reinforcing its applicability in improving the quality of Python tests. The results of this research emphasize CATSPY as a tool for developers and testers, promoting cleaner, more maintainable, and reliable test code.Este trabalho apresenta o CATSPY, um catálogo de test smells específico para Python, desenvolvido para suprir a carência de estudos voltados para essa linguagem no contexto de test smells. O catálogo foi elaborado por meio da análise de catálogos existentes, ferramentas de detecção e literatura acadêmica, adaptando test smells de outras linguagens. A qualidade dos testes de software é um fator crucial para a confiabilidade e manutenibilidade dos sistemas, e a presença de test smells pode comprometer significativamente a eficácia dos testes automatizados. No entanto, a maior parte das pesquisas e ferramentas voltadas para a detecção e correção de test smells se concentram em linguagens de tipagem estática, como Java, deixando lacunas para linguagens dinâmicas como Python. Diante desse cenário, este trabalho propõe o CATSPY, um catálogo elaborado por meio da análise de catálogos existentes, ferramentas de detecção e literatura acadêmica, adaptando test smells de outras linguagens. Além disso, a pesquisa propôs dois novos test smells exclusivos na literatura: Over-Patching e Mocking Native Functions, baseados em práticas recorrentes observadas na comunidade. Para validar o CATSPY, foram conduzidas três etapas: comparação com catálogos existentes, classificação sobre severidade dos test smells e validação prática por especialistas. A comparação evidenciou que o catálogo oferece diferenciais como exemplos variados, refatorações detalhadas, internacionalização e filtragem por categorias, severidade e detectores. A classificação estruturada permitiu rotular os 40 test smells em alta, média e baixa severidade, garantindo uma categorização bem fundamentada. Por fim, a validação prática demonstrou alta aceitação do catálogo, reforçando sua aplicabilidade no aprimoramento da qualidade dos testes em Python. Os resultados desta pesquisa destacam a relevância do CATSPY como uma ferramenta para desenvolvedores e testadores, promovendo códigos de teste mais limpos, manuteníveis e confiáveis.CATSPY: um catálogo de test smells para Pythoninfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesistest smellscódigos de teste em Pythontestes automatizadosrefatoraçãoqualidade de softwareCNPQ: CIÊNCIAS EXATAS E DA TERRA: CIÊNCIA DA COMPUTAÇÃOinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da Universidade Federal do Ceará (UFC)instname:Universidade Federal do Ceará (UFC)instacron:UFChttp://lattes.cnpq.br/4277471687235814LICENSElicense.txtlicense.txttext/plain; charset=utf-81748http://repositorio.ufc.br/bitstream/riufc/81282/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52ORIGINAL2025_tcc_mscmeneses.pdf2025_tcc_mscmeneses.pdfapplication/pdf2985633http://repositorio.ufc.br/bitstream/riufc/81282/1/2025_tcc_mscmeneses.pdff33176450d84932c717ac576f913b15dMD51riufc/812822025-06-12 15:24:19.583oai:repositorio.ufc.br:riufc/81282Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttp://www.repositorio.ufc.br/ri-oai/requestbu@ufc.br || repositorio@ufc.bropendoar:2025-06-12T18:24:19Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)false
dc.title.pt_BR.fl_str_mv CATSPY: um catálogo de test smells para Python
title CATSPY: um catálogo de test smells para Python
spellingShingle CATSPY: um catálogo de test smells para Python
Meneses, Marayah Sabelle Carvalho
CNPQ: CIÊNCIAS EXATAS E DA TERRA: CIÊNCIA DA COMPUTAÇÃO
test smells
códigos de teste em Python
testes automatizados
refatoração
qualidade de software
title_short CATSPY: um catálogo de test smells para Python
title_full CATSPY: um catálogo de test smells para Python
title_fullStr CATSPY: um catálogo de test smells para Python
title_full_unstemmed CATSPY: um catálogo de test smells para Python
title_sort CATSPY: um catálogo de test smells para Python
author Meneses, Marayah Sabelle Carvalho
author_facet Meneses, Marayah Sabelle Carvalho
author_role author
dc.contributor.author.fl_str_mv Meneses, Marayah Sabelle Carvalho
dc.contributor.advisor1.fl_str_mv Bezerra, Carla Ilane Moreira
contributor_str_mv Bezerra, Carla Ilane Moreira
dc.subject.cnpq.fl_str_mv CNPQ: CIÊNCIAS EXATAS E DA TERRA: CIÊNCIA DA COMPUTAÇÃO
topic CNPQ: CIÊNCIAS EXATAS E DA TERRA: CIÊNCIA DA COMPUTAÇÃO
test smells
códigos de teste em Python
testes automatizados
refatoração
qualidade de software
dc.subject.ptbr.pt_BR.fl_str_mv test smells
códigos de teste em Python
testes automatizados
refatoração
qualidade de software
description This work presents CATSPY, a catalog of test smells specifically designed for Python, developed to address the lack of studies focused on this language in the context of test smells. The catalog was created through the analysis of existing catalogs, detection tools, and academic literature, adapting test smells from other languages. Software test quality is a crucial factor for the reliability and maintainability of systems, and the presence of test smells can significantly compromise the effectiveness of automated tests. However, most research and tools aimed at detecting and correcting test smells focus on statically typed languages such as Java, leaving gaps for dynamically typed languages like Python. Given this scenario, this work proposes CATSPY, a catalog developed through the analysis of existing catalogs, detection tools, and academic literature, adapting test smells from other languages. Additionally, this research introduces two new test smells never before documented in the literature: Over-Patching and Mocking Native Functions, based on recurring practices observed in the community. To validate CATSPY, three steps were conducted: comparison with existing catalogs, severity ranking of test smells, and practical validation by experts. The comparison highlighted that the catalog offers unique features such as diverse examples, detailed refactorings, internationalization, and filtering by category, severity, and detectors. The structured classification process labeled the 40 test smells into high, medium, and low severity, ensuring a well-founded categorization. Finally, the practical validation demonstrated a high level of acceptance of the catalog, reinforcing its applicability in improving the quality of Python tests. The results of this research emphasize CATSPY as a tool for developers and testers, promoting cleaner, more maintainable, and reliable test code.
publishDate 2025
dc.date.accessioned.fl_str_mv 2025-06-12T18:24:17Z
dc.date.available.fl_str_mv 2025-06-12T18:24:17Z
dc.date.issued.fl_str_mv 2025
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv MENESES, Marayah Sabelle Carvalho. CATSPY: um catálogo de test smells para Python. 2025. 93 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) - Campus de Quixadá, Universidade Federal do Ceará, Quixadá, 2025.
dc.identifier.uri.fl_str_mv http://repositorio.ufc.br/handle/riufc/81282
identifier_str_mv MENESES, Marayah Sabelle Carvalho. CATSPY: um catálogo de test smells para Python. 2025. 93 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) - Campus de Quixadá, Universidade Federal do Ceará, Quixadá, 2025.
url http://repositorio.ufc.br/handle/riufc/81282
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.source.none.fl_str_mv reponame:Repositório Institucional da Universidade Federal do Ceará (UFC)
instname:Universidade Federal do Ceará (UFC)
instacron:UFC
instname_str Universidade Federal do Ceará (UFC)
instacron_str UFC
institution UFC
reponame_str Repositório Institucional da Universidade Federal do Ceará (UFC)
collection Repositório Institucional da Universidade Federal do Ceará (UFC)
bitstream.url.fl_str_mv http://repositorio.ufc.br/bitstream/riufc/81282/2/license.txt
http://repositorio.ufc.br/bitstream/riufc/81282/1/2025_tcc_mscmeneses.pdf
bitstream.checksum.fl_str_mv 8a4605be74aa9ea9d79846c1fba20a33
f33176450d84932c717ac576f913b15d
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da Universidade Federal do Ceará (UFC) - Universidade Federal do Ceará (UFC)
repository.mail.fl_str_mv bu@ufc.br || repositorio@ufc.br
_version_ 1847792193379500032