Empirical Evaluation of Syntactic and Semantic
Defects Introduced by Refactoring Support
Wafa Basit1, Fakhar Lodhi2 and Usman Bhatti3
1Department of Computer
Science, National University of Computer and Emerging Sciences, Pakistan
2Department of Computer
Science, GIFT University, Pakistan
3Rmod Team, Inria Lille-Nord
Europe, France
Abstract: Software maintenance is a major source of
expense in software projects. A proper evolution process is a critical
ingredient in the cost-efficient development of high-quality software. A
special case of software evolution is refactoring that cannot change the
external behavior of the software system yet should improve the internal
structure of the code. Hence, there is always a need to verify after
refactoring, whether it preserved behavior or not. As formal approaches are
hard to employ, unit tests are considered the only safety net available after
refactoring. Refactoring may change the expected interface of the software therefore
unit tests are also affected. The existing tools for refactoring do not
adequately support unit test adaptation. Also, refactoring tools and guidelines
may introduce semantic and syntactic errors in the code. This paper
qualitatively and quantitatively analyses data from an empirical investigation
involving 40 graduate students, performed against a set of semantic and
syntactic defects. Findings from the expert survey on refactoring support have
also been shared. The analysis in this paper shows that there are notable
discrepancies between preferred and actual definitions of refactoring. However,
continued research efforts are essential to provide Guide Lines(GL) in the
adaptation of the refactoring process to take care of these discrepancies, thus
improving the quality and efficiency of the software development.
Keywords: Refactoring, unit
testing, pre-conditions, semantic defects, maintenance.
Received
June 2, 2013; accepted March 29, 2013