Table of Contents
Fetching ...

How Developers Choose Debugging Strategies for Challenging Web Application Defects

Maryam Arab, Jenny T. Liang, Valentina Hong, Thomas D. LaToza

TL;DR

This paper investigates how expert developers choose debugging strategies for challenging web defects by conducting a two-part study: a broad survey (Study 1) to surface strategies and challenges, followed by in-depth interviews (Study 2) with seasoned developers augmented by data enrichment from existing literature. The authors identify a baseline hypothesis-testing approach and show that defect characteristics, codebase familiarity, and organizational and tool-context factors jointly drive strategy selection, often leading to multiple strategies during debugging. They illuminate core strategies (backward-reasoning, DOM-debugging, and devtool-based debugging) and introduce a comprehensive set of contextual factors that influence decision-making, informing the design of context-aware debugging tools and educational frameworks. The findings underscore debugging as a highly context-dependent, quality-improvement activity and highlight opportunities to improve training and tooling to align with real-world problem contexts.

Abstract

Effective debugging is a crucial aspect of software development, demanding problem-solving skills, expertise, and appropriate tools. Although previous research has studied expert developers' debugging strategies, the specific factors influencing strategy choice in complex scenarios remain underexplored. To investigate these contextual factors, we conducted two studies. First, we surveyed 35 developers to identify experiences with challenging debugging problems and contextual complexities. Second, we held semi-structured interviews with 16 experienced developers to gain deeper insight into strategic reasoning for complex debugging tasks. Insights from both groups enriched our understanding of debugging strategies at different expertise levels. We found that contextual factors interact in complex ways, and combinations of factors influence strategy choice, evolving throughout the debugging process. Hypothesis making is the baseline for debugging, with experience and code familiarity crucial for strategy selection. Our results show a gap between learning and effectively practicing strategies in challenging contexts, highlighting the need for carefully designed debugging tools and educational frameworks that align with problem contexts.

How Developers Choose Debugging Strategies for Challenging Web Application Defects

TL;DR

This paper investigates how expert developers choose debugging strategies for challenging web defects by conducting a two-part study: a broad survey (Study 1) to surface strategies and challenges, followed by in-depth interviews (Study 2) with seasoned developers augmented by data enrichment from existing literature. The authors identify a baseline hypothesis-testing approach and show that defect characteristics, codebase familiarity, and organizational and tool-context factors jointly drive strategy selection, often leading to multiple strategies during debugging. They illuminate core strategies (backward-reasoning, DOM-debugging, and devtool-based debugging) and introduce a comprehensive set of contextual factors that influence decision-making, informing the design of context-aware debugging tools and educational frameworks. The findings underscore debugging as a highly context-dependent, quality-improvement activity and highlight opportunities to improve training and tooling to align with real-world problem contexts.

Abstract

Effective debugging is a crucial aspect of software development, demanding problem-solving skills, expertise, and appropriate tools. Although previous research has studied expert developers' debugging strategies, the specific factors influencing strategy choice in complex scenarios remain underexplored. To investigate these contextual factors, we conducted two studies. First, we surveyed 35 developers to identify experiences with challenging debugging problems and contextual complexities. Second, we held semi-structured interviews with 16 experienced developers to gain deeper insight into strategic reasoning for complex debugging tasks. Insights from both groups enriched our understanding of debugging strategies at different expertise levels. We found that contextual factors interact in complex ways, and combinations of factors influence strategy choice, evolving throughout the debugging process. Hypothesis making is the baseline for debugging, with experience and code familiarity crucial for strategy selection. Our results show a gap between learning and effectively practicing strategies in challenging contexts, highlighting the need for carefully designed debugging tools and educational frameworks that align with problem contexts.
Paper Structure (41 sections, 2 figures, 7 tables)

This paper contains 41 sections, 2 figures, 7 tables.

Figures (2)

  • Figure 1: Example of explicit programming strategies for debugging the source of defects related to DOM element
  • Figure 2: Model of developer decision-making in web debugging strategy selection. Italic text boxes represent factors influencing strategy selection (defect and codebase characteristics in Tables \ref{['tab:codebase-factors']}, and \ref{['tab:defect-factors']}). Green circles represent debugging strategies.