Detecting and visualizing change smells based on revision history and code Hunk's lifecycle

Woosung Jung, Eunjoo Lee, Chisu Wu

Research output: Contribution to journalArticlepeer-review

Abstract

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.

Original languageEnglish
Pages (from-to)1575-1589
Number of pages15
JournalIEICE Transactions on Information and Systems
VolumeE94-D
Issue number8
DOIs
StatePublished - Aug 2011

Keywords

  • Bug
  • Change
  • Code hunk
  • Refactoring
  • Revision history

Fingerprint

Dive into the research topics of 'Detecting and visualizing change smells based on revision history and code Hunk's lifecycle'. Together they form a unique fingerprint.

Cite this