Systematic testing of refactoring engines on real software projects

Milos Gligoric, Farnaz Behrang, Yilong Li, Jeffrey Overbey, Munawar Hafiz, Darko Marinov

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Testing refactoring engines is a challenging problem that has gained recent attention in research. Several techniques were proposed to automate generation of programs used as test inputs and to help developers in inspecting test failures. However, these techniques can require substantial effort for writing test generators or finding unique bugs, and do not provide an estimate of how reliable refactoring engines are for refactoring tasks on real software projects. This paper evaluates an end-to-end approach for testing refactoring engines and estimating their reliability by (1) systematically applying refactorings at a large number of places in well-known, open-source projects and collecting failures during refactoring or while trying to compile the refactored projects, (2) clustering failures into a small, manageable number of failure groups, and (3) inspecting failures to identify non-duplicate bugs. By using this approach on the Eclipse refactoring engines for Java and C, we already found and reported 77 new bugs for Java and 43 for C. Despite the seemingly large numbers of bugs, we found these refactoring engines to be relatively reliable, with only 1.4% of refactoring tasks failing for Java and 7.5% for C.

Original languageEnglish (US)
Title of host publicationECOOP 2013, Object-Oriented Programming - 27th European Conference, Proceedings
PublisherSpringer
Pages629-653
Number of pages25
ISBN (Print)9783642390371
DOIs
StatePublished - 2013
Event27th European Conference on Object-Oriented Programming, ECOOP 2013 - Montpellier, France
Duration: Jul 1 2013Jul 5 2013

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume7920 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other27th European Conference on Object-Oriented Programming, ECOOP 2013
Country/TerritoryFrance
CityMontpellier
Period7/1/137/5/13

Keywords

  • Refactoring engines
  • Systematic testing
  • Test clustering

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'Systematic testing of refactoring engines on real software projects'. Together they form a unique fingerprint.

Cite this