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 :
بازگشت