A Grounded Theory of Debugging in Professional Software Engineering Practice
Haolin Li, Michael Coblenz

TL;DR
This paper develops a grounded theory explaining how professional developers systematically debug large codebases through iterative reasoning, information gathering, and mental model updating, highlighting human-centered aspects of debugging.
Contribution
It introduces a new grounded theory of professional debugging that emphasizes reasoning strategies, information gathering, and mental model construction in real-world contexts.
Findings
Debugging involves iterative updating of mental models.
Developers alternate between navigation and execution strategies.
External resources are integrated to aid debugging.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Engineering Techniques and Practices · Teaching and Learning Programming
