TY - JOUR
T1 - Detecting and visualizing change smells based on revision history and code Hunk's lifecycle
AU - Jung, Woosung
AU - Lee, Eunjoo
AU - Wu, Chisu
PY - 2011/8
Y1 - 2011/8
N2 - Change history in project revisions provides helpful information on handling bugs. Existing studies on predicting bugs mainly focus on resulting bug patterns, not these change patterns. When a code hunk is copied onto several files, the set of original and copied hunks often need to be consistently maintained. We assume that it is a normal state when all of hunks survive or die in a specific revision. When partial change occurs on some duplicated hunks, they are regarded as suspicious hunks. Based on these assumptions, suspicious cases can be predicted and the project's developers can be alerted. In this paper, we propose a practical approach to detect various change smells based on revision history and code hunk tracking. The change smells are suspicious change patterns that can result in potential bugs, such as partial death of hunks, missed refactoring or fix, backward or late change. To detect these change smells, three kinds of hunks - add, delete, and modify - are tracked and analyzed by an automated tool. Several visualized graphs for each type have been suggested to improve the applicability of the proposed technique. We also conducted experiments on large-scale open projects. The case study results show the applicability of the proposed approach.
AB - Change history in project revisions provides helpful information on handling bugs. Existing studies on predicting bugs mainly focus on resulting bug patterns, not these change patterns. When a code hunk is copied onto several files, the set of original and copied hunks often need to be consistently maintained. We assume that it is a normal state when all of hunks survive or die in a specific revision. When partial change occurs on some duplicated hunks, they are regarded as suspicious hunks. Based on these assumptions, suspicious cases can be predicted and the project's developers can be alerted. In this paper, we propose a practical approach to detect various change smells based on revision history and code hunk tracking. The change smells are suspicious change patterns that can result in potential bugs, such as partial death of hunks, missed refactoring or fix, backward or late change. To detect these change smells, three kinds of hunks - add, delete, and modify - are tracked and analyzed by an automated tool. Several visualized graphs for each type have been suggested to improve the applicability of the proposed technique. We also conducted experiments on large-scale open projects. The case study results show the applicability of the proposed approach.
KW - Bug
KW - Change
KW - Code hunk
KW - Refactoring
KW - Revision history
UR - http://www.scopus.com/inward/record.url?scp=79961090086&partnerID=8YFLogxK
U2 - 10.1587/transinf.E94.D.1575
DO - 10.1587/transinf.E94.D.1575
M3 - Article
AN - SCOPUS:79961090086
SN - 0916-8532
VL - E94-D
SP - 1575
EP - 1589
JO - IEICE Transactions on Information and Systems
JF - IEICE Transactions on Information and Systems
IS - 8
ER -