A Taxonomy of Software Debugging Process
Date
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
ENG: Previous research has explored individual facets of debugging, but the field lacks a comprehensive taxonomy that systematically categorizes the debugging process and factors influencing it. This paper aims to fill that gap by proposing a taxonomy of software debugging, which classifies the process into six key dimensions: the objects of debugging (“What”), employed tools (“Which”), the applied methods (“How”), the human factors involved (“Who”), the temporal aspects (“When”), and the debugging environment (“Where”). The proposed taxonomy highlights the complexity and diversity of debugging practices. By analyzing debugging techniques, tools, and environmental influences, we present a structured framework that provides insights into the nature of debugging activities. Organizing these activities into structured categories facilitates a deeper understanding of software debugging, facilitates the identification of research gaps and limitations, and provides a foundation for future studies. Additionally, the taxonomy serves as a structured framework for teaching debugging concepts and techniques. Educators can use it to ensure comprehensive coverage of debugging approaches in software engineering curricula. To validate the taxonomy, we used data from an experiment conducted with students during a debugging olympiad. Log files containing detailed information about the debugging processes were collected. Each debugging session from the log files was mapped to the taxonomy’s dimensions and categories to identify key characteristics and behaviors. We evaluated how the experimental data aligned with each dimension of the taxonomy, confirming that it encompasses all observed debugging activities. By mapping behaviors, defects, and outcomes to the taxonomy’s dimensions, we confirmed its applicability to real-world scenarios.
