Academic Search Engines: Constraints, Bugs, and Recommendation
背景:学术搜索引擎(即,数字图书馆和索引器)在系统综述中发挥着越来越重要的作用,然而这些引擎似乎并不能有效地支持这样的综述,例如,研究人员在进行搜索时面临引擎的可用性问题。目的:调查可用性问题是否是错误(即,搜索引擎中的缺陷)或限制,并就如何解决这些问题向搜索引擎提供商和研究人员提供建议。方法:采用滚雪球抽样从大专研究,我们确定了一组621个二级研究软件工程。通过物理上重新尝试对所有这621项研究的搜索,我们有效地对42个搜索引擎进行了回归测试。结果:我们确定了8个引擎的13个错误,并确定了其他限制。我们提出了解决这些问题的建议。结论:学术搜索引擎的可用性与研究者的搜索需求之间仍有相当大的差距。目前尚不清楚搜索引擎开发人员是否意识到了这一差距。此外,学术界对学术搜索引擎的评价没有跟上搜索引擎提供商对这些搜索引擎的开发。因此,评估和开发之间的差距使得更难正确理解研究人员的搜索需求和搜索引擎的搜索功能之间的差距。
2022-11-01 cs.DL cs.SE
An Exploratory Study of Bug-Introducing Changes: Exploring Relationships in Bug-Introducing Changes Towards Causal Understanding
University of Passau(帕绍大学);Universidad de Los Andes(洛斯安第斯大学)
本研究通过探索软件开发实践中与缺陷引入更改的关系,为理解因果机制提供了基础框架。
2026-02-04 cs.SE
Analyzing the Context of Bug-Fixing Changes in the OpenStack Cloud Computing Platform
软件工程中的许多研究领域,如突变测试、自动修复、故障定位和故障注入,都依赖于有关重复性错误修复代码更改的经验知识。这一领域以前的研究集中在由于错误修复而发生的变化,例如代码编辑操作。然而,这些研究没有考虑错误修复的变化是在哪里进行的(即,改变的上下文),但是知道上下文可能潜在地缩小许多软件工程技术的搜索空间(例如,通过仅将突变集中在软件的特定部分)。此外,大多数以前的bug修复工作都集中在C和Java项目上,但几乎没有关于Python软件的经验证据。因此,在本文中,我们对三个OpenStack项目中的错误修复更改进行了全面的实证分析,重点关注更改的内容和位置。我们观察到,所有重复出现的更改模式都不会被周围的代码遗忘,而是往往发生在特定的代码上下文中。
2019-08-29 cs.SE
Evaluating Manual Intervention to Address the Challenges of Bug Finding with KLEE
符号执行已经显示出其在软件中发现安全相关缺陷的能力,但面临着重大的可扩展性挑战。人们普遍认为,专家的人工干预可以帮助减轻这些限制因素。然而,很少有正式的调查这一想法。在本文中,我们提出了我们的经验,应用KLEE符号执行引擎的一个新的错误语料库,并使用人工干预,以减轻遇到的问题。我们的贡献是(1)半翅目,一个新的语料库的130多个错误,在现实世界的软件,(2)一个全面的评估KLEE符号执行引擎的半翅目与经常发生的软件模式的分类是有问题的符号执行,和(3)评估手动缓解旨在解决符号执行的根本问题。我们的经验表明,在许多情况下,手动干预可以增加代码覆盖率和bug检测。然而,这不是一个银弹,我们讨论它的局限性和遇到的挑战。
2018-05-09 cs.SE
Better Security Bug Report Classification via Hyperparameter Optimization
当发现安全漏洞时,应(a)~由安全软件工程师私下讨论;(b)~在安全补丁可用之前不向公众提及。软件工程师通常会向缺陷跟踪系统报告缺陷,并将其标记为安全缺陷报告(SBR)或非安全缺陷报告(NSBRs),而安全缺陷报告比非安全缺陷报告具有更高的被修复优先级。然而,可疑的安全漏洞报告经常被公开披露,因为错误标签问题(即,错误地将安全错误报告标记为非安全错误报告)。本文的目标是帮助软件开发人员更好地分类错误报告,识别安全漏洞作为安全错误报告,通过学习器和数据预处理器的参数调整。以前的工作已经应用了文本分析和机器学习学习器来分类哪些报告的错误与安全相关。我们对这一工作进行了改进,正如我们对五个开源项目的分析所示。我们将超参数优化应用于(a)学习器的控制参数;以及(b)处理目标类是所有数据的一小部分的情况的数据预处理方法。我们表明,优化的预处理器是更有用的比优化的学习者。我们还表明,从我们的方法获得的改进可以是非常大的。例如,使用与我们的基线方法最近分析的相同的数据集,我们表明,调整数据预处理可以使分类召回率提高35%至65%(中位数至最大值),并适度增加假阳性率。
2019-05-16 cs.SE
CLeBPI: Contrastive Learning for Bug Priority Inference
自动化的错误优先级推理可以减少错误诊断器分配优先级的时间开销,提高软件维护的效率。目前,这项任务有两条正交线,即,传统的基于机器学习(基于TML)和基于神经网络(基于NN)的方法。尽管这些方法取得了很好的性能,但我们发现现有的方法面临以下两个问题:1)基于TML的方法需要大量的人工特征工程,无法学习错误报告的语义信息; 2)基于TML和基于NN的方法都不能有效解决标签不平衡问题,因为它们很难区分具有不同优先级的错误报告之间的语义差异。在本文中,我们提出了CLeBPI(错误优先级推理的对比学习),它利用预训练的语言模型和对比学习来解决上述两个问题。具体而言,CLeBPI首先以自监督的方式在大规模错误报告语料库上进行预训练,因此它可以自动学习错误报告的上下文表示,而无需手动特征工程。之后,它进一步通过对比学习目标进行预训练,这使它能够区分错误报告之间的语义差异,为每个错误报告学习更精确的上下文表示。当完成预训练时,我们可以将分类层连接到CLeBPI,并以监督的方式对其进行微调以进行bug优先级推断。为了验证CLeBPI的有效性,我们选择了四种基线方法,并在公共数据集上进行了比较实验。实验结果表明,CLeBPI在加权平均F1分数方面优于所有基线方法23.86%-77.80%,显示了其有效性。
2022-12-02 cs.SE
GitHub-OSS Fixit: Fixing bugs at scale in a Software Engineering Course
许多研究表明,将开源项目引入软件工程(SE)课程教学的好处。然而,现有的研究有几个局限性,限制了开源项目在课堂环境中的广泛适应,包括(1)所选择的项目仅限于一个特定的项目,(2)大多数研究只调查了它对教授特定SE概念的影响,以及(3)学生可能会在他们的贡献中犯错误,导致质量差的代码。与此同时,软件公司已经成功推出了Google Summer of Code(GSoC)和FindBugs“fixit”等项目,为开源项目做出贡献。受这些项目成功的启发,我们提出了GitHub-OSS Fixit,这是一个课程项目,通过修复GitHub中报告的错误,教导学生为开源Java项目做出贡献。我们描述了我们的课程大纲,通过鼓励使用几个自动化的程序分析工具来教授学生SE概念。我们还提供了精心设计的指导,供学生参与GitHub-OSS Fixit。由于所有的讲座和实验都是在线进行的,我们认为我们的课程设计可以帮助指导未来的在线SE课程。总体而言,我们的调查结果显示,学生认为GitHub-OSS Fixit可以帮助他们提高许多技能,并应用课堂上教授的知识。总共有154名学生向24个不同的Java项目提交了214个pull request,其中59个项目被合并,82个项目被开发人员关闭。
2021-02-14 cs.SE
Deep Learning-based Bug Triage System
OLAS Team INRIA/University of Bologna(INRIA/博洛尼亚大学 OLAS 团队)
本文提出基于RoBERTa-base的自动化缺陷分诊系统,利用深度上下文表示分类缺陷报告,五轮训练内达到0.90准确率,展现高效性能。
2026-09-11 cs.SE
Fast Changeset-based Bug Localization with BERT
将软件错误自动定位到导致它们的变更集有可能提高软件开发人员的效率并对软件质量产生积极影响。为了促进这种自动化,bug报告必须与源代码更改有效地匹配,即使在用于描述bug的自然语言和开发人员使用的标识符命名实践之间存在显著的词汇差距。为了弥合这一差距,我们需要的技术,能够捕捉到软件工程特定的和项目特定的语义,以检测两种类型的文档之间的相关性,超出了精确的术语匹配。流行的基于transformer的深度学习架构,如BERT,擅长利用上下文信息,因此似乎是该任务的合适候选者。然而,BERT类模型在计算上是昂贵的,这使得它们不能用于响应时间很重要的环境中。在本文中,我们描述了如何使BERT足够快,适用于基于变更集的错误定位。我们还探讨了为此目的使用BERT的几个设计决策,包括如何最好地编码变更集,以及如何将错误报告与单个变更匹配以提高准确性。我们将模型的准确性和性能与非上下文基线(即,向量空间模型)和以前在软件工程中使用的基于BERT的体系结构。我们的评估结果表明,使用建议的BERT模型相比,基线的优势,特别是对于错误报告,缺乏任何提示相关的代码元素。
2022-04-11 cs.SE
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
本文提出 BushraDBR,利用 LSI 与 FCA 计算新缺陷报告和仓库报告的文本相似度,以自动检索并提前拦截重复缺陷报告。
2024-05-04 cs.SE
Causal Inference for the Effect of Code Coverage on Bug Introduction
University of Passau(帕绍大学)
本文通过因果推断方法研究代码覆盖率对缺陷引入的影响,分析其剂量-反应关系及非线性模式。
2026-02-03 cs.SE
Can LLMs Demystify Bug Reports?
本研究针对现有工具难以自动处理自然语言Bug报告的问题,用Defects4J基准测试ChatGPT,发现其能复现50%的报告Bug,展现了人机协同处理Bug的应用潜力。
2023-10-10 cs.SE
GBQA: A Game Benchmark for Evaluating LLMs as Quality Assurance Engineers
The University of Hong Kong(香港大学);Independent Researcher(独立研究者);Westlake University(西湖大学);Datawhale Org(Datawhale组织)
本文提出GBQA基准,通过30款游戏和124个经人类验证的bug测试LLM自主发现软件缺陷的能力,实验表明最佳模型仅能识别48.39%的bug。
2026-04-03 cs.AI 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
Too Few Bug Reports? Exploring Data Augmentation for Improved Changeset-based Bug Localization
本文针对缺陷定位任务中训练数据不足的问题,提出作用于缺陷报告不同组成部分的数据增强算子及数据平衡策略,以生成高质量合成训练数据,从而改进基于变换器的变更集缺陷定位模型性能。
2023-06-01 cs.SE
SWE-at-Scale: Scalable Issue Synthesis from Historical Bug Fixes
Shanghai Jiao Tong University(上海交通大学);North China Electric Power University(华北电力大学);Tsinghua University(清华大学);East China Normal University(华东师范大学);Shanghai Innovation Institute(上海创新研究所);Singapore Management University(新加坡管理大学)
研究针对现有SWE任务合成方法的不足,提出SWE-at-Scale框架,通过逆向工程历史Bug修复自动生成多样真实的SWE任务,实验显示其生成的任务更具挑战性且多样性可稳健扩展。
2026-10-16 cs.SE
Automatic Generation of Test Cases based on Bug Reports: a Feasibility Study with Large Language Models
本研究针对现有自动测试生成方法的局限性,探索利用大语言模型以缺陷报告为输入生成复杂场景测试用例的可行性,实验验证了其效果及在故障定位、补丁验证等任务中的实用价值。
2023-10-10 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
Towards Better Summarizing Bug Reports with Crowdsourcing Elicited Attributes
近年来,在软件维护中,解决大量错误报告的需求不断增长。为了减少测试人员/开发人员阅读错误报告的时间,错误报告摘要的任务在文献中吸引了大量的研究工作。然而,没有系统的分析已经进行了属性的建设,这严重影响了监督算法的性能缺陷报告摘要。在这项研究中,我们首先进行了一项调查,以揭示现有的方法在挖掘软件仓库的属性建设。在此基础上,提出了一种从众包数据中推断新的有效属性的方法Crowd-Attribute,并开发了一个新的工具Crowdsourcing软件工程平台。利用Crowd-Attribute,我们成功地构造了11个新的属性,并提出了一个新的监督算法,称为Logistic Regression with Crowdsourced Attributes(LRCA)。为了评估LRCA的有效性,我们构建了一系列包含105,177个错误报告的大规模数据集。在包含36个人工标注错误报告的公共数据集SDS和新的大规模数据集上的实验表明,LRCA可以始终优于最先进的错误报告摘要算法。
2018-09-29 cs.SE
GitBugs: Bug Reports for Duplicate Detection, Retrieval Augmented Generation, Triage, and More
Hewlett Packard Enterprise(惠普企业);Heinz College of Information Systems and Public Policy Carnegie Mellon University(卡内基梅隆大学海因茨信息系统与公共政策学院)
GitBugs包含15万余条bug报告,提供标准化分类字段和预定义训练测试集,支持重复检测、检索增强生成、自动分拣等软件工程研究任务。
2026-04-28 cs.SE
Bug Characteristics in Quantum Software Ecosystem
随着近年来量子计算的发展,量子软件对于探索量子计算系统的全部潜力至关重要。量子编程不同于经典编程,例如,量子程序的状态本质上是概率性的,并且由于量子机制的不稳定性,量子计算机容易出错。因此,量子软件项目中的bug的特征可能与经典软件项目中的bug有很大不同。这项工作旨在了解量子软件项目中错误的特征,以便提供见解,帮助设计有效的测试和调试机制。为了实现这一目标,我们对125个量子软件项目的错误报告进行了实证研究。我们观察到量子软件项目比经典软件项目更容易出错,并且量子项目的错误比经典项目的错误修复成本更高。我们还确定了错误的类型和它们发生的量子编程组件。我们的研究表明,错误分布在不同的组件中,但量子特定的错误特别出现在编译器,门操作和状态准备组件中。最常见的三种错误类型是程序异常错误、配置错误和数据类型和结构错误。我们的研究强调了量子软件开发中一些特别具有挑战性的领域,例如缺乏科学的量子计算库来实现量子计算的综合数学函数。量子开发人员还寻求专门的量子软件工程数据操作库,如量子计算的Numpy。我们的研究结果还为未来的工作提供了见解,以推进量子软件的量子程序开发,测试和调试,例如为调试低级电路提供工具支持。
2022-04-25 cs.SE
On the "Naturalness" of Buggy Code
真正的软件,即由kingdom开发的程序员解决现实世界问题的软件,往往是“自然的”,就像语音或自然语言一样;它往往是高度重复和可预测的。研究人员已经通过统计模型捕捉到了软件的这种自然性,并将其用于建议引擎、移植工具、编码标准检查器和习惯用法挖掘器中。这表明,对于一个好的统计语言模型来说,看起来不太可能或令人惊讶的代码在某种意义上是“不自然的”,因此可能是可疑的。在本文中,我们调查这一假设。我们考虑了一个大型的bug修复提交语料库(约。8,296),来自10个不同的Java项目,我们专注于它的语言统计,评估错误代码的自然性和相应的修复。我们发现,有bug的代码往往更具熵(即,不自然的),随着bug的修复而变得不那么自然。专注于高熵行在成本效益方面与一些众所周知的静态错误发现器(PMD,FindBugs)相似,并且使用熵度量对这些错误发现器的警告进行排序可以提高检查警告中涉及的代码的成本效益。这表明熵可能是一种有效的独立于语言的简单方法,可以补充PMD或FindBugs的有效性,并且基于搜索的错误修复方法可以从使用熵进行错误定位和搜索修复中受益。
2015-09-10 cs.SE
Automated flakiness detection in quantum software bug reports
针对量子软件领域缺乏不稳定测试相关研究的问题,本文梳理了量子软件错误报告中不稳定测试自动检测的挑战与潜在方案,呼吁学界关注并协作解决该新兴问题。
2024-08-09 cs.SE
Bounded, Indeterminate, or a Bug: A Condition-Aware Oracle for Differential Testing of SQL Aggregates
VaidhyaMegha Private Limited(VaidhyaMegha私人有限公司)
该研究针对SQL聚合函数差异测试的不足,提出了条件感知预言机,基于引擎算法与真实值分类差异,验证了ClickHouse存在方差计算漏洞,预言机可靠且代码数据公开。
2026-09-02 cs.DB cs.SE
Prompting Is All You Need: Automated Android Bug Replay with Large Language Models
针对 Android 缺陷复现依赖人工模式与预定义词汇的问题,本文提出基于 LLM 提示工程、少样本学习和思维链推理的 AdbGPT,无需训练即可高效复现缺陷。
2024-05-08 cs.SE
Characterizing Bugs and Quality Attributes in Quantum Software: A Large-Scale Empirical Study
NIT Srinagar(印度国立技术学院斯利那加分校)
本研究通过大规模分析量子软件缺陷,揭示了全栈库和编译器的高缺陷率及自动化测试对减少缺陷的重要性。
2026-01-02 cs.SE
PITMuS: A Tool for Automated Bug Dataset Generation via Source-Level Mutant Reconstruction
University of Texas at Dallas(德克萨斯大学达拉斯分校)
本文提出PITMuS工具,通过源级变异体重建生成自动化bug数据集,解决现有工具生成的变异体难以复现和利用的问题,为bug定位和修复技术提供结构化数据支持。
2026-08-04 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
A Case Study on the Impact of Similarity Measure on Information Retrieval based Software Engineering Tasks
信息检索(IR)在各种软件工程(SE)任务中起着关键作用,例如,错误定位和分类、代码检索、需求分析等。相似性度量的选择是IR技术的核心组成部分。任何IR方法的性能关键取决于为给定的应用领域选择适当的相似性度量。由于不同的SE任务对不同的文档类型(如错误报告、软件描述、源代码等)进行操作,这些文档通常包含非标准的特定于领域的词汇表,因此必须了解哪些相似性度量最适合不同的SE文档。本文介绍了两个案例研究的效果不同的相似性度量的各种SE文件w.r.t.两个任务:(i)项目建议:查找类似的GitHub项目和(ii)bug本地化:检索与bug报告对应的bug源文件。这些任务包含文本(即描述、自述文件)和代码(即源代码、API、导入包)工件的各种组合。我们观察到,IR模型的性能变化时,适用于不同的工件类型。我们发现,在一般情况下,上下文感知模型实现更好的性能上的文本工件。相比之下,简单的基于关键字的词袋模型在代码工件上执行得更好。另一方面,概率排名模型BM 25在文本和代码工件的混合上表现得更好。我们进一步研究如何这样一个明智的选择相似性度量的影响SE工具的性能。特别是,我们分析了两个以前提出的工具,项目推荐和错误本地化任务,利用不同的软件工件,并观察到一个明智的选择相似性度量确实导致现有的SE工具的性能提高。
2018-08-08 cs.IR cs.SE
Cross-Ecosystem Bug Classification in Quantum Software
NIT Srinagar(印度国立技术学院斯利那加分校)
本研究对Qiskit等12个量子软件仓库的17523个缺陷开展跨生态系统比较,采用基于规则的分类框架,发现经典缺陷占比67%,所提框架在细粒度量子缺陷检测上优于机器学习基线。
2026-08-05 cs.SE
Privacy-Preserving Methods for Bug Severity Prediction
本研究针对工业界数据共享受限问题,利用源代码度量和LLM进行方法级缺陷严重性预测,对比了集中式学习、联邦学习与合成数据生成方法,发现联邦学习与合成数据在无需共享数据时即可达到与集中训练相当的预测效果。
2025-06-28 cs.SE
PerfCurator: Curating a large-scale dataset of performance bug-related commits from public repositories
本文提出 PerfCurator 仓库挖掘流程,利用轻量高性能的 PcBERT-KD 从 GitHub 构建跨三种语言的大规模性能缺陷修复提交数据集,并证明其可提升数据驱动检测效果。
2024-06-17 cs.SE
SZZ Unleashed: An Open Implementation of the SZZ Algorithm -- Featuring Example Usage in a Study of Just-in-Time Bug Prediction for the Jenkins Project
许多经验性的软件工程研究依赖于关于错误的详细信息。虽然问题跟踪器通常包含有关错误何时被修复的信息,但有关错误何时被引入系统的详细信息通常不存在。作为一种补救措施,研究人员经常依赖SZZ算法作为一种启发式方法来识别引入错误的软件更改。不幸的是,正如最近的系统性文献综述所报道的那样,很少有研究人员公开他们的SZZ实现。因此,有一种风险,即研究工作被浪费,因为基于SZZ输出的新项目最初需要重新实施该方法。此外,新开发的(封闭源代码)SZZ实现还没有经过适当的测试,因此基于其输出进行研究可能会对有效性造成威胁。我们介绍SZZ Unleashed,一个用于git仓库的SZZ算法的开放实现。本文描述了我们的实现以及Jenkins项目的使用示例,并以即时错误预测的说明性研究作为结论。我们希望继续在GitHub上发展SZZ Unleashed,并热情邀请社区做出贡献。
2019-08-19 cs.SE
ChainSWE: Benchmarking Coding Agents on Multi-Bug Software Maintenance
NVIDIA(英伟达);University College London(伦敦大学学院);New York University(纽约大学);Georgia Institute of Technology(佐治亚理工学院);Cornell University(康奈尔大学);Stanford University(斯坦福大学);Northeastern University(东北大学)
研究针对语言模型代理在多漏洞软件维护中的评估问题,引入ChainSWE基准,通过收集Python项目问题链进行评估,发现链长度增加时性能下降。
2026-09-02 cs.SE
An Exploratory Study on Regression Vulnerabilities
背景:安全回归是在以前未受影响的软件系统中引入的漏洞。它们通常是由于源代码更改而发生的(例如,bug修复)并且可能具有严重的影响。目的:增加对安全回归的理解。这是发展安全软件工程的重要一步。方法:我们对Mozilla进行了探索性的混合方法案例研究。首先,我们分析了78个回归漏洞和72个bug报告,其中一个bug修复在Mozilla中引入了回归漏洞。我们调查了开发人员如何在这些错误报告中进行交互,他们如何执行更改,以及在什么条件下他们引入回归漏洞。其次,我们对参与可扩展性诱导bug修复的尽可能多的Mozilla开发人员进行了五次半结构化访谈。结果:漏洞修复期间未讨论软件安全性。开发人员主要关心的是当前bug的复杂性和社区修复它的压力。此外,开发人员不必担心回归漏洞,并假设工具会检测到它们。事实上,动态分析工具帮助发现了Mozilla大约30%的回归漏洞。结论:这些结果提供的证据表明,虽然工具支持有助于识别回归漏洞,但它可能不足以确保漏洞修复期间的安全性。此外,我们的研究结果需要进一步研究安全工具支持以及如何在错误修复期间集成它们。数据和材料:https://doi.org/10.5281/zenodo.6792317
2022-07-05 cs.SE
LLMs as Evaluators: A Novel Approach to Evaluate Bug Report Summarization
本研究探索用 GPT-4o、LLaMA-3 和 Gemini 等 LLM 自动评估缺陷报告摘要,实验表明 LLM 表现良好且 GPT-4o 最优,同时可避免人类评估者的疲劳问题,具备规模化评估潜力。
2024-09-01 cs.SE
DABT: A Dependency-aware Bug Triaging Method
Ryerson University(瑞尔森大学)
在软件工程实践中,及时修复错误可以降低相关成本。另一方面,手动错误修复过程可能是耗时的,繁琐的,并且容易出错。在这项工作中,我们引入了一种错误分类方法,称为依赖性感知错误分类(DABT),它利用自然语言处理和整数编程将错误分配给适当的开发人员。与以往的工作,主要集中在一个方面的错误报告,DABT考虑的文本信息,成本与每个错误,以及它们之间的依赖关系。因此,这个全面的制定涵盖了以前的作品中最重要的方面,同时考虑到了错误的阻塞效果。我们报告了三个开源软件系统上的算法性能,即,支持JDT、LibreOffice和Mozilla。我们的结果表明,DABT能够将逾期错误的数量减少高达12%。它还将bug的平均修复时间减少了一半。此外,它通过优先考虑阻塞错误来降低错误依赖图的复杂性。
2021-04-26 cs.LG cs.SE
Continuously Learning Bug Locations
本文提出利用持续学习技术应对概念漂移,在非静态设置下进行缺陷定位,实验表明其性能显著优于深度学习方法,且计算成本更低。
2024-12-15 cs.SE
IBIR: Bug Report driven Fault Injection
软件工程和软件测试的许多研究依赖于基于故障注入的实验研究。然而,故障注入并不经常与模拟真实世界的软件故障相关,因为它“盲目地”注入大量的故障。它仍然确实具有挑战性,注入少数但现实的故障,目标是一个特定的功能,在一个程序。在这项工作中,我们引入IBIR,故障注入工具,通过探索与用户报告的故障相关的变化模式来解决这一挑战。为了注入真实的错误,我们通过重定向错误报告驱动的自动程序修复系统来创建突变体,即,反转其代码转换模板。IBIR在实践中更有吸引力,因为它既不需要深入了解代码也不需要深入了解测试,而只需要了解程序的相关错误报告。因此,我们的方法将故障注入的重点放在功能的缺陷报告。我们通过考虑Defects4J数据集来评估IBIR。实验结果表明,我们的方法优于传统的突变测试进行的故障注入与原始错误的语义相似性,当应用在系统或类级别的粒度,并提供更好的,统计上显着的,测试有效性(故障检测)的估计。此外,当注入100个错误时,IBIR在36%的情况下注入与真实错误耦合的错误,而突变测试中的突变注入不到1%。总的来说,IBIR的目标是真正的功能,并注入现实和多样化的故障。
2020-12-11 cs.SE
Q-PAC: Automated Detection of Quantum Bug-Fix Patterns
本文提出Q-PAC自动化框架,利用抽象语法树、语法过滤器和语义检查在IBM Qiskit量子代码中检测缺陷修复模式,实验验证其有效性,并作为Q-Repair研究议程的第一阶段推动量子软件质量提升。
2023-11-29 cs.SE
The Repeat Offenders: Characterizing and Predicting Extremely Bug-Prone Source Methods
University of Manitoba(曼尼托巴大学)
本研究探讨了极易出错方法的特征和预测挑战,发现这些方法在项目中占比虽小但引发bug的比例大,提出了针对此类方法的改进预测模型方向。
2026-02-27 cs.SE
How to Better Distinguish Security Bug Reports (using Dual Hyperparameter Optimization
背景资料:为了使公众不容易受到黑客的攻击,安全漏洞报告需要由一小群工程师处理,然后才能被广泛讨论。但是,学习如何区分安全错误报告与其他错误报告是具有挑战性的,因为它们可能很少发生。能够找到这种稀缺目标的数据采掘方法需要大量的优化工作。目标:这项研究的目的是帮助从业者,因为他们努力优化方法,试图区分罕见的安全错误报告和其他错误报告。方法:我们提出的方法,称为Swift,是一种双重优化器,可以优化学习器和预处理器选项。由于这是一个很大的选项空间,Swift使用了一种称为epsilon-dominance的技术,该技术可以学习如何避免不会显着提高性能的操作。测试结果:与最近的最先进的结果(来自FARSEC,发表在TSE '18)相比,我们发现Swift对预处理器和学习器的双重优化比单独优化它们更有用。例如,在一项针对Chromium数据集的安全漏洞报告的研究中,FARSEC和Swift的召回率中位数分别为15.7%和77.4%。再举一个例子,在Ambari项目的数据实验中,召回率中位数从21.5%提高到85.7%(FARSEC到SWIFT)。结论:总的来说,我们的方法可以快速优化模型,实现比现有技术更好的召回。这些召回的增加与假阳性率的适度增加(从8%到24%,中位数)相关。对于未来的工作,这些结果表明,双重优化是实用和有用的。
2021-03-18 cs.SE
Advaita: Bug Duplicity Detection System
Cisco Systems, Inc(思科系统公司)
bug在软件开发中很普遍。为了提高软件质量,使用错误跟踪系统对错误进行归档。报告的bug的属性包括标题、描述、项目、产品、受bug影响的组件以及bug的严重性。根据产品成熟度、代码大小和项目工程师数量,重复错误率(重复错误的百分比)在个位数(1 - 9%)到两位数(40%)之间。在Eclipse、Firefox等开源项目中,重复的bug范围在9%到39%之间。这种重复检测有助于重复数据消除。检测重复的bug有助于减少分类工作,并为开发人员节省修复问题的时间。传统的自然语言处理技术在识别句子之间的相似性方面不太准确。使用缺陷跟踪系统中存在的缺陷数据,探索了各种方法,包括几种机器学习算法,以获得一种可行的方法,该方法可以识别重复的缺陷,给定一对句子(即,相应的缺陷描述)。该方法考虑多组特征,即基本文本统计特征、语义特征和上下文特征。这些特征从标题、描述和组件中提取,并且随后用于训练分类算法。
2020-01-24 cs.AI cs.SE
What is a "bug"? On subjectivity, epistemic power, and implications for software research
本文探讨了软件研究中“bug”定义的主观性与认知权力问题,指出在缺乏完整形式化规约时,现有定义常依赖不完美的代理,并分析了这种模糊性对软件工程研究的影响。
2024-02-13 cs.HC cs.SE
InferFix: End-to-End Program Repair with LLMs
软件开发的生存周期深受bug的影响:它们的引入、识别和最终的解决方案占软件成本的很大一部分。这促使软件工程研究人员和从业人员提出不同的方法来自动识别和修复软件缺陷。通过Few-Shot演示学习和指令提示,大语言模型已经适应了程序修复任务,将其视为填充任务。然而,这些模型只专注于学习从公共存储库中挖掘的未分类错误的一般错误修复模式。在本文中,我们提出了InferFix:一个基于transformer的程序修复框架与最先进的静态分析器配对,以修复关键的安全和性能错误。InferFix结合了检索器-通过对比学习目标预训练的Transformer编码器模型,其目的是搜索语义等效的错误和相应的修复;和生成器-一个大语言模型(Codex Cushman)对监督错误修复数据进行微调,并通过错误类型注释和从外部非参数存储器检索的语义相似的修复来增强提示。为了训练和评估我们的方法,我们策划了InferredBugs,这是一个新颖的、元数据丰富的bug数据集,通过对数千个Java和C#存储库的更改历史执行Infer静态分析器来提取。我们的评估表明,InferFix优于强大的LLM基线,在C#中生成修复的前1准确率为65.6%,在Java中为76.8%。我们将讨论InferFix与Infer在微软的部署,Infer提供了一个端到端的解决方案,用于检测,分类和定位错误,以及修复和验证候选补丁,集成在持续集…
2023-03-13 cs.SE
SWE-Doctor: Guiding Software Engineering Agents with Runtime Diagnosis from Multi-Faceted Bug Reproduction Tests
提出SWE-Doctor,通过生成多面缺陷复现测试并执行调试,构建运行时诊断记录,结合定位信息指导补丁生成,在SWE-bench Verified和Pro上平均解决率分别达75.7%和59.4%。
2026-07-02 cs.AI cs.SE
A Variability Fault Localization Approach for Software Product Lines
软件故障定位是程序调试中最昂贵、最繁琐、最耗时的活动之一。在软件产品线(SPL)系统中,由于故障的可变性,此活动变得更具挑战性。这些意外的行为是由可变性故障引起的,这些可变性故障只能在系统特征的某些组合下暴露。这些特征之间的相互作用导致了系统的故障。尽管单系统工程中的缺陷定位已经得到了深入的研究,但SPL系统中的可变性故障定位仍然没有得到很大程度的探索。在这篇文章中,我们提出了VarCop,一种新的和有效的可变性故障定位方法。对于因可变性错误而失败的SPL系统,VarCop通过分析采样产品及其源代码的总体测试结果来隔离可疑的代码语句。孤立的可疑语句是与系统中bug可见性所必需的功能之间的交互相关的语句。根据包含语句的产品的总体测试结果以及这些产品中语句执行的测试用例的详细结果,评估每个孤立语句的可疑性。在一个大的数据集的缺陷SPL系统,实证评估表明,VarCop显着提高了两个国家的最先进的故障定位技术的33%和50%,在排名中的不正确的陈述,每个包含一个单一的错误的系统。在大约三分之二的情况下,VarCop将错误陈述排在结果列表的前三位。对于多个错误的情况下,VarCop优于国家的最先进的方法2倍和10倍的错误定位在前1位的比例。在22%和65%的bug版本中,VarCop正确地将系统中至少一个bug排在前1和前5位。
2021-09-21 cs.SE
Categorizing Bugs with Social Networks: A Case Study on Four Open Source Software Communities
ETH Zurich(苏黎世联邦理工学院)
有效的错误分类过程是成功的协作软件工程项目的重要前提。对bug进行分类可能会成为一项艰巨的任务,特别是在开源软件(OSS)项目中,有大量缺乏经验的兼职贡献者。在本文中,我们提出了一个有效的和实用的方法来识别有效的错误报告,a)指的是一个实际的软件错误,b)不是重复的,c)包含足够的信息,立即处理。我们的分类是基于九个措施,以量化的社会嵌入的bug报告者在协作网络。我们证明了它的适用性的案例研究中,使用一个全面的数据集,超过70万个错误报告,从Bugzilla安装的四个主要的OSS社区,为期十多年。对于那些表现出最低比例的有效错误报告的项目,我们发现,错误报告者在协作网络中的位置是错误报告质量的一个强有力的指标。基于这一发现,我们开发了一个自动化的分类方案,可以很容易地集成到错误跟踪平台,并分析其性能在考虑OSS社区。一个支持向量机(SVM),以确定有效的错误报告的基础上的九个措施产生了高达90.3%的准确率与38.9%的召回。有了这个,我们显着提高了在以前的案例研究中获得的结果,自动早期识别的错误,最终修复。此外,我们的研究强调了在协作软件工程中使用社会组织的定量测量的潜力。它还为将社会意识纳入支助基础设施的设计开辟了广阔的前景。
2013-02-28 cs.LG cs.SE cs.SI
Active-SWE: Benchmarking Coding Agents for Proactive Bug Fixing without Issue Reports
Sichuan University(四川大学);University of Electronic Science and Technology of China(电子科技大学)
Active-SWE是首个针对无问题报告的主动多漏洞修复任务的编码智能体基准,实验显示现有顶尖编码智能体在该任务上性能有限。
2026-09-30 cs.AI cs.SE
Are Large Language Models Memorizing Bug Benchmarks?
Carnegie Mellon University(卡内基梅隆大学);INESC-ID;FEUP(波尔图大学工程学院);LASIGE
本文评估了流行LLMs对广泛使用的缺陷基准的数据泄露易感性,发现codegen-multi等模型在Defects4J中存在明显记忆,而LLaMa 3.1等较新模型泄露有限,强调了谨慎选择基准和采用稳健指标的必要性。
2025-03-31 cs.AI cs.LG cs.SE
Empirical Study on Transformer-based Techniques for Software Engineering
本文实证比较 CodeBERT、CodeGPT 与 CodeT5 在四类软件工程任务上的适用性、泛化性和资源消耗,挑战编码器-解码器架构最优的固有认知。
2023-09-30 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
Empirical Research on Utilizing LLM-based Agents for Automated Bug Fixing via LangGraph
提出一种基于LangGraph、GLM4 Flash和ChromaDB的四步迭代框架,实现自动化代码生成与缺陷修复,提升软件开发准确性、效率与可扩展性。
2025-01-29 cs.SE
A comprehensible analysis of the efficacy of Ensemble Models for Bug Prediction
São Paulo State University(圣保罗州立大学)
本文比较了单一AI模型与集成AI模型在预测Java类缺陷概率上的有效性,实验表明集成AI模型表现更优,有助于提升软件可靠性。
2023-10-18 cs.AI cs.SE