Memories of Bug-Fixes Sunghun Kim, Kai Pan, Jim Whitehead {hunkim, pankai, ejw}@cs.ucsc.edu University of California, Santa Cruz
Horizontal and Vertical Bug Patterns Buffer over run Horizontal : general bugs Vertical : project specific Null dereference JEdit example Eclipse example
Bug-Fix Memories – Basic Idea Extract patterns in bug fix change history …… Bug fix changes in revision 1 .. n-1 Memory
Bug-Fix Memories – Basic Idea Extract patterns in bug fix change history …… Search for patterns against Memory Bug fix changes in revision 1 .. n-1 Memory Code to examine
Bug-introducing and Bug-fix Changes Development history of foo.java SCM log message: “Bug #567 fixed” “ bug fix” Bug #567 entered into issue tracking system (bug finally observed and recorded) Software change that introduces the bug “bug-introducing”
Half and Full Hit Build memories based on transaction 1 .. n-1 …… Transaction 1 .. n-1 Memories Bug | Fix Fix change case at transaction n Half hit Full hit
True and False Positives Build memories based on transaction 1 .. n-1 …… False positive half hit, if found True positive half hit, if found Transaction 1 .. n-1 Memories Non-fix change case at transaction n Fix change case at transaction n