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
Link To Document