π€ AI Summary
This study addresses the lack of a systematic theoretical account of the cognitive and decision-making mechanisms underlying expert developersβ debugging practices in real-world codebases. Drawing on grounded theory, the authors construct an iterative debugging process model centered on the dynamic updating of mental models, based on in-situ observations and live-coding data from 12 developers engaged in 17 authentic debugging tasks. The resulting model advances the first mental-model-centered theory of expert debugging, revealing key human-centric dimensions such as the alternation between navigation and execution strategies, bidirectional trace-based reasoning (forward and backward), and the strategic integration of external resources. This framework offers actionable theoretical foundations for the design of debugging tools and the improvement of software engineering education.
π Abstract
Debugging is a central yet complex activity in software engineering. Prior studies have documented debugging strategies and tool usage, but little theory explains how experienced developers reason about bugs in large, real-world codebases. We conducted a qualitative study using a grounded theory approach. We observed seven professional developers and five professional live-coding streamers working on 17 debugging tasks in their own codebases, capturing diverse contexts of debugging. We theorize debugging as a structured, iterative diagnostic process in which programmers update a mental model of the system to guide information gathering. Developers gather information by alternating between navigation and execution strategies, employing forward and backward tracing modes of reasoning and adapting these approaches according to codebase context, complexity, and familiarity. Developers also gather external resources to complement code-based evidence, with their experience enabling them to systematically construct a mental model. We contribute a grounded theory of professional debugging that surfaces the human-centered dimensions of the practice, with implications for tool design and software engineering education.