This study empirically evaluates Hale and Haworth's cognitive processes mod
el for programmers engaged in software debugging. They claim that across al
l levels of experience, software programmers engage in the same activities
and follow a similar pattern of activities directed by search strategies, V
erbal protocol analysis of data gathered during a staged problem-solving ep
isode (e,g,, fixing a hidden bug) was used to evaluate Hale and Haworth's h
ypothesized debugging tasks, as well as the hypothesized sequence in which
the tasks are performed. Empirical support for Hale and Haworth's model was
strong. Specifically, the set of hypothesized debugging tasks is both accu
rate and complete. Further, the model effectively represents the process by
which programmers generate and evaluate hypotheses, and the manner in whic
h programmers recursively attack a debugging problem. Unsupported are those
complex debugging sequences involving multiple possible paths. This study
extends the understanding of the mechanisms by which programmers choose, im
plement and evaluate debugging rules and strategies. Results verify that al
l observed programmers utilize a pattern of cognitive process steps as well
as comprehension strategies to derive needed declarative knowledge, The re
sults support a goal-driven model of program debuggers' cognitive processes
depicting a hierarchy of levels with an inherent control structure that di
rects debugging process steps. Copyright (C) 1999 John Wiley & Sons, Ltd.