Notes on “A review of automated debugging systems: knowledge, strategies and techniques”

June 23, 2009

I previously read and summarized McCauley 2008, which reviewed this paper among others. It included the seven types of debugging knowledge detailed in this paper:

  1. Knowledge of intended program
  2. Knowledge of actual program
  3. Understanding of programming language
  4. General programming expertise
  5. Knowledge of application domain
  6. Knowledge of bugs
  7. Knowledge of debugging methods

Each of 1 & 2 are subdivided into:

  1. Program I/O
  2. Behaviour
  3. Implementation

McCauley also covered the four general debugging strategies from this paper: Filtering, checking equivalence of intended and actual program, checking well-formedness of actual program and recognizing bug cliches.

What I did not realize is that this categorization was itself derived from a review of automated tutoring systems, general purpose debugging systems and program tracers. Thus, these should not be viewed as empirically-verified knowledge and strategies of human debuggers, but rather as tool-supported knowledge and tool-supported strategies. (Although the tools themselves may be informed by empirical studies.)

%d bloggers like this: