Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624
Title: Uma abordagem para avaliar refatoramentos baseada no impacto da mudança.
Other Titles: An approach to evaluate refactorings based on the impact of change.
???metadata.dc.creator???: SABINO, Melina Mongiovi Cunha Lima.
???metadata.dc.contributor.advisor1???: GHEYI, Rohit.
???metadata.dc.contributor.referee1???: FARIAS, Adalberto Cajueiro de.
???metadata.dc.contributor.referee2???: COELHO, Roberta de Souza.
Keywords: Avaliação de refatoramentos;Impacto da mudança - software;Engenharia de software;Análise do impacto;Teste de programas;Teste de software;SafeRefactor;Software testing
Issue Date: 11-Mar-2013
Publisher: Universidade Federal de Campina Grande
Citation: SABINO, Melina Mongiovi Cunha Lima. Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. 2013. 150f. (Dissertação de 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, 2013. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624
???metadata.dc.description.resumo???: Refatoramentos são transformações que melhoram a estrutura interna do programa preservando seu comportamento observável. Na prática, desenvolvedores utilizam testes de regressão e ferramentas para garantir que o refatoramento preservou o comportamento do programa. Entretanto, ferramentas de refatoramentos possuem bugs. Além disso, a coleção de testes pode ser modificada pela transformação aplicada manualmente ou pela ferramenta. Se a transformação não for aplicada corretamente, esta pode modificar a coleção de testes incapacitando-a de detectar a mudança comportamental. Por fim, a coleção pode não ser adequada para testar a transformação, pois os casos de testes podem não exercitar as entidades impactadas pela transformação. Este problema se torna maior se a coleção de testes for grande, tornando a execução de toda a coleção de testes custosa. Nós propomos uma abordagem para avaliar preservação de comportamento em refatoramentos baseada em geração automática de testes e análise de impacto da mudança. A abordagem analisa o impacto da mudança e gera automaticamente testes apenas para os métodos impactados pela transformação. Implementamos uma ferramenta chamada SafeRefactorlmpact para avaliar a preservação de comportamento. Esta utiliza Safira, ferramenta que implementamos para realizar a análise de impacto. Avaliamos SafeRefactorlmpact em um conjunto de 10 transformações aplicadas a um sistema real, e em uma técnica para testar implementações de refatoramentos. Além disso, comparamos SafeRefactorlmpact com SafeRefactor, uma ferramenta que também avalia preservação de comportamento em refatoramentos mas não utiliza análise de impacto. Nós comparamos com relação às mudanças comportamentais identificadas, quantidade de métodos identificados para geração de testes, tempo total da análise da transformação, quantidade de casos de testes gerados e cobertura da mudança dos testes gerados. O SafeRefactorlmpact conseguiu identificar mudanças comportamentais não identificadas pelo SafeRefactor, reduziu em torno de 60% o tempo para testar implementações de refatoramentos, mostrou-se menos sensível ao tempo limite passado para o gerador automático de testes, além da análise de impacto permitir a diminuição de algumas limitações do gerador automático de testes enfrentadas pelo SafeRefactor.
Abstract: Refactorings are transformations that improve the internal structure of the program while preserving its observable behavior. In practice, developers use regression tests and refactoring tools to ensure that the refactoring has preserved the behavior of the program. However, refactoring tools may have bugs. In addition, the test suite may be modified by the transformation applied manually or using a refactoring tool. If the transformation is applied incorrectly, it can change the test suite by disabling it to detect the behavioral change. Finally, the test suite may be inappropriate to test the transformation because the test cases may not exercise the change. This problem can get worse if the test suite is large. This way, it is time consuming executing the entire test suite. We propose an approach for evaluating whether a transformation is behavior preserving based on change impact analysis. This approach performs a change impact analysis and it automatically generates tests only to the methods impacted by the transformation. We implemented a tool called SafeRefactorlmpact to evaluate behavior preservation. It uses Safira, a tool that we implemented to identify the methods impacted by a change in the program. We evaluate SafeRefactorlmpact in a set of 10 transformations applied to a real system and to a technique to test refactoring implementations. Moreover, we compared the SafeRefactorlmpact with SafeRefactor, a tool that also evaluates whether a transformation preserves the program behavior. The difference is that SafeRefactor does not use the impact analysis. The SafeRefactorlmpact managed to identify behavioral changes not identified by SafeRefactor; it reduced in 60% the total time to analyze the refactoring implementations; it showed to be less sensitive to the time limit to generate the tests; and the impact analysis allows the reduction of some limitations of the automatic tests generator faced by the SafeRefactor.
Keywords: Avaliação de refatoramentos
Impacto da mudança - software
Engenharia de software
Análise do impacto
Teste de programas
Teste de software
SafeRefactor
Software testing
???metadata.dc.subject.cnpq???: Ciência da Computação.
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
MELINA MANGIOVI CUNHA LIMA SABINO - PPGCC DISSERTAÇÃO 2013.pdfMelina Mongiovi Cunha Lima Sabino - Dissertação PPGCC 2013.30.04 MBAdobe PDFView/Open


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