从语义代码搜索角度进行故障定位
《ACM Transactions on Software Engineering and Methodology》:Fault Localization from the Semantic Code Search Perspective
【字体:
大
中
小
】
时间:2025年11月08日
来源:ACM Transactions on Software Engineering and Methodology
编辑推荐:
缺陷定位与代码搜索的融合方法研究。提出基于大语言模型(LLM)的CosFL方法,将缺陷定位分解为自然语言查询生成和多粒度代码搜索,有效提升定位准确率。在23个Java项目835个真实缺陷测试中,CosFL Top-1定位准确率达324/835,较现有方法提升26.6%-57.3%,验证了语义信息驱动和多粒度策略的有效性。
摘要
软件开发过程的特点是一个迭代循环,包括持续的功能实现和调试,这对于提高软件质量和适应不断变化的需求至关重要。这一过程包含两个独立研究的任务:代码搜索(Code Search,简称CS),它从代码库中检索参考代码以辅助代码实现;以及故障定位(Fault Localization,简称FL),它识别软件项目中导致错误的代码实体,从而提高软件调试效率。本研究的基本观察结果是,这两个任务具有相似性,因为它们都涉及搜索问题。值得注意的是,CS技术的效果优于FL技术,这可能是因为自然语言查询提供了所需代码的精确语义细节,而这些细节对于FL方法来说并不容易获取。基于这一点,我们假设如果能够提供有关有缺陷方法的语义信息,故障定位器的效率将会更高。基于这一想法,我们提出了,这是一种将FL任务分解为两个步骤的方法:查询生成,用自然语言描述问题代码的功能;故障检索,利用CS找到与查询在语义上相关的程序元素,从而从CS的角度完成FL任务。具体来说,为了描述有缺陷的功能并生成高质量的查询,广泛利用了大型语言模型(LLM)的代码分析、语义理解、文本生成和决策能力。此外,为了提高CS的准确性,捕获了不同层次的上下文信息,并采用多粒度代码搜索策略,从而能够从整体视角更精确地识别有缺陷的方法。在对23个Java项目中的835个真实错误进行的评估中,成功定位了324个错误,其性能比现有最佳方法高出26.6%至57.3%。消融研究和敏感性分析进一步验证了不同组件的重要性以及在不同后端模型中的鲁棒性。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号