Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595
Full metadata record
DC FieldValueLanguage
dc.creator.IDALVES, E. L. G.pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/2793969744497453pt_BR
dc.contributor.advisor1MACHADO, Patrícia Duarte de Lima.-
dc.contributor.advisor1IDMACHADO, P. D. L.pt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/2495918356675019pt_BR
dc.contributor.advisor2MASSONI, Tiago LIma.-
dc.contributor.advisor2IDMASSONI, T. L.pt_BR
dc.contributor.advisor2Latteshttp://lattes.cnpq.br/3563923906851611pt_BR
dc.contributor.referee1COELHO, Roberta de Souza.-
dc.contributor.referee2BORBA, Paulo Henrique Monteiro.-
dc.contributor.referee3RAMALHO, Franklin de Souza.-
dc.contributor.referee4GHEYI, Rohit.-
dc.description.resumoUm 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.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentCentro de Engenharia Elétrica e Informática - CEEIpt_BR
dc.publisher.programPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOpt_BR
dc.publisher.initialsUFCGpt_BR
dc.subject.cnpqCiência da Computação.pt_BR
dc.titleEarly detection of manual refactoring faults.pt_BR
dc.date.issued2015-04-07-
dc.description.abstractA 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.pt_BR
dc.identifier.urihttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/595-
dc.date.accessioned2018-05-07T17:20:12Z-
dc.date.available2018-05-07-
dc.date.available2018-05-07T17:20:12Z-
dc.typeTesept_BR
dc.subjectRefactoramento Manualpt_BR
dc.subjectSuítes de Regressãopt_BR
dc.subjectDetecção Antecipada de Falhaspt_BR
dc.subjectRefactoring-Based Approachpt_BR
dc.subjectRefdistillerpt_BR
dc.subjectAnáise Estáticapt_BR
dc.rightsAcesso Abertopt_BR
dc.creatorALVES, Everton Leandro Galdino.-
dc.publisherUniversidade Federal de Campina Grandept_BR
dc.languageengpt_BR
dc.title.alternativeDetecção antecipada de falhas de refatoração manual.pt_BR
dc.identifier.citationALVES, 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/595pt_BR
Appears in Collections:Doutorado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
EVERTON LEANDRO GALDINO ALVES - TESE PPGCC 2015..pdfEverton Leandro Galdino Alves - Tese PPGCC 2015.1.78 MBAdobe PDFView/Open


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