CATSPY: um catálogo de test smells para Python
| Autor(a) principal: | |
|---|---|
| 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 |