Enhanced semi-Automated Refactoring Engine with Behavioral Testing

International Journal of Computer Science and Engineering
© 2014 by SSRG - IJCSE Journal
Volume 1 Issue 3
Year of Publication : 2014
Authors : S.Ayshwaryalakshmi, Kannan M

How to Cite?

S.Ayshwaryalakshmi, Kannan M, "Enhanced semi-Automated Refactoring Engine with Behavioral Testing," SSRG International Journal of Computer Science and Engineering , vol. 1,  no. 3, pp. 5-9, 2014. Crossref, https://doi.org/10.14445/23488387/IJCSE-V1I3P102


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 determined for each refactoring transformation. However, to formally define these preconditions and transfer them to program checks is a rather complex task. In practice, refactoring engine developers commonly implement refactoring in an ad hoc manner since no guidelines are available for evaluating the correctness of refactoring implementations. As a result, even mainstream refactoring engines contain critical bugs. The system technique presents a technique to test Java refactoring engines. It automates test input generation by using a Java program generator that exhaustively generates programs for a given scope of Java declarations. The refactoring under test is applied to each generated program. The technique uses SAFEREFACTOR, a tool for detecting behavioral changes, as an oracle to evaluate the correctness of these transformations. Finally, the technique classifies the failing transformations by the kind of behavioral change or compilation error introduced by them. The main objective of this paper is to create the Java Integrated Development Environment with Refactoring Engine and automated Behavioral Testing process.


Saferefactor, Java refactoring engines..


[1]B. Daniel, D. Dig, K. Garcia, and D. Marinov, “Automated Testing of Refactoring Engines,” Proc. Sixth Joint Meeting European Software Eng. Conf. and ACM SIGSOFT Symp. The Foundations of Software Eng., pp. 185- 194, 2007. 
[2]B. Korel and A.M. Al-Yami, “Automated Regression Test Generation,” Proc. Fourth Int’l Symp. Software Testing and Analysis, pp. 143-152, 1998. 
[3]F. Steimann and A. Thies, “From Public to Private to Absent: Refactoring Java Programs under Constrained Accessibility,” Proc. 23rd European Conf.Object-Oriented Programming, pp. 419-443, 2009. 
[4]G.Soares et al., “A Survey of Software Refactoring,” IEEE Trans. Software Eng., vol. 39, no. 2, pp. 147-162, Feb. 2013. 
[5]H. Li and S. Thompson, “Testing Erlang Refactorings with QuickCheck,” Proc. 19th Int’l Symp. Implementation and Application of Functional Languages, pp. 19-36, 2008. 
[6]T. Mens and T. Tourwe ´, “A Survey of Software Refactoring,” IEEE Trans. Software Eng., vol. 30, no. 2, pp. 126-139, Feb. 2004. 
[7]T. Mens, S. Demeyer, and D. Janssens, “Formalising Behaviour Preserving Program Transformations,” Proc. First Int’l Conf. Graph Transformation, pp. 286-301, 2002.