• DocumentCode
    588598
  • Title

    An empirical investigation into the impact of refactoring on regression testing

  • Author

    Rachatasumrit, N. ; Miryung Kim

  • Author_Institution
    Univ. of Texas at Austin, Austin, TX, USA
  • fYear
    2012
  • fDate
    23-28 Sept. 2012
  • Firstpage
    357
  • Lastpage
    366
  • Abstract
    It is widely believed that refactoring improves software quality and developer´s productivity by making it easier to maintain and understand software systems. On the other hand, some believe that refactoring has the risk of functionality regression and increased testing cost. This paper investigates the impact of refactoring edits on regression tests using the version history of Java open source projects: (1) Are there adequate regression tests for refactoring in practice? (2) How many of existing regression tests are relevant to refactoring edits and thus need to be re-run for the new version? (3) What proportion of failure-inducing changes are relevant to refactorings? By using a refactoring reconstruction analysis and a change impact analysis in tandem, we investigate the relationship between the types and locations of refactoring edits identified by RefFinder and the affecting changes and affected tests identified by the FaultTracer change impact analysis. The results on three open source projects, JMeter, XMLSecurity, and ANT, show that only 22% of refactored methods and fields are tested by existing regression tests. While refactorings only constitutes 8% of atomic changes, 38% of affected tests are relevant to refactorings. Furthermore, refactorings are involved in almost half of the failed test cases. These results call for new automated regression test augmentation and selection techniques for validating refactoring edits.
  • Keywords
    Java; configuration management; program testing; program verification; public domain software; software maintenance; software quality; system recovery; ANT; FaultTracer; JMeter; Java open source project; RefFinder; XMLSecurity; atomic change; change impact analysis; developer productivity improvement; failure-inducing change; functionality regression; refactoring edit validation; refactoring reconstruction analysis; regression testing; software quality improvement; software system maintenance; software system understanding; testing cost; version history; Conferences; Engines; History; Measurement; Software maintenance; Testing; empirical study; refactoring; regression testing; software evolution;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2012 28th IEEE International Conference on
  • Conference_Location
    Trento
  • ISSN
    1063-6773
  • Print_ISBN
    978-1-4673-2313-0
  • Type

    conf

  • DOI
    10.1109/ICSM.2012.6405293
  • Filename
    6405293