一句话:提出借助程序语义理解、上下文推理与开发者式调试认知三条途径,显著提升自动缺陷定位效果。
软件缺陷每年造成数十亿美元损失,并占用开发者近一半时间,但自动缺陷定位至今仍未被很好解决:信息检索类方法只做表层文本匹配,深度学习方法则依赖大量训练数据,效果与适用性受限。近期大语言模型在自然语言与源代码理解上展现出前所未有的能力,但其在缺陷定位中的潜力尚缺乏探索。本博士论文工作假设:通过程序语义理解、上下文推理以及受开发者启发的调试实践,缺陷定位系统可以更好地克服现有方法的局限。作者围绕该假设提出三个研究问题,开展三项分别利用不同形式智能的研究:(1) 利用程序语义弥合缺陷报告与源代码之间的鸿沟;(2) 通过上下文推理捕捉智能相关性反馈;(3) 复现开发者的认知调试实践。研究结果表明,这些途径能够显著改进缺陷定位。
Software bugs cost billions annually and consume nearly 50% of developers' time. Despite decades of research, automated bug localization remains challenging according to software practitioners. Traditional approaches (e.g., Information Retrieval) rely on surface-level textual matching, while deep learning methods require extensive training data, limiting their effectiveness and applicability. Recent Large Language Models (LLMs) offer unprecedented capabilities in understanding both natural language and source code, yet their potential for bug localization remains underexplored. In this dissertation work, we hypothesize that through program semantics understanding, contextual reasoning, and developer-inspired debugging practices, bug localization systems can better overcome the limitations of existing approaches. We ask three research questions targeting the hypothesis, conduct three studies leveraging different forms of intelligence, and use them to test our hypothesis. Our studies suggest that bug localization can be improved significantly by (1) leveraging program semantics to bridge gaps between bug report and source code, (2) capturing Intelligent Relevance Feedback through contextual reasoning, and (3) replicating developers' cognitive debugging practices.