Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/28720
Title: Generated tests in the context of maintenance tasks: a series of empirical studies.
Other Titles: Testes gerados no contexto de tarefas de manutenção: uma série de estudos empíricos.
???metadata.dc.creator???: HERCULANO, Wesley Brenno Rodrigues.
???metadata.dc.contributor.advisor1???: ALVES, Everton Leandro Galdino.
???metadata.dc.contributor.advisor2???: LIRA, Melina Mongiovi Brito.
???metadata.dc.contributor.referee1???: MACHADO, Patrícia Duarte de Lima.
???metadata.dc.contributor.referee2???: COELHO, Roberta de Souza.
Keywords: Testes gerados;Manutenção;Randoop;Evosuite;Test smells;Refatoração;Software engineering;Generated tests;Maintenance;Testar cheiros;Refactoring;Engenharia de software;Pruebas generadas;Mantenimiento;Al azar;Refactorización;Ingeniería de software;Tests générés;Entretien;Suite évolutive;Tester les odeurs;Refactorisation;Génie logiciel
Issue Date: 4-Oct-2022
Publisher: Universidade Federal de Campina Grande
Citation: HERCULANO, W. B. R. Generated tests in the context of maintenance tasks: a series of empirical studies. 2022. 87 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2022.
???metadata.dc.description.resumo???: As atividades de manutenção geralmente consomem tempo e são difíceis de gerenciar. Para lidar com isso, os desenvolvedores geralmente usam casos de teste que falham para orientar seus esforços de manutenção. Portanto, possuir bons casos de teste é essencial para o sucesso da manutenção. Testes gerados automaticamente podem economizar tempo e obter uma maior cobertura de código. No entanto, muitas vezes não refletem cenários realistas e incluem test smells. Além disso, não é clara a eficácia destes testes ao orientar as atividades de manutenção, nem se os desenvolvedores os aceitam totalmente. Neste trabalho, apresentamos uma série de estudos empíricos que avaliam se testes gerados automaticamente podem dar suporte aos desenvolvedores na manutenção do código. Primeiro, realizamos um estudo com 20 desenvolvedores para comparar como eles executam atividades de manutenção com testes gerados automaticamente (Evosuite ou Randoop) e testes escritos manualmente, obtendo resultados que mostram que testes gerados automaticamente podem ser de grande ajuda para identificar falhas durante a manutenção, com os desenvolvedores sendo mais precisos na identificação de atividades de manutenção ao usar os testes gerados pelo Evosuite e igualmente eficazes nas correções de bugs usando testes manuais e testes gerados pelo Evosuite e Randoop. Em seguida, aplicamos um questionário com 82 desenvolvedores para avaliar a percepção sobre o uso de testes do Randoop (ferramenta que, de maneira geral, apresentou o pior desempenho no primeiro estudo) refatorados removendo 3 tipos de testes smells, onde os resultados demonstram que os desenvolvedores preferiram testes do Randoop refatorados aos originais. Por fim, realizamos um terceiro estudo empírico com 24 desenvolvedores focado em avaliar o impacto dos Randoop refatorados em atividades de manutenção, com resultados evidenciando que as refatorações aplicadas não melhoraram o desempenho dos desenvolvedores na detecção de falhas. Por outro lado, os desenvolvedores foram mais eficazes na correção das faltas usando testes Randoop refatorados.
Abstract: Maintenance tasks are often time-consuming and hard to manage. To cope with that, developers often use failing test cases to guide their maintenance efforts. Therefore, working with good test cases is essential to the success of maintenance. Automatically generated tests can save time and lead to higher code coverage. However, they often do not reflect realistic scenarios and include test smells. Moreover, it is not clear whether generated tests can be effective when guiding maintenance tasks, nor if developers fully accept them. In this work, we present a series of empirical studies that evaluate if automatically generated tests can support developers when maintaining code. First, we ran an empirical study with 20 real developers to compare how they perform maintenance tasks with automatically generated (Evosuite or Randoop) and manually-written tests. Our results showed that automatically generated tests can be a great help for identifying faults during maintenance. Developers were more accurate at identifying maintenance tasks when using Evosuite tests and equally effective to create bug fixes when using manually written, Evosuite, and Randoop. Then, we applied a survey with 82 developers to assess developers’ perceptions of the use of Randoop tests (that presented the worst performance in the first study) refactored by removing 3 kinds of test smells. Results of this investigation showed that developers preferred refactored Randoop tests to the original ones. Finally, a third empirical study with 24 developers focused on evaluating the impact of these refactored Randoop tests on maintenance performance. We found that the refactorings applied did not improve their performance in detecting the faults. On the other hand, developers were more effective in fixing the faults using refactored Randoop tests.
Keywords: Testes gerados
Manutenção
Randoop
Evosuite
Test smells
Refatoração
Software engineering
Generated tests
Maintenance
Testar cheiros
Refactoring
Engenharia de software
Pruebas generadas
Mantenimiento
Al azar
Refactorización
Ingeniería de software
Tests générés
Entretien
Suite évolutive
Tester les odeurs
Refactorisation
Génie logiciel
???metadata.dc.subject.cnpq???: Ciência da Computação
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/28720
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
WESLEY BRENNO RODRIGUES HERCULANO – DISSERTAÇÃO (PPGCC) 2022.pdf10.75 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.