TY - GEN
T1 - Analyzing Refactorings' Impact on Regression Test Cases
AU - Gao, Yuan
AU - Liu, Hui
AU - Fan, Xiaozhong
AU - Niu, Zhendong
AU - Nyirongo, Bridget
N1 - Publisher Copyright:
© 2015 IEEE.
PY - 2015/9/21
Y1 - 2015/9/21
N2 - Software refactoring is to improve readability, maintainability and expansibility of software by adjusting its internal structure, whereas the external behaviors of software are not changed. Although software refactoring should not change the external behaviors of software systems, they might make a regression test case obsolete (with syntax and runtime errors) or fail. People have investigated which refactorings had an influence on regression test case. However, how test cases are influenced by refactorings and what kind of errors might be introduced remain unknown. To this end, in this paper, we proposed an approach to analyze refactorings' impact on regression test cases. On one hand, we analyzed why regression test cases failed. On the other hand, we analyzed the influence of refactorings on software interfaces. Based on the analysis, we built up a mapping between refactorings and test case failure. Such a mapping can be used to guide test case repair automation where test cases are made obsolete by refactorings. The approach was evaluated on five open-source applications. Evaluation results suggest that the precision of the approach is greater than 80%.
AB - Software refactoring is to improve readability, maintainability and expansibility of software by adjusting its internal structure, whereas the external behaviors of software are not changed. Although software refactoring should not change the external behaviors of software systems, they might make a regression test case obsolete (with syntax and runtime errors) or fail. People have investigated which refactorings had an influence on regression test case. However, how test cases are influenced by refactorings and what kind of errors might be introduced remain unknown. To this end, in this paper, we proposed an approach to analyze refactorings' impact on regression test cases. On one hand, we analyzed why regression test cases failed. On the other hand, we analyzed the influence of refactorings on software interfaces. Based on the analysis, we built up a mapping between refactorings and test case failure. Such a mapping can be used to guide test case repair automation where test cases are made obsolete by refactorings. The approach was evaluated on five open-source applications. Evaluation results suggest that the precision of the approach is greater than 80%.
UR - http://www.scopus.com/inward/record.url?scp=84962171701&partnerID=8YFLogxK
U2 - 10.1109/COMPSAC.2015.16
DO - 10.1109/COMPSAC.2015.16
M3 - Conference contribution
AN - SCOPUS:84962171701
T3 - Proceedings - International Computer Software and Applications Conference
SP - 222
EP - 231
BT - Proceedings - 2015 IEEE 39th Annual Computer Software and Applications Conference, COMPSAC 2015
A2 - Huang, Gang
A2 - Yang, Jingwei
A2 - Ahamed, Sheikh Iqbal
A2 - Hsiung, Pao-Ann
A2 - Chang, Carl K.
A2 - Chu, William
A2 - Crnkovic, Ivica
PB - IEEE Computer Society
T2 - 39th IEEE Annual Computer Software and Applications Conference, COMPSAC 2015
Y2 - 1 July 2015 through 5 July 2015
ER -