Early detection of manual refactoring faults.

Detalhes bibliográficos
Ano de defesa: 2015
Autor(a) principal: ALVES, Everton Leandro Galdino.
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: 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
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595
Resumo: Um estudo recente mostra que cerca de 90% de todos os refactoramentos são aplicadosmanualmente. Refatoramentos manuais são mais suscetíveis a erro, uma vez que desenvolvedores tem que coordenar transformações relacionadas e entender relações, muitas vezes complexas, entre arquivos, variáveis e métodos. Neste contexto, suites de regressão são usadas para diminuir as chances de introdução de defeitos durante refatoramentos. Contudo, devido aos altos custos de lidar com suites massivas, existe a necessidade de otimização da execução destas. Técnicas de priorização de casos de teste propõem uma nova ordem de execução, almejando a detecção antecipada de faltas. Entretanto, as técnicas atuais não são projetadas para lidar especificamente com faltas relacionadas a refatoramentos. Neste documento propomos RBA (Refactoring-Based Approach), uma técnica de prioritização voltada para refatoramentos. RBA reordena uma suite existente de acordo com um conjunto de modelos de falta (Refactoring Fault Models - RFMs). Estes abrangem os elementos de códigoque são geralmente impactados dado um refatoramento. Apesar de ser a técnica de validação de refatoramentos mais usada na prática, em alguns casos, o uso de suites de regressão pode ser inadequado. Suites inadequadas podem impedir desenvolvedores de iniciar uma tarefa de refatoramento dada as chances de introdução de defeitos. A fim de complementar a validação por testes e ajudar na revisão de refatoramentos, nós propomos REFDISTILLER, uma técnica que usa anáise estática para detectar edições de código negligenciadas e edições extra que desviam de um refatoramento padrão e podem vir a mudar o comportamento do software. Ambas abordagens (RBA e REFDISTILLER) focam em sistemas Java/JUnit e em um sub conjunto dos refatoramentos mais comuns. Uma avaliação usando um dataset composto de faltas de refatoramento sutis, e comparando com técnicas de prioritização tradicionais, mostra que RBA melhor prioriza as suites em 71% dos casos, promovendo um melhor agrupamento dos casos de teste em 73% dos casos. REFDISTILLER detecta 97% das faltas do nosso dataset de faltas injetadas. Destas, 24% não são detectadas por suites de teste geradas. Finalmente, em um estudo com projetos open-source, REFDISTILLER detecta 22.1 mais anomalias que as suites de teste, com uma precisão de 94%. Esses resultados mostram que (i) RBA consegue melhorar consideravelmente a priorização durante evoluções perfectivas, melhorando tanto a antecipação da detecção de defeitos, quanto fornecendo mais informação sobre estes antecipadamente; (ii) REFDISTILLER complementa efetivamente a análise dinâmica por achar novas anomalias e fornecer informações extra que ajudam no debug e correção das faltas.
id UCB-2_10221f36f1eb67bc45670ff57688b61b
oai_identifier_str oai:localhost:riufcg/595
network_acronym_str UCB-2
network_name_str Repositório Institucional da UCB
repository_id_str
spelling Early detection of manual refactoring faults.Detecção antecipada de falhas de refatoração manual.Refactoramento ManualSuítes de RegressãoDetecção Antecipada de FalhasRefactoring-Based ApproachRefdistillerAnáise EstáticaCiência da Computação.Um estudo recente mostra que cerca de 90% de todos os refactoramentos são aplicadosmanualmente. Refatoramentos manuais são mais suscetíveis a erro, uma vez que desenvolvedores tem que coordenar transformações relacionadas e entender relações, muitas vezes complexas, entre arquivos, variáveis e métodos. Neste contexto, suites de regressão são usadas para diminuir as chances de introdução de defeitos durante refatoramentos. Contudo, devido aos altos custos de lidar com suites massivas, existe a necessidade de otimização da execução destas. Técnicas de priorização de casos de teste propõem uma nova ordem de execução, almejando a detecção antecipada de faltas. Entretanto, as técnicas atuais não são projetadas para lidar especificamente com faltas relacionadas a refatoramentos. Neste documento propomos RBA (Refactoring-Based Approach), uma técnica de prioritização voltada para refatoramentos. RBA reordena uma suite existente de acordo com um conjunto de modelos de falta (Refactoring Fault Models - RFMs). Estes abrangem os elementos de códigoque são geralmente impactados dado um refatoramento. Apesar de ser a técnica de validação de refatoramentos mais usada na prática, em alguns casos, o uso de suites de regressão pode ser inadequado. Suites inadequadas podem impedir desenvolvedores de iniciar uma tarefa de refatoramento dada as chances de introdução de defeitos. A fim de complementar a validação por testes e ajudar na revisão de refatoramentos, nós propomos REFDISTILLER, uma técnica que usa anáise estática para detectar edições de código negligenciadas e edições extra que desviam de um refatoramento padrão e podem vir a mudar o comportamento do software. Ambas abordagens (RBA e REFDISTILLER) focam em sistemas Java/JUnit e em um sub conjunto dos refatoramentos mais comuns. Uma avaliação usando um dataset composto de faltas de refatoramento sutis, e comparando com técnicas de prioritização tradicionais, mostra que RBA melhor prioriza as suites em 71% dos casos, promovendo um melhor agrupamento dos casos de teste em 73% dos casos. REFDISTILLER detecta 97% das faltas do nosso dataset de faltas injetadas. Destas, 24% não são detectadas por suites de teste geradas. Finalmente, em um estudo com projetos open-source, REFDISTILLER detecta 22.1 mais anomalias que as suites de teste, com uma precisão de 94%. Esses resultados mostram que (i) RBA consegue melhorar consideravelmente a priorização durante evoluções perfectivas, melhorando tanto a antecipação da detecção de defeitos, quanto fornecendo mais informação sobre estes antecipadamente; (ii) REFDISTILLER complementa efetivamente a análise dinâmica por achar novas anomalias e fornecer informações extra que ajudam no debug e correção das faltas.A recent study states that about 90% of all refactorings are done manually. Manual refactoring edits are error prone, as refactoring requires developers to coordinaterelated transformations and to understand the complex inter-relationship between affected files, variables, and methods. In this context, regression tests suites are often used as safety net for decreasing the chances of introducing behavior changes while refactoring. However, due to the high costs related to handling massive test suites, there is a need for optimizing testing execution. Test case prioritization techniques propose new test execution orders fostering early fault detection. However, existing general-purpose prioritization techniques are not specifically designed for detecting refactoring-related faults. In this work we propose a refactoringaware strategy - (RBA) (Refactoring-Based Approach) – for prioritizing regression test case execution. RBA reorders an existing test suite, according to a set of proposed Refactoring Fault Models (RFMs), which comprise impact locations of certain refactorings. Although being the most used refactoring validation strategy in practice, regression suites might be inadequate. Inadequate test suites may prevent developers from initiating or performing refactorings due to the risk of introducing bugs. To complement testing validation and help developers to review refactorings, we propose REFDISTILLER, a static analysis approach for detecting missing and extra edits that deviate from a standard refactoring and thus may affect a program’s behavior. Both strategies (RBA and RefDistiller) focus on Java/JUnit systems and on a set of the most common refactoring types. Our evaluation using a data set composed by hard-to-identify refactoring faults shows that RBA improves the position of the first fault-revealing test case in 71% of the suites, also providing a better grouping rate (in 73% of the cases) for test cases in the prioritized sequence, when compared to well-know general purpose techniques. Regarding REFDISTILLER, it detects 97% of all faults from our data set with seeded refactoring faults, of which 24% are not detected by generated test suites. Moreover, in a study with open source projects. REFDISTILLER detects 22.1 times more anomalies than testing, with 94% precision on overage. Those results show that (i) RBA can considerably improve prioritization during perfective evolution, both by anticipating fault detection as well as by helping to giving more information about the defects earlier, and (ii) REFDISTILLER effectively complements dynamic analysis by finding additional anomalies, while providing information that help fault debugging/fixing.Universidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGMACHADO, Patrícia Duarte de Lima.MACHADO, P. D. L.http://lattes.cnpq.br/2495918356675019MASSONI, Tiago LIma.MASSONI, T. L.http://lattes.cnpq.br/3563923906851611COELHO, Roberta de Souza.BORBA, Paulo Henrique Monteiro.RAMALHO, Franklin de Souza.GHEYI, Rohit.ALVES, Everton Leandro Galdino.2015-04-072018-05-07T17:20:12Z2018-05-072018-05-07T17:20:12Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595ALVES, Everton Leandro Galdino. Early detection of manual refactoring faults. 2015. 142 f. (Tese de Doutorado 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, 2015. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595enginfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UCBinstname:Universidade Católica de Brasília (UCB)instacron:UCB2022-03-14T20:26:15Zoai:localhost:riufcg/595Repositório InstitucionalPRIhttps://repositorio.ucb.br/oai/requestsara.ribeiro@ucb.bropendoar:2022-03-14T20:26:15Repositório Institucional da UCB - Universidade Católica de Brasília (UCB)false
dc.title.none.fl_str_mv Early detection of manual refactoring faults.
Detecção antecipada de falhas de refatoração manual.
title Early detection of manual refactoring faults.
spellingShingle Early detection of manual refactoring faults.
ALVES, Everton Leandro Galdino.
Refactoramento Manual
Suítes de Regressão
Detecção Antecipada de Falhas
Refactoring-Based Approach
Refdistiller
Anáise Estática
Ciência da Computação.
title_short Early detection of manual refactoring faults.
title_full Early detection of manual refactoring faults.
title_fullStr Early detection of manual refactoring faults.
title_full_unstemmed Early detection of manual refactoring faults.
title_sort Early detection of manual refactoring faults.
author ALVES, Everton Leandro Galdino.
author_facet ALVES, Everton Leandro Galdino.
author_role author
dc.contributor.none.fl_str_mv MACHADO, Patrícia Duarte de Lima.
MACHADO, P. D. L.
http://lattes.cnpq.br/2495918356675019
MASSONI, Tiago LIma.
MASSONI, T. L.
http://lattes.cnpq.br/3563923906851611
COELHO, Roberta de Souza.
BORBA, Paulo Henrique Monteiro.
RAMALHO, Franklin de Souza.
GHEYI, Rohit.
dc.contributor.author.fl_str_mv ALVES, Everton Leandro Galdino.
dc.subject.por.fl_str_mv Refactoramento Manual
Suítes de Regressão
Detecção Antecipada de Falhas
Refactoring-Based Approach
Refdistiller
Anáise Estática
Ciência da Computação.
topic Refactoramento Manual
Suítes de Regressão
Detecção Antecipada de Falhas
Refactoring-Based Approach
Refdistiller
Anáise Estática
Ciência da Computação.
description Um estudo recente mostra que cerca de 90% de todos os refactoramentos são aplicadosmanualmente. Refatoramentos manuais são mais suscetíveis a erro, uma vez que desenvolvedores tem que coordenar transformações relacionadas e entender relações, muitas vezes complexas, entre arquivos, variáveis e métodos. Neste contexto, suites de regressão são usadas para diminuir as chances de introdução de defeitos durante refatoramentos. Contudo, devido aos altos custos de lidar com suites massivas, existe a necessidade de otimização da execução destas. Técnicas de priorização de casos de teste propõem uma nova ordem de execução, almejando a detecção antecipada de faltas. Entretanto, as técnicas atuais não são projetadas para lidar especificamente com faltas relacionadas a refatoramentos. Neste documento propomos RBA (Refactoring-Based Approach), uma técnica de prioritização voltada para refatoramentos. RBA reordena uma suite existente de acordo com um conjunto de modelos de falta (Refactoring Fault Models - RFMs). Estes abrangem os elementos de códigoque são geralmente impactados dado um refatoramento. Apesar de ser a técnica de validação de refatoramentos mais usada na prática, em alguns casos, o uso de suites de regressão pode ser inadequado. Suites inadequadas podem impedir desenvolvedores de iniciar uma tarefa de refatoramento dada as chances de introdução de defeitos. A fim de complementar a validação por testes e ajudar na revisão de refatoramentos, nós propomos REFDISTILLER, uma técnica que usa anáise estática para detectar edições de código negligenciadas e edições extra que desviam de um refatoramento padrão e podem vir a mudar o comportamento do software. Ambas abordagens (RBA e REFDISTILLER) focam em sistemas Java/JUnit e em um sub conjunto dos refatoramentos mais comuns. Uma avaliação usando um dataset composto de faltas de refatoramento sutis, e comparando com técnicas de prioritização tradicionais, mostra que RBA melhor prioriza as suites em 71% dos casos, promovendo um melhor agrupamento dos casos de teste em 73% dos casos. REFDISTILLER detecta 97% das faltas do nosso dataset de faltas injetadas. Destas, 24% não são detectadas por suites de teste geradas. Finalmente, em um estudo com projetos open-source, REFDISTILLER detecta 22.1 mais anomalias que as suites de teste, com uma precisão de 94%. Esses resultados mostram que (i) RBA consegue melhorar consideravelmente a priorização durante evoluções perfectivas, melhorando tanto a antecipação da detecção de defeitos, quanto fornecendo mais informação sobre estes antecipadamente; (ii) REFDISTILLER complementa efetivamente a análise dinâmica por achar novas anomalias e fornecer informações extra que ajudam no debug e correção das faltas.
publishDate 2015
dc.date.none.fl_str_mv 2015-04-07
2018-05-07T17:20:12Z
2018-05-07
2018-05-07T17:20:12Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595
ALVES, Everton Leandro Galdino. Early detection of manual refactoring faults. 2015. 142 f. (Tese de Doutorado 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, 2015. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595
url http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595
identifier_str_mv ALVES, Everton Leandro Galdino. Early detection of manual refactoring faults. 2015. 142 f. (Tese de Doutorado 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, 2015. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595
dc.language.iso.fl_str_mv eng
language eng
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:Repositório Institucional da UCB
instname:Universidade Católica de Brasília (UCB)
instacron:UCB
instname_str Universidade Católica de Brasília (UCB)
instacron_str UCB
institution UCB
reponame_str Repositório Institucional da UCB
collection Repositório Institucional da UCB
repository.name.fl_str_mv Repositório Institucional da UCB - Universidade Católica de Brasília (UCB)
repository.mail.fl_str_mv sara.ribeiro@ucb.br
_version_ 1834013130958569472