ADPTriage: Approximate Dynamic Programming for Bug Triage
Toronto Metropolitan University(多伦多都会大学);University of Toronto(多伦多大学)
缺陷分类是任何软件开发项目中的一项关键任务。它需要triager检查一系列开放的bug,决定是否需要解决每个bug,如果需要,哪个开发人员应该修复它。然而,问题跟踪系统(ITS)中的手动bug分配只能提供有限的解决方案,并且当triager必须处理大量bug报告时很容易失败。在自动分配期间,ITS中存在多种不确定性来源,应认真解决。在这项研究中,我们开发了一个马尔可夫决策过程(MDP)模型的在线错误分类任务。除了基于优化的短视技术之外,我们还提供了一种基于ADP的错误分类解决方案,称为ADPTriage,它能够反映错误到达和开发人员时间表中的下游不确定性。具体而言,在不对底层随机过程施加任何限制的情况下,该技术能够在考虑开发人员的专业知识、错误类型和错误修复时间的同时,对错误分配进行实时决策。我们的研究结果表明,近视的方法在分配精度和固定时间方面有显着改善。我们还证明了模型的经验收敛性,并进行敏感性分析与各种模型参数。因此,这项工作在解决bug分类解决方案中的不确定性方面迈出了重要的一步
2022-11-02 cs.LG cs.SE
Developer Load Normalization Using Iterative Kuhn-Munkres Algorithm: An Optimization Triaging Approach
错误分类可以定义为将开发人员分配到错误报告的过程。bug分类小组的职责是研究开发人员的概要文件,以便在开发人员和传入的bug报告之间进行适当的匹配。因此,这一过程是问题管理系统中至关重要的一步。事实上,每天提交的bug报告数量正在逐渐增加,这影响了开发人员的工作量。因此,分类团队在分发bug时应该考虑这个因素,因为手动方法,许多开发人员都是负担。特别是,在不考虑工作负载的情况下对bug报告进行分类,不仅会影响开发人员的工作负载,还会导致未解决的bug报告数量的增加。因此,报告的bug的修复时间将相对增加。与其他专注于自动化错误分类而忽略开发人员工作量的研究人员不同,在这项工作中,我们从不同的角度处理分类过程。所提出的方法侧重于如何优化的错误修复时间规范化的开发人员在自动化系统的负载。为了评估我们的工作,我们使用了来自不同bug库的26,317个bug报告。结果表明,我们的工作优于其他系统在优化的错误总修复时间和正常化的开发人员负载。
2022-02-03 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
S-DABT: Schedule and Dependency-Aware Bug Triage in Open-Source Bug Tracking Systems
Ryerson University(瑞尔森大学)
及时修复错误可以降低软件维护中的各种潜在成本。然而,手动的bug修复调度可能是耗时的,麻烦的,并且容易出错。在本文中,我们提出了时间表和依赖性意识的错误分类(S-DABT),一个错误分类方法,利用整数规划和机器学习技术分配错误到合适的开发人员。与以前的工作,主要集中在一个单一的组件的错误报告,我们的方法考虑到文本数据,错误修复成本,和错误的依赖关系。我们进一步将开发人员的时间表纳入我们的制定中,以便为这个多方面的问题提供更全面的模型。因此,这个完整的公式考虑了开发人员的时间表和错误的阻塞效应,同时涵盖了以前提出的方法的最重要的方面。我们对四个开源软件系统,即OpenSeJDT,LibreOffice,GCC和Mozilla的数值研究表明,考虑到开发人员的时间表减少了平均错误修复时间。我们发现,S-DABT导致开发人员利用率高,通过公平分配的开发人员之间的任务和有效地利用他们的时间表中的空闲点。通过问题跟踪系统的模拟,我们还展示了如何将计划在模型制定减少了错误修复时间,提高了分配的准确性,并利用每个开发人员的能力,而没有太多的模型运行时间。我们发现,S-DABT降低了错误依赖图的复杂性,通过优先级阻塞错误,并有效地降低了不可行的分配率,由于错误的依赖关系。因此,我们建议在自动化bug分类时考虑开发人员的时间表。
2022-04-12 cs.LG cs.SE
Enhancing Bug Report Templates in the TianoCore UEFI Firmware Development Community
University of Colorado Colorado Springs(科罗拉多大学科泉分校);Purdue University(普渡大学)
本研究针对TianoCore核心项目EDK II,通过分析漏洞数据发现关键信息缺失问题,拟在GitHub Issues的漏洞报告模板中新增字段,计划经开发者反馈调整及A/B测试验证,以优化UEFI固件漏洞分类与解决流程。
2026-09-10 cs.SE
Streamlining Security Vulnerability Triage with Large Language Models
提出CASEY方法,利用大语言模型结合提示工程和上下文信息,自动识别安全漏洞的CWE并评估严重性,准确率分别达68%和73.6%,有效提升漏洞分类效率。
2025-01-31 cs.SE
Bug Fix Time Optimization Using Matrix Factorization and Iterative Gale-Shaply Algorithms
缺陷分类是软件维护阶段的一项重要工作。它分配给开发人员(修复者)bug报告来修复它们。这个过程是由一个triager手动执行的,他分析开发人员的配置文件并提交错误报告,以进行适当的分配。缺陷分类过程非常耗时,因此自动化这个过程对于提高软件质量至关重要。以前的工作解决分流问题作为一个信息检索或分类问题。本文处理这个问题作为一个资源分配问题,旨在最好的分配开发人员的错误报告,减少总修复时间的新提交的错误报告,除了均匀分布的错误报告的开发人员。本文首先引入了一种基于差分进化的矩阵分解和Gale Shapely算法相结合的方法来优化总修复时间和规范开发人员的工作量。利用矩阵分解方法建立了一个推荐系统,用于Gale-Shapley算法的分配决策。差分进化提供了一组最佳的权重来构建开发人员的评分配置文件。所提出的方法在三个存储库上进行评估,Linux,Apache和Eclipse。实验结果表明,该方法在Linux、Eclipse和Apache上分别比人工分流减少了80.67%、23.61%和60.22%的漏洞修复时间。此外,开发人员的工作量是统一的。
2022-07-14 cs.IR cs.SE
Automated Bug Frame Retrieval from Gameplay Videos Using Vision-Language Models
本文提出一种自动化流水线,利用FFmpeg提取关键帧并由GPT-4o视觉-语言模型排序,从游戏视频中检索与缺陷描述最匹配的帧,显著减少人工审查,实现F1分数0.79。
2025-08-06 cs.SE
Assessing the Quality of the Steps to Reproduce in Bug Reports
由开发人员指出并由研究人员记录的用户编写的错误报告的一个主要问题是报告重现错误的步骤(缺乏高)质量。低质量的复制步骤会导致在错误分类和解决上花费过多的手动工作。本文提出了欧拉,一种方法,自动识别和评估的质量的步骤,重现在一个错误报告,提供反馈给记者,他们可以用来改善错误报告。外部评估人员对Euler提供的反馈进行了评估,结果表明,Euler正确识别了98%的现有复制步骤和58%的缺失步骤,而73%的质量注释是正确的。
2019-06-17 cs.SE
DapStep: Deep Assignee Prediction for Stack Trace Error rePresentation
HSE University(俄罗斯国立高等经济学院);JetBrains(JetBrains 公司);JetBrains Research(JetBrains 研究院)
找到最好的开发人员来修复bug的任务称为bug分类。大多数现有的方法认为错误分类任务作为一个分类问题,然而,分类是不合适的,当类的集合随着时间的推移而变化(如开发人员经常在一个项目中)。此外,据我们所知,所有现有的模型都使用文本信息源,即,bug描述,并不总是可用的。在这项工作中,我们探讨了现有的解决方案的错误分类问题时,堆栈跟踪作为主要数据源的错误报告的适用性。此外,我们将这一任务重新定义为排名问题,并提出了新的深度学习模型来解决它。这些模型基于带注意力的双向递归神经网络和卷积神经网络,并使用排名损失函数优化模型的权重。为了提高排名的质量,我们建议使用来自版本控制系统注释的附加信息。提出了两种方法从注释中提取特征:手动和使用额外的神经网络。为了评估我们的模型,我们收集了两个真实世界堆栈轨迹的数据集。我们的实验表明,所提出的模型优于现有的模型适应处理堆栈跟踪。为了促进这一领域的进一步研究,我们发布了我们模型的源代码和收集的数据集之一。
2022-01-14 cs.LG cs.SE
Not All Bugs Are the Same: Understanding, Characterizing, and Classifying the Root Cause of Bugs
现代版本控制系统,如Git或SVN,包括bug跟踪机制,通过该机制,开发人员可以通过bug报告突出bug的存在,即,报告问题的文本描述以及导致失败的步骤。在过去和最近几年,研究界深入研究了简化bug分类的方法,即将报告的bug的修复分配给最合格的开发人员的过程。然而,只有少数研究报告了如何支持开发人员理解报告的错误类型,这是在分配错误修复操作之前执行的第一个也是最耗时的步骤。在本文中,我们从两个方面来解决这个问题:首先,我们分析了119个流行项目的1,280个bug报告,这些项目属于Mozilla、Apache和Eclipse等三个生态系统,目的是建立报告bug的根本原因的分类法;然后,我们设计并评估了一个自动分类模型,该模型能够根据定义的分类法对报告的bug进行分类。结果,我们发现了所考虑系统中错误的九个主要常见根本原因。此外,我们的模型实现了较高的F-Measure和AUC-ROC(总体上分别为64%和74%)。
2019-07-25 cs.SE
Can We Enhance Bug Report Quality Using LLMs?: An Empirical Study of LLM-Based Bug Report Generation
University of Calgary(卡尔加里大学)
本文探讨利用指令微调LLM将非结构化缺陷报告自动转化为结构化报告,发现微调Qwen 2.5在CTQRS等指标上优于ChatGPT等模型,并能有效泛化至未见项目,显著降低开发人员手工成本。
2025-04-26 cs.AI cs.SE
Automatic Repair of Real Bugs: An Experience Report on the Defects4J Dataset
Defects4J是一个大型的、同行评审的、结构化的Java bug数据集。Defects4J中的每个bug都提供了一个测试套件和至少一个触发bug的失败测试用例。在本文中,我们报告了一个实验,以探讨自动修复缺陷4J的有效性。我们的实验结果表明,缺陷4J数据集的47个错误可以通过最先进的修复自动修复。这为Java自动修复的未来研究奠定了基础。我们手动分析了84个不同的补丁,以评估它们的真实正确性。总的来说,9个真正的Java bug可以通过基于测试套件的修复来正确修复。该分析表明,基于测试套件的修复遭受未指定的错误,其中琐碎和不正确的补丁仍然通过测试套件。就实用性而言,找到一个补丁平均需要14.8分钟。实验是在科学网格上进行的,总共计算时间为17.6天。他们所有的系统和实验结果都在Github上公开,以方便未来对自动修复的研究。
2015-12-23 cs.SE
Automatically Reproducing Android Bug Reports Using Natural Language Processing and Reinforcement Learning
作为解决用户通过错误报告提交的问题的过程的一部分,Android开发人员尝试重现和观察错误报告中描述的故障。由于bug报告的低质量和现代应用程序的复杂性,复制过程是不平凡和耗时的。因此,非常需要能够帮助重现Android错误报告的自动方法。然而,当前帮助开发人员自动再现错误报告的方法仅能够处理有限形式的自然语言文本,并且难以成功再现初始错误报告缺少或不精确步骤的故障。在本文中,我们将介绍一种新的全自动Android错误报告再现方法,以解决这些限制。我们的方法通过利用自然语言处理技术来更全面、更准确地分析Android错误报告中的自然语言,并基于强化学习设计新技术来指导搜索成功的再现步骤,从而实现了这一目标。我们对77个真实世界的错误报告进行了实证评估。我们的方法在准确地从错误报告中提取再现步骤方面实现了67%的精确度和77%的召回率,并再现了74%的错误报告,显着优于最先进的技术。
2023-01-18 cs.SE
Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies
错误基准测试对于经验性地评估自动程序修复工具是必不可少的。在本文中,我们提出了熊,一个项目收集和存储错误到一个可扩展的错误基准自动修复研究在Java中。bug的收集依赖于持续集成(CI)的提交构建状态,以从GitHub上托管的开源项目中找到潜在的bug和补丁程序版本对。每一对程序版本都通过一个管道,在管道中尝试复制一个错误及其补丁。再现流水线的核心步骤是在两个程序版本上执行程序的测试套件。如果在有缺陷的程序版本候选中发现测试失败,并且在其修补程序版本候选中没有发现测试失败,则错误及其修补程序成功再现。Bears的独特之处在于使用CI(构建)来识别有缺陷和打补丁的程序版本候选者,这在过去几年中已被广泛采用在开源项目中。这种方法允许我们从各种各样的项目中收集bug,而不仅仅是使用bug跟踪系统的成熟项目。此外,Bears被设计为公开可用,并通过在给定的GitHub存储库中自动创建带有bug的分支来轻松扩展研究社区,这些分支可用于Bears存储库中的拉取请求。我们在本文中介绍的方法所采用的熊,我们提供了版本1.0的熊,其中包含251个可重复的错误收集72个项目,使用特拉维斯CI和Maven构建环境。
2019-01-17 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
STEAM: Simulating the InTeractive BEhavior of ProgrAMmers for Automatic Bug Fixing
本文提出名为STEAM的分阶段框架,通过模拟多个程序员在缺陷报告、诊断、补丁生成与验证四个阶段的交互协作行为,利用ChatGPT显著提升了大型语言模型的自动缺陷修复能力,达到了最先进的性能水平。
2023-08-28 cs.SE
Buggin: Automatic intrinsic bugs classification model using NLP and ML
本文提出Buggin方法,利用NLP技术(seBERT和TF-IDF)结合机器学习算法自动识别缺陷报告中的内在缺陷,实验表明TF-IDF与决策树结合在缺陷标题上取得78%的F1最高分。
2025-04-02 cs.SE
Automatic Static Bug Detection for Machine Learning Libraries: Are We There Yet?
本文在四个机器学习库的410个已知缺陷上评估五种静态缺陷检测器,发现其整体检出率极低,仅 Flawfinder 和 RATS 相对有效,并据此提出改进静态检测工具实用性的方向。
2023-07-09 cs.SE
PATCH: Empowering Large Language Model with Programmer-Intent Guidance and Collaborative-Behavior Simulation for Automatic Bug Fixing
针对现有大语言模型(LLMs)自动漏洞修复方法忽视协作性、仅以漏洞代码为输入的局限,提出分阶段框架PATCH,通过补充依赖上下文与意图信息、模拟程序员协作的四阶段任务流程,在BFP基准上性能优于现有LLMs。
2025-02-16 cs.SE
Automatically Enhancing the Quality of Android App Bug Reports
William & Mary(威廉与玛丽学院);University of Central Florida(中佛罗里达大学);George Mason University(乔治梅森大学)
本文提出通过提供具体应用相关信息帮助LLM自动生成清晰详细的缺陷报告,提出BugScribe方法,通过评估显示其生成的报告质量更高且更准确。
2026-07-03 cs.SE
Evaluating Diverse Large Language Models for Automatic and General Bug Reproduction
针对缺陷复现难以自动化的问题,提出结合LLM生成测试用例与后处理筛选的LIBRO技术,在Defects4J基准复现约三分之一缺陷,并评估多类LLM的复现性能差异与规模影响。
2023-11-09 cs.SE
Automatic Generation of Test Cases based on Bug Reports: a Feasibility Study with Large Language Models
本研究针对现有自动测试生成方法的局限性,探索利用大语言模型以缺陷报告为输入生成复杂场景测试用例的可行性,实验验证了其效果及在故障定位、补丁验证等任务中的实用价值。
2023-10-10 cs.SE
Bugfix: a standard language, database schema and repository for research on bugs and automatic program repair
针对自动程序修复领域缺乏统一参照框架的问题,提出Bugfix框架,包括标准语言、数据库和仓库,以支持APR社区试验和比较结果。
2025-02-27 cs.SE
An Analysis of the Automatic Bug Fixing Performance of ChatGPT
为了支持软件开发人员发现和修复软件错误,已经引入了几种自动程序修复技术。给定一个测试套件,标准方法通常要么合成一个修复,要么导航一个软件编辑的搜索空间来找到测试套件通过的变体。最近的程序修复方法基于深度学习方法。ChatGPT是这些新方法中的一种,它主要不是用于自动程序修复,但仍然适用于它。然而,到目前为止,ChatGPT的bug修复性能还不清楚。因此,在本文中,我们评估ChatGPT的标准错误修复基准集,菜错误,并比较性能与其他几种方法的结果在文献中报道。我们发现ChatGPT的错误修复性能与常见的深度学习方法CoCoNut和Codex相比具有竞争力,并且明显优于标准程序修复方法的结果。与以前的方法相比,ChatGPT提供了一个对话系统,通过该系统,可以输入特定输入的预期输出或观察到的错误消息。通过向ChatGPT提供这样的提示,它的成功率可以进一步提高,修复了40个错误中的31个,超过了最先进的水平。
2023-01-20 cs.SE
iFixR: Bug Report driven Program Repair
问题跟踪系统通常用于现代软件开发中,用于收集来自用户和开发人员的反馈。软件维护的最终自动化目标是系统化的补丁生成用户报告的错误。虽然这一雄心与自动程序修复的势头一致,但到目前为止,文献大多集中在生成和验证设置上,其中故障定位和补丁生成由定义良好的测试套件驱动。然而,一方面,对于大多数开发环境,存在相关测试用例的常见(但很强)假设在实践中并不成立:许多错误报告没有可用的测试套件能够揭示它们。另一方面,对于许多项目,bug报告的数量通常超过了可用于分类它们的资源。为了增加从业者采用补丁生成工具,我们调查了一个新的修复管道,iFixR,驱动的错误报告:(1)错误报告被馈送到一个基于IR的故障定位器;(2)补丁生成的修复模式,并通过回归测试验证;(3)优先级列表生成的补丁,建议开发人员。我们在我们丰富的Defects 4J数据集上评估iFixR(即,故障被链接到错误报告)并仔细地重新组织(即,测试用例的时间轴自然地被分割)。iFixR使用其基于IR的故障定位器为21/44 Defects 4J故障生成真实/合理的补丁。iFixR准确地将真实/合理的补丁置于其对这些故障中的8/13的前5个建议中(在生成和验证中不使用未来的测试用例)。
2019-07-12 cs.SE
SoK: From Finding to Deployment: Systematizing the OS Kernel Bug Lifecycle
University of Illinois Chicago(伊利诺伊大学芝加哥分校);Indiana University Bloomington(印第安纳大学布鲁明顿分校)
本SoK系统化Linux内核缺陷从发现到部署的生命周期,划分五个阶段,通过测量syzbot修复缺陷揭示崩溃到补丁差距的结构性原因,指出修复技术应把复现器等产物视为输出而非前提。
2026-09-22 cs.CR cs.OS cs.SE
Review4Repair: Code Review Aided Automatic Program Repairing
内容:基于学习的自动程序修复技术有望为软件源代码中检测到的错误提供质量修复建议。这些工具主要利用错误和修复代码更改的历史数据,并且在应用于新代码时严重依赖错误定位器。随着代码审查的日益普及,对bug定位器的依赖可以减少。此外,基于代码评审的错误定位更值得信赖,因为评审员的专业知识和经验反映在这些建议中。目的:评审评论中的自然语言说明是关于bug的性质和预期解决方案的大量信息来源。然而,据我们所知,没有一个基于学习的工具利用评审注释来修复编程错误。在这项研究中,我们调查的性能改善修复技术使用代码审查意见。方法:我们对55,060个代码评审和相关的代码变更进行了序列到序列模型的训练。我们还介绍了新的标记化和预处理方法,这些方法有助于实现对最先进的基于学习的修复技术的显着改进。结果:我们将前1名的准确率提高了20.33%,前10名的准确率提高了34.82%。我们可以为现有技术未解决的文体和非代码错误提供建议。结论:我们相信,通过我们的方法生成的自动修复建议以及代码审查将帮助开发人员快速正确地处理审查评论,从而节省他们的时间和精力。
2020-10-06 cs.SE
Can LLMs Demystify Bug Reports?
本研究针对现有工具难以自动处理自然语言Bug报告的问题,用Defects4J基准测试ChatGPT,发现其能复现50%的报告Bug,展现了人机协同处理Bug的应用潜力。
2023-10-10 cs.SE
Bug or not bug? That is the question
如今,开发团队经常依赖Jira或Bugzilla等工具来管理待解决的问题的积压,以开发或维护软件。虽然它们涉及许多不同的问题(例如,错误修复、新特征开发、体系结构重构),除了可以手动地与这些问题相关联的非强制性标签之外,很少有方法被提出来识别和分类这些不同种类的问题。这可能导致问题分类缺失或问题分类错误,从而影响自动问题管理(计划、分配)或问题衍生指标。因此,自动问题分类是辅助积压管理的相关主题。本文提出了一个二元分类的解决方案,区分错误和非错误的问题。该解决方案结合了自然语言处理(TF-IDF)和分类(多层感知器)技术,在比较了常用的解决方案后选择对问题进行分类。此外,神经网络的超参数优化使用遗传算法。所获得的结果,与现有的作品相比,常用的基准,显示所有数据集的F1措施显着改善。
2021-03-22 cs.SE
App Review Driven Collaborative Bug Finding
University of Luxembourg(卢森堡大学);Huawei(华为)
软件开发团队通常欢迎任何暴露代码库中错误的努力。在这项工作中,我们建立在假设,移动应用程序从同一类别(例如,两个网络浏览器应用程序)在其进化过程中可能受到类似错误的影响。因此,可以转移一个历史应用程序的经验,以快速找到新应用程序中的错误。这在文献中被称为协作式错误发现。我们的新颖之处在于,我们通过考虑应用程序评论中已经暗示的现有bug来指导bug查找过程。具体来说,我们设计了BugRMSys方法,通过匹配同一类别应用程序的历史错误报告与目标应用程序的用户应用程序评论,为目标应用程序推荐错误报告。我们的实验表明,这种方法使我们能够快速暴露和报告数十个目标应用程序的错误,如勇敢(Web浏览器应用程序)。BugRMSys的实现依赖于DistilBERT来生成自然语言文本嵌入。我们的管道考虑了bug报告和应用程序评论之间的相似性,以识别相关的bug。然后,我们将重点放在应用程序审查以及历史错误报告(来自同一类别的应用程序)中的潜在重现步骤上,以重现错误。总体而言,在将BugRMSys应用于六个流行应用程序后,我们能够识别,重现和报告20个新错误:其中9个报告已经分类,6个已确认,4个已由官方开发团队修复。
2023-01-23 cs.AI cs.SE
COMMITGUARD: Differential Slice Fuzzing for Commit-Induced Bug Detection
Cheriton School of Computer Science University of Waterloo(滑铁卢大学切里顿计算机科学学院);Department of Computer Science University of Calgary(卡尔加里大学计算机科学系)
COMMITGUARD是一种基于提交感知差分切片的模糊测试方法,通过对比提交前后代码切片的 sanitizer 报告,从300次开源项目提交中识别出7份候选漏洞,其中5份为真实漏洞,平均分析单提交耗时32.4分钟,修改函数覆盖率达75.36%。
2026-08-19 cs.SE
Enriching Automatic Test Case Generation by Extracting Relevant Test Inputs from Bug Reports
针对自动化测试用例生成中输入相关性不足的问题,提出结合大语言模型与传统技术的BRMiner方法,从错误报告提取相关输入,提升测试生成的覆盖率与缺陷检测能力。
2025-03-19 cs.SE
Auto-labelling of Bug Report using Natural Language Processing
Juniper Networks Inc.(瞻博网络公司);San José State University(圣何塞州立大学)
本文提出一种结合NLP技术的自动标记错误报告方法,利用自定义数据转换器、深度神经网络和非泛化机器学习,在数千个错误报告上实现recall@5为70%的高检索准确率。
2022-12-13 cs.AI cs.LG cs.SE
TreeMind: Automatically Reproducing Android Bug Reports via LLM-empowered Monte Carlo Tree Search
Anhui University(安徽大学);University of Science and Technology of China(中国科学技术大学)
TreeMind结合LLM与MCTS算法,通过语义推理和反馈导航,高效重现Android bug报告。
2026-02-01 cs.SE
A Bug or a Suggestion? An Automatic Way to Label Issues
Nanjing University(南京大学);The Hong Kong Polytechnic University(香港理工大学)
越来越多的用户和开发人员正在使用问题跟踪系统(ITS)报告问题,包括错误,功能请求,增强建议等。然而,当在不同的ITS上报告问题时,会从用户那里收集不同的信息,这对问题分类工具在ITS中有效工作提出了相当大的挑战。此外,当涉及到分类问题时,错误通常具有更高的优先级,而现有的问题分类方法很少关注区分错误和其他非错误问题,导致错误识别的准确性不佳。在本文中,我们提出了一种基于深度学习的方法来自动识别各种ITS中的错误报告问题。该方法实现了k-NN算法来检测和纠正从ITS中提取的数据中的错误分类,并使用超过120万个标记问题的数据集来训练基于注意力的双向长短期记忆(ABLSTM)网络以识别错误报告。实验评估表明,我们的方法在区分错误和其他问题方面达到了85.6%的F-度量,显著优于实验中检查的其他基准和最先进的方法。
2019-09-03 cs.AI cs.SE
Bug Severity Prediction in Software Projects Using Supervised Machine Learning Models
Daffodil International University(达福迪尔国际大学)
本研究利用监督机器学习模型,通过Eclipse Bugzilla的历史数据预测缺陷严重性,发现集成树方法和DistilBERT在准确性上表现最佳,线性模型在召回率上更优,为自动化缺陷分拣提供了有效方法。
2026-01-09 cs.LG cs.SE
Automatic Bug Detection in Games using LSTM Networks
Ontario Tech University(安大略理工大学)
本研究提出一种基于LSTM网络的游戏感知缺陷检测框架,通过异常检测识别游戏缺陷并聚类分类,经两款FPS游戏验证有效。
2023-12-13 cs.AI cs.LG cs.SE
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
本文提出 BushraDBR,利用 LSI 与 FCA 计算新缺陷报告和仓库报告的文本相似度,以自动检索并提前拦截重复缺陷报告。
2024-05-04 cs.SE
Better Automatic Program Repair by Using Bug Reports and Tests Together
自动程序修复已经在工业中部署,但对修复质量的担忧仍然存在。最近的研究表明,修复工具产生不正确的(但似乎是正确的)补丁的主要原因之一是不完善的故障定位(FL)。本文表明,结合自然语言的错误报告和测试执行时,本地化故障的信息可以有显着的积极影响修复质量。例如,具有这种FL的现有修复工具能够正确地修复Defects 4J基准中的7个缺陷,而现有工具没有正确地修复这些缺陷。我们开发,蓝调,第一个信息检索为基础的,语句级FL技术,不需要训练数据。我们进一步开发RAFL,第一个无监督的方法结合多种FL技术,它优于监督的方法。使用RAFL,我们通过将蓝光与基于频谱(SBFL)的技术相结合来创建SBIR。在对815个真实缺陷进行评估后,SBIR始终将错误语句的排名高于其底层技术。然后,我们修改三个国家的最先进的修复工具,Arja,SequenceR,和SimFix,使用SBIR,SBFL,和蓝调作为其内部FL。我们评估了689个真实世界的缺陷所产生的补丁的质量。Arja和SequenceR显著受益于SBIR:使用SBIR的Arja正确修复了28个缺陷,但使用SBFL时只有21个,使用Blues时只有15个;使用SBIR的SequenceR正确修复了12个缺陷,但使用SBFL时只有10个,使用Blues时只有4个。SimFix(具有克服不良FL的内部机制)使用SBIR和SBFL正确修复了30个缺陷,…
2023-02-06 cs.SE
Human-In-The-Loop Automatic Program Repair
Monash University(莫纳什大学)
我们介绍Learn 2fix,这是第一个人在回路中的半自动修复技术,当没有错误预言时-除了报告错误的用户-可用。我们的方法与用户协商的条件下,该错误被观察到。只有当用户的查询预算耗尽时,它才会尝试修复错误。一个查询可以被认为是下面的问题:“当执行这个替代的测试输入时,程序产生下面的输出;是否观察到了bug”?通过系统化的查询,Learn 2fix训练了一个自动的错误预言,在预测用户的响应方面变得越来越准确。我们的主要挑战是在给定的小查询预算的情况下,最大限度地提高预言机在预测哪些测试是bug暴露方面的准确性。从用户标记的替代测试中,测试驱动的自动修复生成补丁。我们的实验表明,Learn 2fix学习一个足够准确的自动甲骨文与一个合理的低标签的努力(lt.20查询)。给定Learn 2fix的测试套件,GenProg测试驱动的修复工具生成更高质量的补丁(即,通过更大比例的验证测试)而不是使用与修复基准一起提供的手动测试套件。
2019-12-16 cs.AI cs.SE
Automatically Matching Bug Reports With Related App Reviews
应用商店允许用户对应用程序提供有价值的反馈,开发人员可以找到这些反馈并将其用于软件发展。然而,在问题跟踪器中找到与现有错误报告相匹配的用户反馈是一项挑战,因为用户和开发人员通常使用不同的语言。在这项工作中,我们介绍了DeepMatcher,这是一种自动方法,使用最先进的深度学习方法将应用程序评论中的问题报告与问题跟踪器中的错误报告相匹配。我们用四个开源应用程序对DeepMatcher进行了定量和定性评估。DeepMatcher的平均命中率为0.71,平均精度为0.55。对于91个问题报告,DeepMatcher没有找到任何匹配的bug报告。当手动分析这91个问题报告和所研究应用的问题跟踪器时,我们发现在47个案例中,用户实际上在开发人员发现并记录在问题跟踪器中之前就描述了问题。我们讨论了我们的发现和DeepMatcher的不同用例。
2021-02-14 cs.IR cs.SE
SysPro: Reproducing System-level Concurrency Bugs from Bug Reports
University of Maryland Baltimore County(马里兰大学巴尔的摩县分校);Zhejiang Provincial Financial Holdings Co,ltd(浙江省金融控股有限公司);The University of Melbourne(墨尔本大学);Queensland University of Technology (QUT)(昆士兰科技大学);Zhejiang University(浙江大学);University of Connecticut(康涅狄格大学)
SysPro通过自动提取系统调用信息和生成输入数据,有效重现系统级并发bug。
2026-01-14 cs.SE
GIFdroid: Automated Replay of Visual Bug Reports for Android Apps
错误报告对于软件维护至关重要,它允许用户通知开发人员在使用软件时遇到的问题。然而,对于非技术用户来说,很难写清楚关于bug发生的描述。因此,越来越多的用户开始记录报告错误的屏幕,因为它很容易创建,并包含触发错误的详细过程。但是,由于记录中的长度和不清楚的操作,开发人员重现错误仍然是繁琐和耗时的。为了克服这些问题,我们提出了GIFdroid,一个轻量级的方法来自动重放的执行跟踪从视觉错误报告。GIFdroid采用图像处理技术从记录中提取关键帧,将其映射到GUI Transitions Graph中的状态,并生成这些状态的执行轨迹以触发bug。我们的自动化实验和用户研究证明了它的准确性,效率和实用性的方法。
2022-04-19 cs.SE
Automatic Build Repair for Test Cases using Incompatible Java Versions
本文提出一种在源代码层面进行依赖最小化的方法,通过移除测试用例执行所不需要的类和方法来修复因 Java 版本不兼容导致的构建失败,并在 Defects4J 上验证了其有效性和低开销。
2024-05-03 cs.SE
Recommending Bug Assignment Approaches for Individual Bug Reports: An Empirical Investigation
本文通过实证研究发现现有缺陷分配方法对不同缺陷报告效果不一,提出用机器学习为每份报告推荐最佳方法,虽有一定准确率提升但与基线相当,揭示了现有方法未捕捉开发者实际分配过程的关键信息。
2023-05-29 cs.SE
TSSB-3M: Mining single statement bugs at massive scale
单语句错误是评价现代错误检测和自动程序修复方法的最重要的成分之一。通过只影响单个语句,单语句bug代表了一种经常被开发人员忽视的bug,同时仍然足够小,可以通过自动方法检测和修复。随着数据驱动的自动修复的兴起,百万分之一规模的单个语句错误的可用性比以往任何时候都更加重要;不仅是为了测试这些方法,而且还为训练提供足够的真实世界的例子。为了提供对这种规模的错误修复数据集的访问,我们发布了两个名为SSB-9 M和TSSB-3 M的数据集。SSB-9 M提供了对来自超过50万个开源Python项目的超过900万个一般单语句错误修复的访问,TSSB-3 M专注于超过300万个单语句错误,这些错误可以通过单个语句更改来修复。为了便于未来的研究和实证调查,我们用Python典型的20种单语句错误(SStuB)模式之一注释了每个错误修复,并将代码更改描述为AST修改序列。我们的初步调查表明,所挖掘的所有单语句错误修复中至少有40%符合至少一种SStuB模式,并且72%的错误中的大多数可以通过与修复SStuB所需相同的语法修改来修复。
2022-01-28 cs.PL cs.SE
ViBR: Automated Bug Replay from Video-based Reports using Vision-Language Models
The Chinese University of Hong Kong (Shenzhen)(香港中文大学(深圳));University of Connecticut(康涅狄格大学);TU Munich(慕尼黑工业大学);Monash University(蒙纳士大学)
本文提出ViBR,一种基于视觉-语言模型的自动化Bug回放方法,通过动作边界分割和区域感知的GUI状态比较,实现从GUI视频记录中自动复现Bug,实验表明其复现率达72%。
2026-04-21 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
Wherefore Art Thou? Provenance-Guided Automatic Online Debugging with Lumos
Princeton University(普林斯顿大学);ByteDance(字节跳动)
本文提出Lumos框架,通过静态分析引导依赖追踪,实现低开销的在线调试,帮助开发者快速定位分布式系统中的根本原因。
2026-06-08 cs.DC cs.SE
Feedback-Driven Automated Whole Bug Report Reproduction for Android Apps
本文提出反馈驱动的方法ReBL,利用GPT-4和整份文本错误报告自动复现Android错误报告,在96份报告上实现90.63%成功率,优于三种现有工具。
2024-08-28 cs.SE
Automatic Classification of Bug Reports Based on Multiple Text Information and Reports' Intention
Northeast Electric Power University(东北电力大学)
随着软件规模和复杂性的快速增长,大量的缺陷报告被提交到缺陷跟踪系统中。为了加快缺陷修复,需要对这些报告进行准确分类,以便将其发送给相应的开发人员。然而,现有的分类方法只利用了bug报告的文本信息,导致分类性能低下。针对上述问题,提出了一种新的缺陷报告自动分类方法。创新之处在于,在对bug报告进行分类时,除了使用报告的文本信息外,还考虑了报告的意图(即建议或解释),从而提高了分类的性能。首先,我们从四个生态系统(Apache,Eclipse,Gentoo,Mozilla)收集错误报告,并手动注释它们以构建实验数据集。然后,我们使用自然语言处理技术对数据进行预处理。在此基础上,分别采用BERT和TF-IDF对文本的意图特征和多文本信息进行提取。最后,特征被用来训练分类器。在K-近邻分类器、朴素贝叶斯分类器、逻辑回归分类器、支持向量机和随机森林分类器上的实验结果表明,该方法取得了较好的分类效果,其F-测度达到了87.3%~ 95.5%。
2022-08-02 cs.CL cs.LG cs.SE
CITADEL: Context Similarity Based Deep Learning Framework Bug Finding
针对深度学习框架测试工具覆盖缺陷类型有限且效率低的问题,提出基于上下文相似性的Citadel方法,自动生成带预言的测试用例,有效检测出PyTorch和TensorFlow上多个现有工具无法发现的性能缺陷,触发率显著提升。
2025-10-28 cs.SE
LLM-Guided Issue Generation from Uncovered Code Segments
Concordia University(康考迪亚大学)
本文提出IssueSpecter工具,通过结合代码覆盖分析与大语言模型缺陷识别,生成优先级高的问题报告,验证其在Python项目中有效检测多种类型漏洞,且比传统方法在准确率和召回率上表现更优。
2026-04-28 cs.SE