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.
翻译:有效的调试是软件开发的关键环节,需要问题解决能力、专业知识及合适的工具。尽管先前研究已探讨过专家开发者的调试策略,但在复杂场景中影响策略选择的具体因素仍未得到充分探索。为探究这些情境因素,我们开展了两项研究。首先,我们对35名开发者进行了问卷调查,以识别他们在处理具有挑战性的调试问题时所面临的情境复杂性。其次,我们对16名经验丰富的开发者进行了半结构化访谈,以深入理解复杂调试任务中的策略推理过程。两组参与者的见解丰富了我们对不同专业水平下调试策略的理解。研究发现,情境因素以复杂方式相互作用,多种因素的组合会影响策略选择,且这种影响在调试过程中持续演变。假设构建是调试的基础,而经验和代码熟悉度对策略选择至关重要。我们的研究结果表明,在具有挑战性的情境中,策略的学习与实际有效应用之间存在差距,这凸显了需要精心设计符合问题情境的调试工具与教育框架。