中文

评估代码变更对大型语言模型故障可定位性的影响

软件工程 2026-03-06 v4 人工智能 机器学习

摘要

生成式大型语言模型(LLM)越来越多地用于非生成式软件维护任务,如故障定位(FL)。FL的成功取决于模型能够理解程序语义,而不仅仅是表层的语法和词汇特征。然而,广泛使用的LLM基准主要评估代码生成,这与语义程序推理根本不同。此外,传统的FL基准如Defect4J和BugsInPy要么不可扩展,要么已过时,因为其数据集已成为LLM训练数据的一部分,导致结果偏差。本文提出了第一个大规模实证研究,探讨LLM故障可定位性的鲁棒性。受突变测试启发,我们开发了一个端到端的评估框架,解决了现有LLM评估中的数据污染、可扩展性、自动化和可扩展性等关键局限性。使用带有规范的真实程序,我们注入不可见的故障,请LLM进行定位,并过滤掉其中定性模糊的程序。对于每个成功定位的程序,我们应用语义保持的突变(SPM)并重新运行定位,以评估鲁棒性,确定LLM推理是否依赖于语法线索而非语义。我们在750,013个故障定位任务上评估了10个最先进的LLM,涵盖超过1,300个Java和Python程序。我们发现,SPM导致LLM在先前定位的故障中以78%的比例失败,并且当相关代码出现在上下文中的较早位置时,推理更为强健。这一结果表明,LLM代码推理往往与与语义无关的特征相关。我们还识别了LLM难以推理的代码模式。总体而言,我们的发现促使LLM在表示、解释和优先级排序代码语义方面进行根本性的进步,以更深入地理解程序逻辑。

关键词

引用

@article{arxiv.2504.04372,
  title  = {Assessing the Impact of Code Changes on the Fault Localizability of Large Language Models},
  author = {Sabaat Haroon and Ahmad Faraz Khan and Ahmad Humayun and Waris Gill and Abdul Haddi Amjad and Ali R. Butt and Mohammad Taha Khan and Muhammad Ali Gulzar},
  journal= {arXiv preprint arXiv:2504.04372},
  year   = {2026}
}

备注

This paper is currently Under Review. It consists of 12 pages, 11 Figures, and 5 Tables