Skip navigation
Universidade Federal da Bahia |
Repositório Institucional da UFBA
Use este identificador para citar ou linkar para este item: https://repositorio.ufba.br/handle/ri/39886
Registro completo de metadados
Campo DCValorIdioma
dc.creatorMartins, Luana Almeida-
dc.date.accessioned2024-08-15T13:18:34Z-
dc.date.available2024-08-15T13:18:34Z-
dc.date.issued2024-03-26-
dc.identifier.citationMARTINS, Luana Almeida. Smart prediction for test smell refactorings. 2024. 184 f. Tese (Doutorado em Ciência da Computação), Instituto de Computação, Universidade Federal da Bahia, Salvador (Bahia), 2024.pt_BR
dc.identifier.urihttps://repositorio.ufba.br/handle/ri/39886-
dc.description.abstractTest smells are considered bad practices for developing the test code. Their presence can reduce the test code quality, thus harming software testing and maintenance activities. Software refactoring has been a key practice to handle smells and improve software quality without changing its behavior. However, existing refactoring tools target production code with very different characteristics than test code. Despite the research invested in test smell refactoring, little is known about whether current refactorings improve the test code quality. In this thesis, a machine learning-based approach is presented that can help developers decide when and how to refactor test smells. First, we aim to mine refactorings performed by developers to derive a catalog of test-specific refactorings and their impact on the test code. Our findings show that developers prefer specific features of the testing frameworks, which may lead to test smells such as Inappropriate Assertion and Exception Handling. While the refactorings proposed in the literature aligned with the evolution of testing frameworks to help refactor test smells, the Inappropriate Assertion remains unexplored in the literature. Second, we aim to understand whether developers target low-quality test codes to perform refactorings and the effects of refactorings on test code quality improvement. Our findings show that low-quality test code, especially regarding structural metrics, is more likely to undergo refactorings. Common refactorings between test and production code contribute more to improving test code quality in terms of cohesion, size, and complexity. Test-specific refactorings enhance quality concerning the resolution of test smells. Third, we aim to learn whether developers would perform refactorings and which refactorings they would apply to improve the test code quality. Results indicate that the accuracy of Support Vector Machines models varies between 30% and 100% in different projects for detecting when a developer would perform a refactoring. However, accuracy decreases for detecting specific refactorings due to the low data on test refactorings found in analyzed projects. Overall, this research demonstrates the feasibility of using structural metrics and test smells for detecting test refactorings. In addition, it highlights the need for improvements through the analysis of synthetic data and project development context. The proposed approach supports the detection and refactoring of test smells aligned with development practices currently adopted by developers.pt_BR
dc.description.sponsorshipFundação de Amparo à Pesquisa do Estado da Bahia (FAPESB)pt_BR
dc.description.sponsorshipCoordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)pt_BR
dc.languageengpt_BR
dc.publisherUniversidade Federal da Bahiapt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectRefatoração de testept_BR
dc.subjectTest smellspt_BR
dc.subjectAprendizado de máquinapt_BR
dc.subjectComputaçãopt_BR
dc.subject.otherTest refactoringpt_BR
dc.subject.otherTest smellspt_BR
dc.subject.otherMachine Learningpt_BR
dc.subject.otherComputingpt_BR
dc.titleSmart prediction for test smell refactorings.pt_BR
dc.title.alternativePrevisão inteligente para refatorações de teste de cheiro.pt_BR
dc.typeTesept_BR
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computação (PGCOMP) pt_BR
dc.publisher.initialsUFBApt_BR
dc.publisher.countryBrasilpt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWAREpt_BR
dc.contributor.advisor1Machado, Ivan do Carmo-
dc.contributor.advisor1IDhttps://orcid.org/0000-0001-9027-2293pt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4430958315746203pt_BR
dc.contributor.advisor-co1Costa, Heitor Augustus Xavier-
dc.contributor.advisor-co1IDhttps://orcid.org/0000-0002-9903-7414pt_BR
dc.contributor.advisor-co1Latteshttp://lattes.cnpq.br/1320324289662918pt_BR
dc.contributor.referee1Machado, Ivan do Carmo-
dc.contributor.referee1IDhttps://orcid.org/0000-0001-9027-2293pt_BR
dc.contributor.referee1Latteshttp://lattes.cnpq.br/4430958315746203pt_BR
dc.contributor.referee2Vergilio, Silvia Regina-
dc.contributor.referee2Latteshttp://lattes.cnpq.br/0401470121643212pt_BR
dc.contributor.referee3Gheyi, Rohit-
dc.contributor.referee3IDhttps://orcid.org/0000-0002-5562-4449pt_BR
dc.contributor.referee3Latteshttp://lattes.cnpq.br/2931270888717344pt_BR
dc.contributor.referee4Figueiredo, Eduardo Magno Lages-
dc.contributor.referee4Latteshttp://lattes.cnpq.br/1265706528850746pt_BR
dc.contributor.referee5Neto, Manoel Gomes de Mendonça-
dc.contributor.referee5Latteshttp://lattes.cnpq.br/1608062196337851pt_BR
dc.creator.IDhttps://orcid.org/0000-0001-6340-7615pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/7053866339605856pt_BR
dc.description.resumoOs test smells são considerados más práticas durante o desenvolvimento do código de teste. Sua presença pode reduzir a qualidade do código de teste, prejudicando as ativi- dades de teste e manutenção de software. A refatoração de software é uma prática fundamental para lidar com smells e melhorar a qualidade do software sem alterar seu comportamento. No entanto, as ferramentas de refatoração existentes são voltadas para o código de produção, com características muito diferentes do código de teste. Ape- sar do esforço da comunidade em investigar sobre refatorações de test smells, pouco se sabe sobre os efeitos das refatorações para a qualidade do código de teste. Nesta tese, é apresentada uma abordagem baseada em aprendizado de máquina que pode ajudar os desenvolvedores a decidir quando e como refatorar os test smells. O primeiro objetivo é minerar as refatorações realizadas por desenvolvedores a fim de derivar um catálogo de refatorações de teste e seu impacto no código de teste. Como resultados, pôde-se perceber que os desenvolvedores têm preferência por recursos específicos dos frameworks de teste, o que pode levar a test smells como o Inappropriate Assertion e o Exception Handling. Enquanto as refatorações propostas na literatura alinhadas com a evolução dos frameworks de teste auxiliam na refatoração de test smells, o Inappropriate Asser- tion permanece pouco explorado na literatura. O segundo objetivo busca entender se os códigos de teste com baixa qualidade são alvos de refatoração pelos desenvolvedores e os efeitos das refatorações para a melhoria da qualidade. Como resultados, pôde-se observar que códigos de teste com baixa qualidade, em especial, em termos de métricas estruturais, possuem mais possibilidade de sofrer refatorações. Além disso, as refactorações comuns entre código de teste e produção ajudam a melhorar a qualidade do código de teste em relação à coesão, tamanho e complexidade, enquanto que, refatorações específicas de teste ajudam na melhoria da qualidade em relação a resolução de test smells. O terceiro ob- jetivo utiliza aprendizado de máquina para classificar onde e como os desenvolvedores realizam refatorações teste com o potencial de corrigir os test smells. Os resultados in- dicam que a acurácia do aprendizado de máquina, utilizando o algoritmo Support Vector Machines, varia entre 30% e 100% em diferentes projetos para a detecção de quando o desenvolvedor realizaria alguma refatoração no código. Porém, acurácia diminui para a detecção de refatorações específicas, devido à quantidade de refatorações encontradas nos projetos analisados. De modo geral, esta pesquisa mostra a viabilidade do uso de métricas e test smells para a detecção de refatorações de teste, evidenciando ainda a necessidade de melhorias por meio da análise de dados sintéticos e do contexto de desenvolvimento dos projetos. A abordagem apoia a detecção e refatoração de test smells alinhadas às práticas de desenvolvimento atualmente adotadas pelos desenvolvedores.pt_BR
dc.publisher.departmentInstituto de Computação - ICpt_BR
dc.type.degreeDoutoradopt_BR
Aparece nas coleções:Tese (PGCOMP)

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Tese_CapaAzul_LuanaMartins.pdfTese de Doutorado. Luana Almeida Martins9,99 MBAdobe PDFVisualizar/Abrir
Mostrar registro simples do item Visualizar estatísticas


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.