Proceedings of the 3rd Annual Conference on Systems, Programming, and Applications: Software for Humanity 2012
DOI: 10.1145/2384716.2384737
|View full text |Cite
|
Sign up to set email alerts
|

Automated behavioral testing of refactoring engines

Abstract: Refactoring is a transformation that preserves the external behavior of a program and improves its internal quality. Usually, compilation errors and behavioral changes are avoided by preconditions. However, defining and implementing preconditions is a complex task. As a result, even mainstream refactoring engines contain critical bugs. We propose an automated approach for testing of Java refactoring engines based on program generation.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
22
0

Year Published

2013
2013
2020
2020

Publication Types

Select...
3
3
2

Relationship

0
8

Authors

Journals

citations
Cited by 17 publications
(22 citation statements)
references
References 9 publications
0
22
0
Order By: Relevance
“…However, it is difficult for tool builders to identify all preconditions needed for each refactoring. Even state-of-the-art academic and industrial Java refactoring tools may introduce bugs [6]. Also, Ge et al [4] show that programmers sometimes fail to recognize that they are going to refactor before manually starting the refactoring, leading to an underuse of refactoring tools.…”
Section: Methodsmentioning
confidence: 99%
See 1 more Smart Citation
“…However, it is difficult for tool builders to identify all preconditions needed for each refactoring. Even state-of-the-art academic and industrial Java refactoring tools may introduce bugs [6]. Also, Ge et al [4] show that programmers sometimes fail to recognize that they are going to refactor before manually starting the refactoring, leading to an underuse of refactoring tools.…”
Section: Methodsmentioning
confidence: 99%
“…We used the random test generator Randoop [5] to generate tests for SafeRefactor, which has helped us to detect a number of behavioral changes in Java programs [3], [6]. Other options include Seeker, a test generator that combines static and dynamic analysis for generating test suites [7].…”
Section: Challengesmentioning
confidence: 99%
“…Except for a renaming refactoring tool based on CompCert [8], none of these tools is mechanically certified and unfortunately, none is exempt from bugs as shown by a recent study [20].…”
Section: Related Workmentioning
confidence: 99%
“…For each subject system, we used a substantial test suite to provide evidence for the correctness of our refactoring engine. For this purpose, we extended a standard approach of testing refactoring engines [16], [24], [54] with support for variability.…”
Section: Introductionmentioning
confidence: 99%
“…To this end, we extend a standard approach of testing refactoring engines [16], [24], [54] with support for variability.…”
Section: Introductionmentioning
confidence: 99%