Online Adaptable Bug Localization for Rapidly Evolving Software
错误定位的目的是通过推荐与特定错误报告相关的程序元素来减少调试时间。到目前为止,研究人员主要通过应用不同的信息检索技术来解决这个问题,这些技术利用了给定错误报告和源代码之间的相似性。然而,随着现代软件开发趋向于软件变化和持续交付给用户的速度的增加,不能快速适应最新版本的软件的当前一代的错误定位技术变得不足。在本文中,我们提出了一种技术,在线错误定位,使快速更新的错误定位模型。更具体地说,我们提出了一个流错误本地化技术,基于一个合奏的在线主题模型,这是能够适应具体的(与明确的代码提到)和更抽象的错误报告。通过使用变更集(diffs)作为输入,而不是源代码的快照,模型自然地将缺陷预测和共同变更信息集成到其预测中。初步结果表明,所提出的方法提高了错误定位性能的42个56个评估项目,平均MAP提高了5.9%。
2022-03-07 cs.SE
Poster: Improving Bug Localization with Report Quality Dynamics and Query Reformulation
最近的一项用户研究结果表明,如果错误报告缺乏丰富的结构化信息,如相关的程序实体名称,基于IR的错误定位技术不会表现良好。相反,bug报告中过多的结构化信息(如堆栈跟踪)可能对自动化bug定位没有帮助。在本文中,我们使用来自8个主题系统的5,500个错误报告进行了一项大型实证研究,并复制了文献中的三项现有研究。我们的研究结果(1)经验性地证明了错误报告的质量动态如何影响基于IR的错误定位的性能,以及(2)提出了潜在的方法(例如,查询重构)以克服这样的限制。
2018-07-20 cs.SE
Broccoli: Bug localization with the help of text search engines
错误定位是错误修复过程中的一项繁琐的活动,在此过程中,软件开发人员试图在错误报告中描述的源代码中定位错误。由于这个过程是耗时的,并需要有关软件项目的额外知识,信息检索技术可以帮助缺陷定位过程。在本文中,我们调查,如果正常的文本搜索引擎可以改善现有的错误定位方法。在一个案例研究中,我们评估我们的搜索引擎的方法花椰菜对7个国家的最先进的错误定位算法在两个数据集的82个开源项目的性能。我们的研究结果表明,包括一个搜索引擎可以提高性能的错误定位,它是一个有用的扩展现有的方法。作为我们分析的一部分,我们还暴露了常用基准测试策略中的一个缺陷,即,考虑单个版本的文件。为了增加可检测文件的数量,我们通过考虑错误报告时软件存储库的状态来缓解此缺陷。我们的研究结果表明,使用单一的释放可能会导致低估的预测性能。
2021-10-10 cs.SE
BoostNSift: A Query Boosting and Code Sifting Technique for Method Level Bug Localization
在处理大规模系统时,定位bug是一项重要的任务,但需要大量的精力和时间。为了解决这个问题,信息检索(IR)技术越来越多地被用来建议潜在的错误源代码的位置,给定的错误报告。虽然IR技术是非常可扩展的,但在实践中,它们在准确定位软件系统中的错误方面的有效性仍然很低。实证研究的结果表明,错误定位技术的有效性可以通过配置用于定位错误代码的查询来增强。然而,在大多数基于IR的错误定位技术,研究人员提出,查询的配置的影响没有得到充分考虑。在类似的静脉,技术认为所有的代码元素同样可疑的bug,而本地化的错误,但这并不总是如此either.In本文中,我们提出了一个新的方法级,信息检索为基础的错误本地化技术,称为“BoostNSift”。BoostNSift利用查询中的重要信息,通过“提升”这些信息,然后“筛选”已识别的代码元素,基于一种新技术,该技术强调代码元素与bug报告的特定相关性,而不是与所有bug报告的一般相关性。为了评估BoostNSift的性能,我们采用了一种最先进的经验设计,该设计通常用于评估基于文件级IR的bug本地化技术:从常用的Eclipse,ANOJ,SWT和ZXing基准中选择6851个bug,并公开用于方法级分析。
2021-08-29 cs.SE
Too Few Bug Reports? Exploring Data Augmentation for Improved Changeset-based Bug Localization
本文针对缺陷定位任务中训练数据不足的问题,提出作用于缺陷报告不同组成部分的数据增强算子及数据平衡策略,以生成高质量合成训练数据,从而改进基于变换器的变更集缺陷定位模型性能。
2023-06-01 cs.SE
BLESER: Bug Localization Based on Enhanced Semantic Retrieval
静态缺陷定位技术在方法粒度上定位缺陷,得到了研究者和实践者的广泛关注。对于静态方法级错误定位技术,一个关键但具有挑战性的步骤是完全检索方法和错误报告的语义。目前,已有的研究主要采用相同的词袋空间来表示方法和错误报告的语义,而没有考虑方法的结构信息和错误报告的文本上下文,这在很大程度上影响了错误本地化的性能。为了解决这个问题,我们开发了BLESER,一种新的基于增强语义检索的错误定位技术。具体来说,我们使用基于AST的代码嵌入模型(更好地捕获代码结构)来检索方法的语义,和词嵌入模型(更好地捕获文本上下文)来表示错误报告的语义。然后,在增强的语义表示上构建深度学习模型。在模型构建过程中,我们比较了五种典型的词嵌入模型在表示bug报告方面的效果,并尝试探索重采样策略和代价敏感策略在处理类不平衡问题方面的有效性。我们评估了我们的BLESER在五个Java项目从缺陷4J数据集。我们发现:(1)从整体上看,词嵌入模型ELMo优于其他四种模型(包括word 2 vec,BERT等)。在促进缺陷定位技术。(2)在解决班级不平衡问题的四种策略中,随机过抽样策略(ROS)的效果明显优于其他三种策略(包括随机欠抽样、焦点损失等)。(3)通过将ELMo和ROS集成到BLESER中,在方法级错误定位上,我们可以在五个Defects 4J项目上实现0.108-0.504的MAP,0.134-0.510的MRR…
2021-09-08 cs.SE
Towards Understanding the Challenges of Bug Localization in Deep Learning Systems
本文通过大规模实证研究,利用2,365个深度学习缺陷和2,913个传统软件缺陷,系统分析了现有技术在深度学习系统缺陷定位中表现不佳的原因,揭示了缺陷类型和外在特性对定位效果的影响。
2025-07-22 cs.SE
Industry-scale IR-based Bug Localization: A Perspective from Facebook
我们探讨的应用程序的信息检索(IR)为基础的错误定位方法在一个大型的工业环境,Facebook的。Facebook的代码库发展迅速,每天都有数千个代码更改提交到一个单一的存储库中。当一个bug被检测到时,为了恢复或修复bug,识别导致bug的提交通常是时间敏感的,并且是强制性的。这是复杂的,因为bug通常表现为复杂而笨拙的特征,例如堆栈跟踪和其他元数据。代码提交也有各种与之相关的特性,从开发人员注释到测试结果。这对bug定位方法提出了独特的挑战,使其成为一个非常重要的操作。在本文中,我们列出了几个实际的关注行业级的IR为基础的错误定位,并提出Bug2Commit,一个工具,旨在解决这些问题。我们还评估了现有的IR为基础的本地化技术的有效性,从软件工程社区,并发现,在复杂的查询或文件,这是常见的Facebook,现有的方法不执行以及Bug2Commit。我们在Facebook的三个应用程序上评估了Bug2Commit:移动应用程序的客户端崩溃,服务器端性能回归和移动模拟性能测试。我们发现Bug2Commit的准确性比现有方法高出17%,从而减少了筛选回归和归因模拟中发现的错误的时间。
2021-03-17 cs.SE
A literature review on different types of empirically evaluated bug localization approaches
如今,软件系统在各个领域都发挥着重要作用,其中包括医疗保健,娱乐,运输和物流等等。随着对软件依赖性的增加,软件系统的数量也在增加。此外,这些系统变得越来越复杂。所有这些都导致了软件故障(也称为bug)数量的增加。因此,定位错误源(例如文件或提交)的能力对于开发和维护高效的软件解决方案至关重要。错误定位是指基于错误报告发现包含错误的文件的自动化过程。本研究计划旨在对不同的缺陷定位技术进行文献综述。本研究与其他调查和文献综述[1]有一个显著的区别。工作的重点是识别,分类和分析现有的缺陷定位方法和工具,在工业环境中进行评估。据我所知,没有其他作品优先考虑这方面。不幸的是,这样的文献是稀缺的,因此,在开源软件上评估的错误定位技术也包括在内。
2022-12-22 cs.SE
DRAST -- A Deep Learning and AST Based Approach for Bug Localization
内容:给定一个bug报告和项目的源代码,bug本地化可以帮助开发人员专注于修复可能存在bug的文件,而不是搜索整个源代码存储库。虽然现有的研究使用信息检索(IR)和/或机器学习(ML)或深度学习(DL)方法的组合,但它们主要集中在基准Java项目上,并且还激发了对多语言错误本地化方法的需求。目的:创建一种新的bug本地化方法,该方法利用源代码的语法结构,bug报告信息,并且可以支持多语言项目以及新的C项目数据集。方法:所提出的DRAST方法通过使用其高级AST将源代码表示为代码向量,并将rVSM(一种IR技术)与ML/DL模型(如随机森林和深度神经网络回归器)相结合,以对错误文件列表进行排名。我们还使用了一些功能,例如使用IR技术的文本相似性,使用DNN的词汇不匹配,以及使用BugC数据集元数据的项目历史。结果:我们在BugC数据集中的7个项目上测试了DRAST,该数据集由来自21个开源C项目的2462个错误报告组成。结果表明,DRAST可以找到正确的错误文件90%的时间从顶部1,5,10建议的文件与MAP和MRR得分超过90%的随机选择的七个项目。我们还测试了DRAST的Tomcat和ANOJ,从基准数据集的项目,更好的结果在accuracy@1,MAP和MRR相比,与国家的最先进的。结论:本文提出了一种新的错误定位的方法,工作在C和Java项目和一个错误定位C数据集,随着一个新…
2020-11-06 cs.SE
Directed Test Program Generation for JIT Compiler Bug Localization
针对 JIT 编译器缺陷定位中测试程序生成效果不佳的问题,提出依据种子程序结构定向生成相似通过输入与相异失败输入的方法,实验证明可显著提升定位效果。
2023-07-17 cs.SE
IncBL: Incremental Bug Localization
大量的努力已经投入到提高缺陷定位技术的有效性,而很少有人注意到,使这些工具在不断发展的软件库中更有效地运行。本文首先分析了一个经典的缺陷定位工具Buggram背后的信息检索模型,并建立了一个数学基础,说明该模型可以随着代码库或缺陷报告的发展而增量式更新。然后,我们提出了IncBL,一个工具,增量错误定位在不断发展的软件仓库。在Bugzbook数据集上对IncBL进行了评估,结果表明,与重新计算模型相比,IncBL可以显著减少平均77.79%的运行时间,同时保持相同的精度水平。我们还将IncBL实现为Github应用程序,可以轻松集成到GitHub上的开源项目中。用户也可以在本地部署和使用IncBL。IncBL的演示视频可以在https://youtu.be/G4gMuvlJSb0上查看,源代码可以在https://github.com/soarsmu/IncBL上找到。
2021-08-13 cs.SE
Improving IR-Based Bug Localization with Context-Aware Query Reformulation
最近的研究结果表明,信息检索(IR)为基础的缺陷定位技术不执行,如果缺陷报告缺乏丰富的结构化信息(如相关的程序实体名称)。相反,错误报告中过多的结构化信息(例如堆栈跟踪)也可能并不总是有助于自动化本地化。在本文中,我们提出了一种新的技术--BLIZZARD--使用适当的查询重构和有效的信息检索,自动定位错误实体的项目源。特别是,我们的技术确定是否有过多的程序实体或没有在一个错误报告(查询),然后适用于适当的重构查询的错误定位。使用5,139个错误报告的实验表明,我们的方法可以定位有错误的源文档,Hit@10比基线方法高7%-56%,MAP@10比基线方法高6%-62%,MRR@10比基线方法高6%-62%。与最先进的技术及其变体的比较报告,我们的技术可以提高19%,在MAP@10和20%,在MRR@10的国家的最先进的,并可以改善59%的噪声查询和39%的穷人查询。
2018-08-01 cs.SE
Evaluation of Cross-Lingual Bug Localization: Two Industrial Cases
本研究将Xia等人的跨语言错误定位方法结合机器翻译与基于BugLocator的原型工具,应用于两个日本工业项目,验证了该方法在工业场景下的性能表现,发现与原研究结果略有差异。
2023-10-03 cs.SE
OSD: A Source Level Bug Localization Technique Incorporating Control Flow and State Information in Object Oriented Program
面向对象程序的缺陷定位一直是软件工程中的一个重要问题。在本文中,我提出了一个面向对象的嵌入式程序的源代码级错误定位技术。我提出的技术,提出了在类级调试面向对象的程序,将对象的状态信息到类依赖图(ClDG)的想法。给定一个程序(有错误的语句)和一个失败的输入,其他人通过,我的方法使用具体的以及符号执行来合成通过的输入,从失败的输入在他们的控制流行为。对失败输入和通过输入的执行跟踪进行比较,可以为失败的根本原因提供必要的线索。状态跟踪差异,关于各个节点的ClDG,这导致检测程序中的错误。
2011-08-20 cs.SE
Pre-training Code Representation with Semantic Flow Graph for Effective Bug Localization
针对现有基于BERT的缺陷定位方法存在的代码语义捕获不足、对比学习负样本缺失及相似度估计忽略词汇相似性的问题,提出语义流图表示、SemanticCodeBERT模型及分层动量对比缺陷定位技术,实现了缺陷定位的当前最优性能。
2023-08-24 cs.SE
A Deep Dive into Large Language Models for Automated Bug Localization and Repair
本文提出 Toggle 框架,利用不同 LLM 分阶段实现 token 级缺陷定位与程序修复,并通过提示优化在 CodeXGLUE 上达到 SOTA。
2024-05-10 cs.SE
D&C: A Divide-and-Conquer Approach to IR-based Bug Localization
软件维护中的许多自动化任务依赖于信息检索技术来识别非结构化数据中的特定信息。Bug本地化就是这样一个典型的任务,其中分析bug报告中的文本以识别源代码中与所报告的bug相关联的文件位置。尽管结果令人鼓舞,但基于IR的错误定位工具提供的性能对于大规模采用仍然不显著。我们认为,一个原因可能是试图建立一个一刀切的方法。在本文中,我们广泛研究了最先进的错误定位工具的性能,重点是查询制定和它的重要性方面的本地化性能。基于这项研究的见解,我们提出了一种新的学习方法,其中多个分类器模型在明确的错误位置对集合上进行训练。具体地说,我们应用梯度提升监督学习的方法,以各种错误报告的本地化似乎是成功的特定类型的功能。培训场景建立在我们的发现基础之上,即各种最先进的本地化工具对于特定的bug报告集可以具有很高的性能。我们实现D&C,它计算适当的权重,应该分配给信息令牌类型对之间的相似性测量。在大型和最新数据集上的实验结果表明,D&C的性能优于最先进的工具。平均而言,实验产生的MAP得分为0.52,MRR得分为0.63,这提供了所有工具的实质性性能改进:MAP提高了4到10个百分点,而MRR提高了1到12个百分点。最后,我们注意到D&C的本地化性能是稳定的:大约50%的bug可以定位在Top1,77%在Top5,85%在Top10。
2019-02-07 cs.SE
Leveraging Data Characteristics for Bug Localization in Deep Learning Programs
针对深度学习程序结构性缺陷难定位的问题,提出Theia,结合训练数据集特征在训练初期检测Keras/PyTorch程序缺陷并给出位置与修复建议,在40个真实程序上定位57/75个缺陷,显著优于NeuraLint的17/75。
2024-12-08 cs.SE
Localization of real world regression Bugs using single execution
当以前按预期工作的软件功能停止工作或不再按预期工作时,就会出现回归错误。代码更改,例如bug修复或新功能工作,可能会导致回归bug。回归bug是软件开发过程中令人烦恼和痛苦的现象,需要大量的努力来本地化,有效地阻碍了团队的进步。在本文中,我们提出了回归检测,一种方法,它有助于开发人员定位源代码段,导致给定的回归错误。与现有的一些工具不同,我们的方法不需要自动化测试套件或执行系统的过去版本。它是高度可扩展到数百万的锁定系统。开发人员对代码或bug没有先验知识,根据bug数据库中描述的步骤重现bug。我们用来自领先的开源项目(Eclipse、Tomcat、Ant)的bug评估了我们的方法。在超过90%的情况下,开发人员只需要检查10 - 20行代码就可以找到bug,而不管代码库的大小。
2015-05-06 cs.SE
On Usefulness of the Deep-Learning-Based Bug Localization Models to Practitioners
背景:开发人员花费了大量的时间和精力来定位bug。在文献中,许多研究人员提出了最先进的错误定位模型,以帮助开发人员轻松定位错误。另一方面,实践者期望bug定位工具满足某些标准,例如可信度、可伸缩性和效率。目前的模式无法满足这些标准,因此更难在实践中采用这些模式。最近,文献中已经提出了基于深度学习的错误定位模型,其表现出比最先进的模型更好的性能。目的:在这项研究中,我们想调查深度学习模型是否符合从业者的期望。方法:我们构建了一个卷积神经网络和一个简单的Logistic模型,以检查它们在定位错误的有效性。我们在五个用Java编写的开源项目上对这些模型进行训练,并将它们的性能与在这些数据集上训练的其他最先进模型的性能进行比较。结果如下:我们的实验表明,尽管深度学习模型的性能优于经典的机器学习模型,但它们仅部分满足从业者设定的采用标准。结论:这项工作提供的证据表明,从业者在将当前最先进的模型用于生产级用例时应该谨慎。它还强调了性能基准标准化的必要性,以确保错误定位模型得到公平和现实的评估。
2019-07-19 cs.SE
Improving IR-based Bug Localization with Semantics-Driven Query Reduction
Dalhousie University(达尔豪斯大学)
本文提出IQLoc方法,结合信息检索与大语言模型的优势,通过语义理解优化查询,提升Bug定位的准确性和效率,实验结果表明其在多个评估指标上均优于现有方法。
2026-03-17 cs.SE
When Deep Learning Meets Information Retrieval-based Bug Localization: A Survey
本文综述了61篇利用深度学习的基于信息检索的缺陷定位(IRBL)研究,总结了工作流各阶段的最佳实践,指出DL有效解决了词汇鸿沟和冷启动等问题,并展望了多语言、细粒度及大语言模型应用等未来方向。
2025-04-30 cs.SE
A mathematical framework for automated bug localization
在本文中,我们提出了一个数学框架自动错误定位。这一框架可简要概述如下。程序执行可以表示为有根无环有向图。我们通过图上的割集来定义执行快照。程序状态可以看作割集中边上标号的一个连接。然后,我们认为,调试任务是一个修剪过程的执行图使用割集。一种剪枝算法,即,调试任务。
2003-09-30 cs.SE
A Fault Localization and Debugging Support Framework driven by Bug Tracking Data
Graz University of Technology(格拉茨工业大学)
故障定位已被确定为软件开发生存周期中的主要资源因素。学术故障定位技术大多是未知的,在专业环境中使用。虽然手动调试方法可以根据错误类型(例如内存错误或语义错误)而显着变化,但这些差异并没有反映在大多数现有的故障定位工具中。很少有研究自动识别错误类型,以优化故障定位过程。此外,现有的故障定位技术仅利用历史数据来增强可疑性排名。本论文的目的是提供一个错误定位的框架,结合来自不同来源的数据,以帮助开发人员在错误定位过程中。为了实现这一目标,引入了一个错误分类模式,基准创建,并提出了一种新的故障定位方法的基础上的历史数据。
2021-03-03 cs.AI cs.SE
An Extensive Replication Study of the ABLoTS Approach for Bug Localization
State Key Laboratory for Novel Software Technology, Nanjing University(南京大學新型軟件技術國有重點實驗室);Institute for Software Systems Engineering, Johannes Kepler University(約瀚內斯·克普勒大學軟件系統工程研究所);Department of Computer Science, North Carolina State University(北卡羅來納州立大學計算機科學系);Department of Computer Science, Southern Methodist University(南衛理公會大學計算機科學系)
本文通过复制研究评估ABLoTS在扩展数据集上的表现,发现核心组件TraceScore效果稳定,但因错误选择截止日期导致测试数据泄露,影响了复现结果。
2026-05-12 cs.SE
Fast Changeset-based Bug Localization with BERT
将软件错误自动定位到导致它们的变更集有可能提高软件开发人员的效率并对软件质量产生积极影响。为了促进这种自动化,bug报告必须与源代码更改有效地匹配,即使在用于描述bug的自然语言和开发人员使用的标识符命名实践之间存在显著的词汇差距。为了弥合这一差距,我们需要的技术,能够捕捉到软件工程特定的和项目特定的语义,以检测两种类型的文档之间的相关性,超出了精确的术语匹配。流行的基于transformer的深度学习架构,如BERT,擅长利用上下文信息,因此似乎是该任务的合适候选者。然而,BERT类模型在计算上是昂贵的,这使得它们不能用于响应时间很重要的环境中。在本文中,我们描述了如何使BERT足够快,适用于基于变更集的错误定位。我们还探讨了为此目的使用BERT的几个设计决策,包括如何最好地编码变更集,以及如何将错误报告与单个变更匹配以提高准确性。我们将模型的准确性和性能与非上下文基线(即,向量空间模型)和以前在软件工程中使用的基于BERT的体系结构。我们的评估结果表明,使用建议的BERT模型相比,基线的优势,特别是对于错误报告,缺乏任何提示相关的代码元素。
2022-04-11 cs.SE
Deep Learning Based Concurrency Bug Detection and Localization
针对并发缺陷数据缺乏、语义表征不足及二分类难以定位代码行的问题,提出结合预训练模型、异构图神经网络、CCPG 与 SubgraphX 的检测定位方法,性能显著优于现有方法。
2025-08-28 cs.SE
LadyBug: A GitHub Bot for UI-Enhanced Bug Localization in Mobile Apps
LadyBug是一个GitHub机器人,结合UI交互信息与文本检索自动定位Android应用缺陷,在RedWing基准上优于基线,显著提升定位准确性。
2025-08-07 cs.SE
Integrating Crash Report Mining and LLMs for Bug Localization and Repair: An Industrial Report
Federal University of Rio Grande do Norte(北里奥格兰德联邦大学);Singapore Management University(新加坡管理大学);Federal University of Pernambuco(伯南布哥联邦大学)
本研究整合崩溃报告挖掘技术与大语言模型,经对5种LLMs的评估后,在38个Java企业系统崩溃缺陷上验证,最优配置可定位71%、修复52%的缺陷,为工业调试提供有效方案。
2026-09-07 cs.SE
Continuously Learning Bug Locations
本文提出利用持续学习技术应对概念漂移,在非静态设置下进行缺陷定位,实验表明其性能显著优于深度学习方法,且计算成本更低。
2024-12-15 cs.SE
Can Automated Program Repair Refine Fault Localization?
软件缺陷在现代软件系统中普遍存在,并且众所周知难以手动调试。因此,大量的研究工作一直致力于自动化软件调试,包括自动故障定位和程序修复。然而,现有的故障定位技术通常是无效的,即使是最先进的程序修复技术,也只能修复一小部分真实世界的错误。虽然故障定位和程序修复是内在联系的,但我们观察到,在文献中,它们唯一的联系是程序修复技术通常使用现成的故障定位技术(例如,Ochiai)来确定用于修补的潜在候选语句/元素。在这项工作中,我们探索他们在另一个方向的联系,即,程序修复是否反过来有助于故障定位?通过这种方式,我们不仅为更强大的故障定位开辟了一个新的维度,而且将程序修复的应用范围扩展到所有可能的错误(而不仅仅是可以直接自动修复的错误)。我们设计了ProFL,一种简单的方法,使用补丁执行结果(来自程序修复)作为故障定位的反馈信息。在广泛使用的Defects 4J基准上的实验结果表明,基本的ProFL已经可以在Top-1内定位395个研究错误中的161个,而最先进的基于频谱和突变的故障定位技术最多在Top-1内定位117个。我们还证明了ProFL在不同设置下的有效性。最后,我们表明,ProFL可以通过无监督和监督学习进一步提高最先进的故障定位。
2019-10-03 cs.SE
Aligning Programming Language and Natural Language: Exploring Design Choices in Multi-Modal Transformer-Based Embedding for Bug Localization
University of Waterloo(滑铁卢大学)
该研究评估了14个嵌入模型在缺陷定位中的设计选择,发现预训练策略和模型对数据的熟悉程度显著影响嵌入质量与定位性能,且跨项目数据会导致性能大幅波动。
2024-06-25 cs.AI cs.LG cs.SE
Back to the Future! Studying Data Cleanness in Defects4J and its Impact on Fault Localization
本文分析 Defects4J 故障触发测试的时间线与开发者知识污染,发现去除该知识后 SBFL 性能显著下降,并发布洁净缺陷数据集。
2024-08-08 cs.SE
RLocator: Reinforcement Learning for Bug Localization
University of Waterloo(滑铁卢大学);University of Calgary(卡尔加里大学)
本文提出基于强化学习的缺陷定位方法RLocator,通过马尔可夫决策过程直接优化排序指标,在Apache项目数据集上显著优于FLIM和BugLocator。
2024-09-30 cs.AI cs.SE
BigIssue: A Realistic Bug Localization Benchmark
Salesforce Research(赛富时研究院)
针对现有自动程序修复模型缺陷定位能力不足、难落地的问题,提出包含真实与合成Java缺陷的基准BigIssue,推动模型结合仓库上下文提升定位能力,助力APR落地现代开发流程。
2023-05-04 cs.LG cs.SE
GloBug: Using Global Data in Fault Localization
故障定位(FL)是软件调试中重要的第一步,在目前的实践中大多是手动的。多年来,已经提出了许多方法来自动化FL过程,包括基于信息检索(IR)的技术。这些方法基于所报告的错误报告和源代码的相似性来定位错误。基于IR的FL(IRFL)技术的新变体也会查看错误报告的历史记录,并在本地化过程中利用它们。然而,所有现有的IRFL技术都局限于当前项目的数据(本地数据)。在这项研究中,我们介绍了Globug,这是一个IRFL框架,由使用在全局数据(从开源基准项目中提取)上预训练的模型的方法组成。在Globug中,我们研究了两种算法:a)全局数据对最先进的IR-FL技术(即Bugebug)的影响,以及b)词嵌入技术(Doc 2 Vec)与全局数据一起的应用。我们在51个软件项目上的大规模实验表明,使用全局数据在MRR(平均倒数秩)和MAP(平均平均精度)方面平均提高了Bugstrom 6.6%和4.8%,在大多数情况下超过14%(MRR和MAP分别为64%和54%)。与其他五种最先进的IRFL工具相比,这种改进是显着的。此外,全局训练模型是一次性的离线任务,不会增加Bugstrom运行时故障定位的开销。然而,我们的研究表明,基于词嵌入的全局解决方案并没有进一步改善结果。
2021-01-14 cs.SE
Bug Localization from Bug Reports: A Multi-Objective Approach
FAST School of Computing, National University of Computer and Emerging Sciences(计算机与新兴科学国立大学 FAST 计算机学院)
针对大型软件缺陷定位的痛点,提出基于SPEA-2的多目标搜索系统,在Java及Kotlin项目上验证,可高效识别潜在缺陷类,适配多语言。
2026-08-28 cs.NE cs.SE
Supporting Cross-language Cross-project Bug Localization Using Pre-trained Language Models
本文提出基于PLM、对比学习、提交信息与代码片段排序及知识蒸馏的跨语言跨项目缺陷定位方法,提升准确率、泛化性与CPU部署效率。
2024-07-03 cs.IR cs.SE
Network-Clustered Multi-Modal Bug Localization
Singapore Management University(新加坡管理大学)
开发人员经常花费大量的精力和资源来调试程序。为了帮助开发人员调试,许多基于信息检索(IR)和基于频谱的错误定位技术已经被设计出来。基于IR的技术处理错误报告中的文本信息,而基于谱的技术处理程序谱(即,对于每个测试用例执行哪些程序元素的记录)。虽然这两种技术最终都会生成一个可能包含bug的程序元素的排序列表,但它们只考虑一个信息源--bug报告或程序谱--这不是最佳的。针对这一不足,本文提出了一种新的网络聚类多模态错误定位方法(NetML),该方法利用来自错误报告和程序谱的多模态信息对错误进行定位。NetML通过执行错误定位误差的联合优化以及错误报告和程序元素的聚类(即,方法)。聚类是通过结合网络Lasso正则化来实现的,它激励相似错误报告和相似程序元素的模型参数靠近在一起。为了估计错误报告和方法的模型参数,NetML采用了一种基于牛顿方法的自适应学习过程,该过程在每个特征的基础上更新参数。我们对来自7个软件系统的355个真实错误进行了广泛的实验,以针对各种最先进的本地化方法对NetML进行基准测试。结果显示,NetML在开发人员检查前1、5和10种方法时成功定位的错误数量以及平均平均精度(MAP)方面分别超过了最佳性能基线31.82%、22.35%、19.72%和19.24%。
2018-02-27 cs.IR cs.LG cs.SE
Reformulate, Retrieve, Localize: Agents for Repository-Level Bug Localization
Concordia University(康科迪亚大学);Toronto Metropolitan University(多伦多 Metropolitan 大学)
本文提出利用LLM代理通过查询重新表述和摘要改进仓库级缺陷定位,实现更高效的文件级定位性能。
2025-12-07 cs.AI cs.IR cs.SE
ConFL: Explainable Concurrent Fault Localization via Hierarchy-Guided LLM Reasoning
University of Connecticut(康涅狄格大学)
ConFL是一种可解释的并发故障定位框架,通过构建并发知识库与LLM引导的层次检索,在8个Java项目的并发漏洞实验中,其MRR达0.503、MAP达0.486,性能优于同类基线方法且鲁棒性良好。
2026-08-05 cs.SE
On Using GUI Interaction Data to Improve Text Retrieval-based Bug Localization
本研究利用GUI交互数据增强文本检索缺陷定位,通过过滤、提升和查询重构三种方式,在80个真实Android缺陷上实现Hits@10相对提升13-18%。
2023-10-12 cs.IR cs.SE
Can we learn from developer mistakes? Learning to localize and repair real bugs from real bug fixes
University of Oldenburg(奥尔登堡大学)
在开源仓库中找到的真正的bug修复似乎是学习本地化和修复真正bug的完美来源。然而,由于缺乏大规模的bug修复集合,过去很难在训练较大的神经模型时有效地利用真正的bug修复。相比之下,人工bug--通过改变现有源代码产生--可以很容易地以足够的规模获得,因此在现有方法的训练中通常是首选的。尽管如此,在人工错误上训练的本地化和修复模型在面对真正的错误时通常表现不佳。这就提出了一个问题,即在真实的bug修复上训练的bug定位和修复模型在定位和修复真实的bug方面是否更有效。我们通过引入RealIT来解决这个问题,这是一种预训练和微调方法,可以有效地学习从真正的错误修复中定位和修复真正的错误。RealiT首先在传统变异算子产生的大量人工bug上进行预训练,然后在较小的一组真实bug修复上进行微调。微调不需要任何修改的学习算法,因此可以很容易地采用在各种训练场景的缺陷定位或修复(即使当真正的训练数据是稀缺的)。此外,我们发现,使用Realit对真实错误修复进行训练的经验非常强大,可以将现有模型对真实错误的本地化性能提高近一倍,同时保持甚至提高修复性能。
2022-07-01 cs.LG cs.SE
FlexFL: Flexible and Effective Fault Localization with Open-Source Large Language Models
针对现有基于LLM的故障定位方法灵活性有限(依赖测试用例)、基于专有LLM存在隐私风险的问题,提出FlexFL框架,可灵活利用多类型bug信息、适配开源LLM,在Defects4J上性能优于AutoFL和AgentFL等基线。
2025-02-18 cs.SE
Rethinking Automated Program Repair: The Impact of Bug Complexity, Fault Localization, and LLM Cost-efficiency
Colorado State University(科罗拉多州立大学)
本研究通过实证分析,发现中等复杂度缺陷可超50%由低成本LLM修复,不精确缺陷定位会扩大APR技术差距,高成本LLM与强推理设置并非总能提升成本效率,DeepSeek-V3.2成本效率最优。
2026-08-18 cs.AI cs.SE
The Forgotten Role of Search Queries in IR-based Bug Localization: An Empirical Study
Dalhousie University(达尔豪斯大学);Polytechnique Montreal(蒙特利尔理工学院);University of Saskatchewan(萨斯喀彻温大学)
基于信息检索的缺陷定位方法具有体积小、成本低等优点,在发现软件缺陷方面有着广阔的应用前景。然而,这些方法的准确性在很大程度上取决于它们使用的错误报告。大量的bug报告只包含普通的自然语言文本。根据现有的研究,基于IR的方法不能很好地执行时,他们使用这些错误报告作为搜索查询。另一方面,最近有一项证据表明,即使是这些仅使用自然语言的报告也包含足够好的关键字,可以帮助成功地定位错误。一方面,这些发现表明,只有自然语言的错误报告可能是一个足够的来源,良好的查询关键字。另一方面,他们对基于IR的错误定位中的查询选择实践提出了严重质疑。在本文中,我们试图通过进行深入的实证研究来澄清这方面的问题,该研究批判性地考察了基于IR的错误定位中最先进的查询选择实践。特别是,我们使用的数据集的2,320个错误报告,采用现有的方法从文献中,利用遗传算法为基础的方法来构建最佳的,接近最佳的搜索查询,从这些错误报告,然后回答三个研究问题。我们证实,国家的最先进的查询构造方法确实是不足以从某些自然语言的错误报告,虽然他们包含这样的查询构建适当的查询(错误定位)。我们还证明了从错误报告文本中选择的最佳查询和非最佳查询在几个关键字特征方面有显着不同,这使我们获得了可操作的见解。此外,我们证明了27%-34%的改进,通过我们的可操作的见解,他们的非最佳查询的性能。
2021-08-11 cs.IR cs.LG cs.SE
BULNER: BUg Localization with word embeddings and NEtwork Regularization
ICMC-Universidade de São Paulo (USP)(圣保罗大学计算与数学科学中心(ICMC));DC-Universidade Federal de São Carlos (UFSCar)(圣卡洛斯联邦大学计算系(DC));Universidade Federal de Mato Grosso do Sul (UFMS)(南马托格罗索联邦大学);Ericsson AB / Blekinge Institute of Technology(爱立信公司/布莱金厄理工学院);INF-Universidade Federal de Goiás (UFG)(戈亚斯联邦大学信息系(INF));Tribunal de Justiça do Estado de Goiás(戈亚斯州法院)
从错误报告中进行错误定位是软件维护过程中的一项战略性活动。由于BL是一项昂贵且繁琐的活动,因此基于信息检索和机器学习的BL技术可以帮助软件工程师。提出了一种基于词嵌入和网络正则化的漏洞定位方法。初步结果表明,BULNER具有更好的性能比两个国家的最先进的方法。
2019-08-26 cs.IR cs.LG cs.SE
Improved IR-based Bug Localization with Intelligent Relevance Feedback
Dalhousie University(达尔豪斯大学)
针对缺陷定位中上下文理解不足的问题,提出BRaIn技术,利用大语言模型评估相关性并引入智能相关反馈重构查询和重排文档,在Bench4BL上显著优于六种基线,MAP、MRR、HIT@K分别提升87.6%、89.5%、48.8%,并能定位52%基线无法定位的缺陷。
2025-03-27 cs.AI cs.CL cs.SE
Retrieval-Oriented Code Representations in Agentic Bug Localization
Concordia University(康考迪亚大学)
研究文件级漏洞定位中代码表示的作用,在LCA和SWE数据集上比较五种代码表示,通过实验发现角色感知摘要性价比最佳,结合互补结果和LLM排序可进一步提升效果,案例研究验证技术有效性,强调代码表示应是智能体定位管道的重要设计选择。
2026-07-14 cs.SE
The Impact of IR-based Classifier Configuration on the Performance and the Effort of Method-Level Bug Localization
上下文:基于IR的错误定位是一个分类器,它帮助开发人员定位有错误的源代码实体(例如,文件和方法)。这种基于IR的分类器具有可以不同地配置的各种参数(例如,实体表示的选择)。目的:在本文中,我们调查的影响,选择基于IR的分类器配置的top-k性能和所需的努力,以检查源代码实体之前,定位在方法级别的错误。方法:我们对两个软件系统的5,266个错误报告执行了大空间的分类器配置,总共3,172个,即,Eclipse和Mozilla结果如下:我们发现:(1)分类器配置的选择对top-k性能的影响从0.44%到36%,所需的工作量从4,395到50,000 Kbps;(2)具有相似top-k性能的分类器配置可能需要不同的工作量;(3)VSM实现了最好的top-k性能和方法级错误定位所需的最少工作量;(4)随机挑选在最佳前k分类器配置的20%内执行的配置的可能性平均为5.4%,并且最小努力的可能性平均为1%;(5)与分析数据的实体表示相关的配置对前k性能和所需努力两者具有最大影响;以及(6)在方法级获得的最有效的分类器配置也可以在文件级使用(反之亦然)。结论:我们的研究结果使我们得出这样的结论,配置有很大的影响的top-k的性能和所需的努力方法级的错误定位,建议基于IR的配置设置应仔细选择和所需的努力度量应包括在未来的错误定位研究。
2018-06-20 cs.IR cs.SE
Learning Likely Invariants to Explain Why a Program Fails
这是困难的。最近的研究表明,自动缺陷定位技术的实用性有限。原因之一是,程序员通常必须了解为什么程序失败之前修复它。在这项工作中,我们的目标是帮助程序员理解一个错误,自动生成可能的不变量,违反了失败的测试。给定一个初始断言和至少一个未通过断言的测试用例的程序,我们首先生成随机测试用例,通过错误定位来识别潜在的错误位置,然后基于主动学习技术生成程序状态变异,以识别“解释”错误原因的谓词。谓词是通过测试用例和失败测试用例的分类器。我们的主要贡献是应用不变量学习的错误解释,以及一种新的方法来克服缺乏测试用例的问题在实践中。我们将我们的方法应用于现实世界的错误,并显示生成的不变量通常与实际的错误修复相关。
2016-10-27 cs.SE
GALA: Multimodal Graph Alignment for Bug Localization in Automated Program Repair
Sichuan University(四川大学);Peking University(北京大学)
GALA通过多模态图对齐方法,解决GUI截图场景下自动化程序修复的缺陷定位问题,通过结构化推理提升视觉与代码的映射精度。
2026-04-09 cs.SE
Deep Learning for Bug-Localization in Student Programs
Indian Institute of Science(印度科学学院);Google Brain(谷歌大脑)
提供反馈是教学的一个组成部分。大多数关于编程的开放式在线课程都使用自动评分系统来支持编程作业并提供实时反馈。这些系统通常依赖于测试结果来量化程序的功能正确性。他们把不及格的试卷作为反馈给学生。然而,学生们可能会发现,如果他们没有得到关于错误在哪里以及如何修复它的提示,他们很难调试他们的程序。在这项工作中,我们提出了第一个基于深度学习的技术,可以定位错误程序中的错误w.r.t.一个失败的测试,甚至没有运行程序。我们的技术的核心是一种新型的树卷积神经网络,它被训练来预测程序是否通过或失败。为了定位错误,我们使用最先进的神经预测归因技术分析训练的网络,并查看程序的哪些行使其预测测试结果。我们的实验表明,所提出的技术通常是更准确的两个国家的最先进的程序频谱为基础的和一个语法差异为基础的错误定位基线。
2019-05-28 cs.LG cs.SE