| Automated testing of refactoring engines |
| Full text |
Pdf
(162 KB)
|
Source
|
Foundations of Software Engineering
archive
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
table of contents
Dubrovnik, Croatia
SESSION: Refactoring automation
table of contents
Pages: 185 - 194
Year of Publication: 2007
ISBN:978-1-59593-811-4
|
|
Authors
|
|
Brett Daniel
|
University of Illinois at Urbana-Champaign, Urbana, IL
|
|
Danny Dig
|
University of Illinois at Urbana-Champaign, Urbana, IL
|
|
Kely Garcia
|
University of Illinois at Urbana-Champaign, Urbana, IL
|
|
Darko Marinov
|
University of Illinois at Urbana-Champaign, Urbana, IL
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 19, Downloads (12 Months): 124, Citation Count: 9
|
|
|
ABSTRACT
Refactorings are behavior-preserving program transformations that improve the design of a program. Refactoring engines are tools that automate the application of refactorings: first the user chooses a refactoring to apply, then the engine checks if the transformation is safe, and if so, transforms the program. Refactoring engines are a key component of modern IDEs, and programmers rely on them to perform refactorings. A bug in the refactoring engine can have severe consequences as it can erroneously change large bodies of source code. We present a technique for automated testing of refactoring engines. Test inputs for refactoring engines are programs. The core of our technique is a framework for iterative generation of structurally complex test inputs. We instantiate the framework to generate abstract syntax trees that represent Java programs. We also create several kinds of oracles to automatically check that the refactoring engine transformed the generated program correctly. We have applied our technique to testing Eclipse and NetBeans, two popular open-source IDEs for Java, and we have exposed 21 new bugs in Eclipse and 24 new bugs in NetBeans.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
 |
5
|
|
| |
6
|
A. Celentano, S. C. Reghizzi, P. D. Vigna, C. Ghezzi, G. Granata, and F. Savoretti. Compiler testing using a sentence generator. Software -- Practice and Experience, 10(11):897--918, 1980.
|
 |
7
|
|
| |
8
|
|
| |
9
|
|
| |
10
|
E. Gamma and K. Beck. JUnit, 1997. http://www.junit.org.
|
| |
11
|
|
| |
12
|
|
| |
13
|
R. Lämmel and W. Schulte. Controllable combinatorial coverage in grammar-based testing. In TestCom, pages 19--38, 2006.
|
| |
14
|
B. A. Malloy and J. F. Power. An interpretation of Purdom's algorithm for automatic generation of test cases. 1st Annual International Conf. on Computer and Information Science, 2001.
|
| |
15
|
|
| |
16
|
|
| |
17
|
|
| |
18
|
W. M. McKeeman. Differential testing for software. Digital Technical Journal, 10(1), 1998.
|
| |
19
|
W. F. Opdyke and R. E. Johnson. Refactoring: an aid in designing application frameworks and evolving object-oriented systems. In Proc. Symposium on Object-Oriented Programming Emphasizing Practical Applications (SOOPPA), Sept 1990.
|
| |
20
|
P. Purdom. A sentence generator for testing parsers. Behavior and Information Technology, 12(3):366--375, 1972.
|
 |
21
|
|
 |
22
|
Kevin Sullivan , Jinlin Yang , David Coppit , Sarfraz Khurshid , Daniel Jackson, Software assurance by bounded exhaustive testing, Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, July 11-14, 2004, Boston, Massachusetts, USA
|
CITED BY 9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lorenzo Martignoni , Roberto Paleari , Giampaolo Fresi Roglia , Danilo Bruschi, Testing CPU emulators, Proceedings of the eighteenth international symposium on Software testing and analysis, July 19-23, 2009, Chicago, IL, USA
|
|
|
|
|
|
|
|