Uma abordagem para avaliar refatoramentos baseada no impacto da mudança.
Autor(a) principal: | |
---|---|
Data de Publicação: | 2013 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da UFCG |
Texto Completo: | http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624 |
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. |
id |
UFCG_884e110e9e5736a963153bdb28d2601e |
---|---|
oai_identifier_str |
oai:localhost:riufcg/1624 |
network_acronym_str |
UFCG |
network_name_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository_id_str |
4851 |
spelling |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança.An approach to evaluate refactorings based on the impact of change.Avaliação de refatoramentosImpacto da mudança - softwareEngenharia de softwareAnálise do impactoTeste de programasTeste de softwareSafeRefactorSoftware testingCiência da Computação.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.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.CNPqUniversidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGGHEYI, Rohit.GHEYI, R.http://lattes.cnpq.br/2931270888717344FARIAS, Adalberto Cajueiro de.COELHO, Roberta de Souza.SABINO, Melina Mongiovi Cunha Lima.2013-03-112018-08-31T23:21:36Z2018-08-312018-08-31T23:21:36Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624SABINO, 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/1624porinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2022-03-21T20:03:11Zoai:localhost:riufcg/1624Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512022-03-21T20:03:11Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false |
dc.title.none.fl_str_mv |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. An approach to evaluate refactorings based on the impact of change. |
title |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. |
spellingShingle |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. SABINO, Melina Mongiovi Cunha Lima. 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 Ciência da Computação. |
title_short |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. |
title_full |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. |
title_fullStr |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. |
title_full_unstemmed |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. |
title_sort |
Uma abordagem para avaliar refatoramentos baseada no impacto da mudança. |
author |
SABINO, Melina Mongiovi Cunha Lima. |
author_facet |
SABINO, Melina Mongiovi Cunha Lima. |
author_role |
author |
dc.contributor.none.fl_str_mv |
GHEYI, Rohit. GHEYI, R. http://lattes.cnpq.br/2931270888717344 FARIAS, Adalberto Cajueiro de. COELHO, Roberta de Souza. |
dc.contributor.author.fl_str_mv |
SABINO, Melina Mongiovi Cunha Lima. |
dc.subject.por.fl_str_mv |
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 Ciência da Computação. |
topic |
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 Ciência da Computação. |
description |
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. |
publishDate |
2013 |
dc.date.none.fl_str_mv |
2013-03-11 2018-08-31T23:21:36Z 2018-08-31 2018-08-31T23:21:36Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624 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 |
url |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/1624 |
identifier_str_mv |
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 |
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.publisher.none.fl_str_mv |
Universidade Federal de Campina Grande Brasil Centro de Engenharia Elétrica e Informática - CEEI PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UFCG |
publisher.none.fl_str_mv |
Universidade Federal de Campina Grande Brasil Centro de Engenharia Elétrica e Informática - CEEI PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO UFCG |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da UFCG instname:Universidade Federal de Campina Grande (UFCG) instacron:UFCG |
instname_str |
Universidade Federal de Campina Grande (UFCG) |
instacron_str |
UFCG |
institution |
UFCG |
reponame_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
collection |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG) |
repository.mail.fl_str_mv |
bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br |
_version_ |
1809744358025461760 |