  Many studies have long investigated how developers debug, shaping our
understanding of debugging and helping motivate the creation of more effective
tools. However, less is known about the typical progression of debugging in
real world settings. In this study, we focus on characterizing debugging
episodes from the moment at which developers first encounter a defect to the
moment at which it is resolved. We investigate the typical duration and
frequency of debugging episodes and the typical activities which occur. We
observed developers by watching professional developers at work in
live-streamed programming sessions. Using this data source, we curated 15
sessions in which 11 professional developers worked for 30 hours. We then
systematically coded the debugging episodes and activities that occurred within
these videos, yielding a dataset of 2137 debugging activities and 1407
programming activities. We found that debugging was frequent, even in
programming work, occurring once every eight minutes. Debugging episodes vary
greatly in time, with most being less than a few minutes and a few as more than
100 minutes. However, most debugging time is spent in long debugging episodes.
We found no single activity that dominated debugging time, and long debugging
episodes often involved many diverse activities. Finally, we found that,in
terms of the activities developers did, programming and debugging were
remarkably similar, particularly in the frequency of editing and browsing code.
