Avaliando a qualidade de suítes de teste geradas automaticamente em detectar faltas introduzidas por refatoramentos. - GOMES, Levi Rios. (2023)
Refatoramentos são a prática em que desenvolvedores alteram seu código de forma que não altere o comportamento do sistema. Tal prática costuma vir acompanhada do uso de suítes de regressão para detectar mudanças de comportamento indesejadas em um sistema. Porém, tais suítes de teste podem não garantir a detecção de faltas, criando um falso senso de segurança durante refatoramentos, visto que a suíte pode não perceber certas alterações. Neste trabalho, propomos uma abordagem que tem por objetivo avaliar tais suítes de teste na sua capacidade de detectar faltas de refatoramento, assim como as comparar com alternativas de geração de suítes de teste automatizadas. Para isso, foi realizado um estudo relacionado às faltas do refatoramento Extract Method, e o desenvolvimento de uma ferramenta que facilita a avaliação de uma suíte de testes, por meio de um plugin da IDE Eclipse feito com a linguagem de programação Java. A partir disso, foram criados mutantes de refatoramento (faltas) e utilizados em um estudo quantitativo, no qual avaliamos as suítes de regressão de 3 diferentes projetos open source, assim como suítes de testes geradas pela ferramenta de geração EvoSuite. Nossos estudos mostraram que existe uma possível relação entre cobertura de testes e detecção de mutantes de refatoramento em um sistema, assim como uma negligência de casos menos comuns durante o desenvolvimento dessas suítes, visto que cerca de 38,7% das faltas de refatoramento injetadas não foram detectadas nas suítes manuais, e 45,3% nas suítes automatizadas, demonstrando que existe espaço para melhoria das suites de teste focadas neste contexto.