An Exploratory Study of Debugging Episodes

05/05/2021
by   Abdulaziz Alaboudi, et al.
0

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.

READ FULL TEXT

page 3

page 6

page 10

research
09/06/2021

Edit-Run Behavior in Programming and Debugging

As developers program and debug, they continuously edit and run their co...
research
07/12/2019

An Exploratory Study of Live-Streamed Programming

In live-streamed programming, developers broadcast their development wor...
research
05/13/2019

VideoGraph: Recognizing Minutes-Long Human Activities in Videos

Many human activities take minutes to unfold. To represent them, related...
research
02/10/2019

Swarm Debugging: the Collective Intelligence on Interactive Debugging

One of the most important tasks in software maintenance is debugging. To...
research
02/07/2022

Do Developers Refactor Data Access Code? An Empirical Study

Developers often refactor code to improve the maintainability and compre...
research
05/14/2018

Functional Baby Talk: Analysis of Code Fragments from Novice Haskell Programmers

What kinds of mistakes are made by novice Haskell developers, as they le...
research
07/03/2023

Tales from the Git: Automating the detection of secrets on code and assessing developers' passwords choices

Typical users are known to use and reuse weak passwords. Yet, as cyberse...

Please sign up or login with your details

Forgot password? Click here to reset