Making refactoring safer through impact analysis

被引:20
作者
Mongiovi, Melina [1 ]
Gheyi, Rohit [1 ]
Soares, Gustavo [1 ]
Teixeira, Leopoldo [2 ]
Borba, Paulo [2 ]
机构
[1] Univ Fed Campina Grande, Dept Comp & Syst, BR-58429900 Campina Grande, PB, Brazil
[2] Univ Fed Pernambuco, Informat Ctr, BR-50740540 Recife, PE, Brazil
关键词
Refactoring; Change impact analysis; OBJECT-ORIENTED CODE; !text type='JAVA']JAVA[!/text; TOOL;
D O I
10.1016/j.scico.2013.11.001
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Currently most developers have to apply manual steps and use test suites to improve confidence that transformations applied to object-oriented (OO) and aspect-oriented (AO) programs are correct. However, it is not simple to do manual reasoning, due to the nontrivial semantics of OO and AO languages. Moreover, most refactoring implementations contain a number of bugs since it is difficult to establish all conditions required for a transformation to be behavior preserving. In this article, we propose a tool (SAFEREFACTORIMPACT) that analyzes the transformation and generates tests only for the methods impacted by a transformation identified by our change impact analyzer (SAFIRA). We compare SAFEREFACTORIMPACT with our previous tool (SAFEREFACTOR) with respect to correctness, performance, number of methods passed to the automatic test suite generator, change coverage, and number of relevant tests generated in 45 transformations. SAFEREFACTORIMPACT identifies behavioral changes undetected by SAFEREFACTOR. Moreover, it reduces the number of methods passed to the test suite generator. Finally, SAFEREFACTORIMPACT has a better change coverage in larger subjects, and generates more relevant tests than SAFEREFACTOR. (C) 2013 Elsevier B.V. All rights reserved.
引用
收藏
页码:39 / 64
页数:26
相关论文
共 71 条
  • [31] Object-oriented transformations for extracting aspects
    Malta, Marcelo Nassau
    de Oliveira Valente, Marco Tullo
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2009, 51 (01) : 138 - 149
  • [32] McKeeman William M., 1998, Digital Technical Journal, V10, P100
  • [33] A survey of software refactoring
    Mens, T
    Tourwé, T
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2004, 30 (02) : 126 - 139
  • [34] Monteiro M., 2005, Proceedings of the 4th international conference on Aspect-oriented software development, P111
  • [35] How are Java']Java software developers usiong the eclipse IDE?
    Murphy, Gail C.
    Kersten, Mik
    Findlater, Leah
    [J]. IEEE SOFTWARE, 2006, 23 (04) : 76 - +
  • [36] How We Refactor, and How We Know It
    Murphy-Hill, Emerson
    Parnin, Chris
    Black, Andrew P.
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (01) : 5 - 18
  • [37] How We Refactor, and How We Know It
    Murphy-Hill, Emerson
    Parnin, Chris
    Black, Andrew P.
    [J]. 2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 287 - +
  • [38] Opdyke W. F., 1992, Refactoring object-oriented frameworks
  • [39] Overbey J. L., 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering, P303, DOI 10.1109/ASE.2011.6100067
  • [40] Pacheco C, 2007, PROC INT CONF SOFTW, P75