An Exploratory Characterization of Bugs in COVID-19 Software Projects
背景:COVID-19大流行的可怕后果影响了COVID-19软件的开发,即,用于分析和缓解COVID-19的软件。COVID-19软件中的漏洞可能是后果性的,因为COVID-19软件项目可能影响公共卫生政策和用户数据隐私。目的:本文的目标是通过对与COVID-19相关的开源软件项目的实证研究,帮助从业者和研究人员提高COVID-19软件的质量。方法:我们使用GitHub上托管的129个开源COVID-19软件项目进行实证研究。接下来,我们对收集到的项目中的550个错误报告进行定性分析,以确定错误类别。结果:我们确定了8个错误类别,其中包括数据错误,即,在COVID-19数据的挖掘和存储过程中发生的错误。已识别的漏洞类别出现在7类软件项目中,包括(i)使用统计建模执行与COVID-19相关的预测的项目,以及(ii)用于设计和实施医疗设备(如呼吸机)的医疗设备软件。结论:根据我们的研究结果,我们倡导通过数据科学从业者和公共卫生专家之间更好的协同作用来构建强大的统计模型。用户跟踪软件中存在安全漏洞,需要开发工具来检测数据隐私侵犯和安全漏洞。
2020-05-31 cs.SE
Online Adaptable Bug Localization for Rapidly Evolving Software
错误定位的目的是通过推荐与特定错误报告相关的程序元素来减少调试时间。到目前为止,研究人员主要通过应用不同的信息检索技术来解决这个问题,这些技术利用了给定错误报告和源代码之间的相似性。然而,随着现代软件开发趋向于软件变化和持续交付给用户的速度的增加,不能快速适应最新版本的软件的当前一代的错误定位技术变得不足。在本文中,我们提出了一种技术,在线错误定位,使快速更新的错误定位模型。更具体地说,我们提出了一个流错误本地化技术,基于一个合奏的在线主题模型,这是能够适应具体的(与明确的代码提到)和更抽象的错误报告。通过使用变更集(diffs)作为输入,而不是源代码的快照,模型自然地将缺陷预测和共同变更信息集成到其预测中。初步结果表明,所提出的方法提高了错误定位性能的42个56个评估项目,平均MAP提高了5.9%。
2022-03-07 cs.SE
Explaining Software Bugs Leveraging Code Structures in Neural Machine Translation
提出基于transformer的生成模型Bugsplainer,利用源代码结构信息和缺陷模式自动生成软件缺陷的自然语言解释,评估与开发者研究表明其优于多个基线。
2025-01-28 cs.SE
Bug Destiny Prediction in Large Open-Source Software Repositories through Sentiment Analysis and BERT Topic Modeling
University of Wisconsin-La Crosse(威斯康星大学拉克罗斯分校)
本研究利用Bugzilla Eclipse项目数据,结合情感分析与BERTopic主题建模,通过CNN和MLP预测Bug的解决时间、修复时间及最终状态,发现情感分析对预测Bug是否被修复尤为有效。
2025-04-22 cs.AI cs.SE
MarsCode Agent: AI-native Automated Bug Fixing
ByteDance(字节跳动);Harbin Institute of Technology, Shenzhen(哈尔滨工业大学(深圳))
本文提出 AI 原生框架 MarsCode Agent,通过结合 LLM 与代码分析,并按规划、复现、定位、补丁生成及验证流程自动修复缺陷;其在 SWE-bench 上优于多数现有自动化方法。
2024-09-04 cs.AI cs.SE
Revisiting reopened bugs in open source software systems
重新打开的bug会降低软件系统的整体质量,因为它们需要开发人员进行不必要的返工。此外,重新打开的错误也会导致最终用户对软件质量的信任丧失。因此,预测可能重新打开的错误对于软件开发人员避免返工非常有帮助。先前关于重新开放的错误预测的研究只关注三个开源项目(即,Apache、Eclipse和OpenOffice)来生成见解。我们注意到,三个项目中有一个(即,Apache)有一个数据泄漏问题--重新打开的错误状态被包括在训练数据中,以预测重新打开的错误。此外,先前的研究使用过时的预测模型管道(即,利用构建预测模型的旧技术)来预测重新打开的错误。因此,我们重新开放的错误研究的一个大规模的数据集,包括47个项目跟踪JIRA使用现代技术,如SMOTE,排列重要性与7个不同的机器学习模型。我们使用混合方法(即,定量和定性研究)。我们发现:1)在使用更新后重新开放的bug预测模型管道后,只有34%的项目给出了AUC >= 0.7的可接受性能。2)有四个主要原因导致bug被重新打开,即技术原因(即,补丁/集成问题),文档,人(即,由于错误评估),以及错误报告中未显示的原因。3)在具有可接受AUC的项目中,94%的重新打开的bug是由于补丁问题(即,使用了不正确的补丁)。我们的研究重新开放的错误,并提供了新的见解开发人员的错误重开活动。
2022-02-17 cs.SE
Why are Some Bugs Non-Reproducible? An Empirical Investigation using Data Fusion
软件开发人员试图复制软件错误,以了解他们的错误行为并修复它们。不幸的是,他们经常无法复制(或修复)它们,这导致了错误的,不可靠的软件系统。然而,到目前为止,只有很少的研究已经完成,以更好地了解是什么使软件错误不可重现。在本文中,我们进行了多模态研究,以更好地了解软件错误的不可再现性。首先,我们使用来自两个流行的软件系统(Firefox,Eclipse)的576个不可再现的错误报告进行实证研究,并确定11个关键因素,可能导致报告的错误不可再现。其次,我们进行了一项用户研究,涉及13名专业开发人员,我们调查了开发人员如何应对不可重现的错误。我们发现他们要么关闭这些bug,要么请求进一步的信息,这涉及到长时间的审议和适得其反的手动搜索。第三,我们提供了一些关于如何避免不可再现性的可操作见解(例如,假阳性错误报告检测器)并提高所报告的错误的再现性(例如,用于错误复制的沙箱)通过结合我们来自多个研究的分析(例如,经验研究、开发人员研究)。
2021-08-11 cs.SE
Mining Software Repositories for Expert Recommendation
Department of Computer Science, University of Colorado Colorado Springs(计算机科学系,科罗拉多州立大学)
提出一种基于问题跟踪系统历史数据,利用BERTopic和TopicMiner技术,根据缺陷报告特征对开发者经验排序,以自动化分配缺陷并辅助人类分类员的方法,并通过Top-k准确率在Eclipse和Mozilla项目上验证其有效性。
2025-04-23 cs.AI cs.SE
A literature review on different types of empirically evaluated bug localization approaches
如今,软件系统在各个领域都发挥着重要作用,其中包括医疗保健,娱乐,运输和物流等等。随着对软件依赖性的增加,软件系统的数量也在增加。此外,这些系统变得越来越复杂。所有这些都导致了软件故障(也称为bug)数量的增加。因此,定位错误源(例如文件或提交)的能力对于开发和维护高效的软件解决方案至关重要。错误定位是指基于错误报告发现包含错误的文件的自动化过程。本研究计划旨在对不同的缺陷定位技术进行文献综述。本研究与其他调查和文献综述[1]有一个显著的区别。工作的重点是识别,分类和分析现有的缺陷定位方法和工具,在工业环境中进行评估。据我所知,没有其他作品优先考虑这方面。不幸的是,这样的文献是稀缺的,因此,在开源软件上评估的错误定位技术也包括在内。
2022-12-22 cs.SE
An Empirical Study on Bugs Inside PyTorch: A Replication Study
Concordia University(康考迪亚大学);Polytechnique Montréal(蒙特利尔理工学院);University of Alberta(阿尔伯塔大学);Université du Québec à Montréal(魁北克大学蒙特利尔分校);Queen’s University(女王大学)
受TensorFlow缺陷研究启发,本文对PyTorch库中的缺陷进行了特征刻画,调查了其原因、症状、局部性及修复模式,发现其更像传统软件缺陷,并与TensorFlow的缺陷处理过程进行了对比。
2023-08-01 cs.AI cs.SE
Automatic Static Bug Detection for Machine Learning Libraries: Are We There Yet?
本文在四个机器学习库的410个已知缺陷上评估五种静态缺陷检测器,发现其整体检出率极低,仅 Flawfinder 和 RATS 相对有效,并据此提出改进静态检测工具实用性的方向。
2023-07-09 cs.SE
Gender Dynamics in Software Engineering: Insights from Research on Concurrency Bug Reproduction
本研究通过文献综述评估并发缺陷复现领域的性别比例,发现女性研究者代表性不足(男女作者比例29:6),并强调促进软件工程研究中的性别平等与视角多样性。
2025-02-27 cs.SE
Using Developer Discussions to Guide Fixing Bugs in Software
The University of Texas at Austin(德克萨斯大学奥斯汀分校)
自动修复软件错误是一项具有挑战性的任务。虽然最近的工作表明,自然语言上下文在指导bug修复模型方面很有用,但这种方法需要提示开发人员提供这种上下文,这是通过在bug修复代码更改后编写的提交消息来模拟的。相反,我们建议使用bug报告讨论,这在任务执行之前就可以使用,并且也是自然发生的,避免了对开发人员任何额外信息的需求。为此,我们用bug报告讨论来增加标准的bug修复数据集。使用这些新编译的数据集,我们证明了从这些讨论中派生的各种形式的自然语言上下文可以帮助修复错误,甚至可以提高性能,而不是使用对应于Oracle错误修复提交的提交消息。
2022-11-11 cs.CL cs.SE
Characterizing Bugs and Quality Attributes in Quantum Software: A Large-Scale Empirical Study
NIT Srinagar(印度国立技术学院斯利那加分校)
本研究通过大规模分析量子软件缺陷,揭示了全栈库和编译器的高缺陷率及自动化测试对减少缺陷的重要性。
2026-01-02 cs.SE
AgentBug-Smith: Automatically Reproducing Real-World Harness Bugs in Agentic Systems
The University of Chicago(芝加哥大学);Fudan University(复旦大学);TensorBlock, Inc.(TensorBlock公司);Tsinghua University(清华大学);University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校)
本文提出 AgentBug-Smith 自动复现智能体系统中的真实 harness 缺陷,并构建 Live-Harness-Bench 基准(含 200 个缺陷),显著提升缺陷修复率,为递归自我改进智能体奠定基础。
2026-09-30 cs.AI cs.SE
Automated flakiness detection in quantum software bug reports
针对量子软件领域缺乏不稳定测试相关研究的问题,本文梳理了量子软件错误报告中不稳定测试自动检测的挑战与潜在方案,呼吁学界关注并协作解决该新兴问题。
2024-08-09 cs.SE
Developer Prioritization in Bug Repositories
开发人员在开发过程中构建所有软件构件。现有的工作已经研究了软件仓库中的社会行为。在最重要的软件存储库之一缺陷存储库中,开发人员创建并更新缺陷报告以支持支持软件开发和维护。然而,以前的工作没有考虑开发人员在错误存储库中的优先级。在本文中,我们解决的问题,开发人员的优先级,其目的是排名的开发人员的贡献。我们主要探索两个方面,即在错误存储库中对开发人员的优先级进行建模,并使用我们的模型辅助预测任务。首先,我们模拟如何分配的优先级的开发人员的基础上的社会网络技术。研究了三个问题,包括开发人员在产品中的排名,随着时间的推移的演变,和嘈杂的评论的容忍度。其次,我们考虑利用开发人员优先级来改进bug存储库中的三个预测任务,即,错误分类、严重性识别和重新打开的错误预测。我们实证研究我们的模型和它的应用程序在Eclipse和Mozilla的错误库的性能。结果表明,开发人员优先级可以提供开发人员优先级的知识,以帮助软件任务,特别是错误分类的任务。
2017-04-16 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
BugsRepo: A Comprehensive Curated Dataset of Bug Reports, Comments and Contributors Information from Bugzilla
为解决缺陷报告信息不完整影响软件维护预测系统的问题,本文提出了源自Mozilla项目的综合数据集BugsRepo,包含119,585条缺陷报告元数据、19,351名贡献者信息及10,351条结构化缺陷报告,以支持自动化缺陷分析并提升软件维护效率。
2025-04-26 cs.SE
Integrating Various Software Artifacts for Better LLM-based Bug Localization and Program Repair
Nanjing University of Science and Technology(南京理工大学);State Key Lab. for Novel Software Technology, Nanjing University(南京大学新型软件技术国家重点实验室);School of Computer Science, Wuhan University(武汉大学计算机学院)
提出DEVLoRe框架,融合issue、堆栈跟踪和调试信息等多种软件制品,完成缺陷方法/行定位并生成可通过测试的补丁,在Defects4J v2.0和SWE-bench Lite上优于现有APR方法。
2025-09-29 cs.AI cs.SE
From Bugs to Benchmarks: A Comprehensive Survey of Software Defect Datasets
University of California, Davis(加州大学戴维斯分校);University of Stuttgart(斯图加特大学)
本文综述了151个软件缺陷数据集,探讨了其范围、构建方法及应用,并提出未来研究方向以解决缺陷类型代表性不足的问题。
2026-02-10 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
Bug Severity Prediction in Software Projects Using Supervised Machine Learning Models
Daffodil International University(达福迪尔国际大学)
本研究利用监督机器学习模型,通过Eclipse Bugzilla的历史数据预测缺陷严重性,发现集成树方法和DistilBERT在准确性上表现最佳,线性模型在召回率上更优,为自动化缺陷分拣提供了有效方法。
2026-01-09 cs.LG cs.SE
QBugs: A Collection of Reproducible Bugs in Quantum Algorithms and a Supporting Infrastructure to Enable Controlled Quantum Software Testing and Debugging Experiments
经验结果的可复制性和可比性是任何科学领域科学方法的核心原则。为了简化经验研究的可重复性,软件工程研究中的几个基准测试,如Defects 4J,已经开发并广泛使用。然而,对于量子软件工程研究,还没有建立基准。在这份立场文件中,我们提出了一个新的基准-命名为QBugs -这将提供实验对象和实验基础设施,以方便新的研究和量子软件工程先前发表的结果的再现性评估。
2021-03-31 cs.SE
Harvesting Fix Hints in the History of Bugs
在软件开发中,修复错误是一项耗时且成本敏感的重要任务。虽然已经提出了许多方法来自动检测和修补软件代码,但这些策略仅限于一组经过深入研究以定义其属性的已识别错误。因此,它们设法覆盖了一小部分故障,如无限循环。我们建立在错误和相关用户错误报告是重复的假设之上,并提出了一种基于错误历史及其相关修复的修复建议新方法。在我们的方法中,一旦报告了一个错误,它会自动使用信息检索技术和机器学习分类与所有以前修复的错误进行比较。基于此比较,我们推荐从过去的修复示例中识别的顶级{ \em k}修复操作,这些操作可能适合作为软件开发人员解决新错误的提示。
2015-07-21 cs.SE
Watch out for Extrinsic Bugs! A Case Study of their Impact in Just-In-Time Bug Prediction Models on the OpenStack project
内在缺陷是指在软件的版本控制系统中可以识别出引入变更的缺陷的缺陷。相比之下,外部错误是由软件的外部更改引起的,例如外部API中的错误;因此,它们没有明确的错误会在版本控制系统中引入更改。虽然大多数以前的研究文献都假设所有的错误都是内在的,但在以前的研究中,我们发现并非所有的错误都是内在的。本文展示了一个例子,如何考虑外部缺陷可以影响软件工程的研究。具体来说,我们研究外部错误的影响,在及时错误预测的部分复制最近的研究由麦金托什和龟井JIT模型。这些模型使用早期引入bug的更改的属性进行训练。由于外部错误没有在版本控制系统中引入更改的错误,因此我们手动管理McIntosh和Kamei的数据集以区分内部和外部错误。然后,我们解决他们原来的研究问题,这一次删除外部错误,研究是否错误引入的变化是一个移动的目标,在即时错误预测。最后,我们研究了内部和外部错误的特征是否不同。我们的研究结果表明,内在和外在的错误是不同的性质。当删除外部错误时,性能差异高达16%曲线下面积点。这表明我们的JIT模型获得了对现实世界更准确的表示。我们的结论是,外部错误产生负面影响的即时模型。此外,我们提供的证据表明,外部错误应该进一步调查,因为它们可以显着影响软件工程师如何理解错误。
2021-03-28 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
Cross-Ecosystem Bug Classification in Quantum Software
NIT Srinagar(印度国立技术学院斯利那加分校)
本研究对Qiskit等12个量子软件仓库的17523个缺陷开展跨生态系统比较,采用基于规则的分类框架,发现经典缺陷占比67%,所提框架在细粒度量子缺陷检测上优于机器学习基线。
2026-08-05 cs.SE
Does your Bug Tracking tool suit your needs? A Study on Open Source Bug Tracking tools
Bug跟踪工具对于管理任何开源和专有商业项目中的bug都至关重要。考虑到使用适当的错误跟踪工具的重要性,我们评估了31个开源错误跟踪工具提供的功能及其在开源项目中的使用意义。我们根据这些工具的功能将它们分为不同的类别。我们还通过与开源软件从业者合作进行了一项开发人员调查,以了解这些工具在日常软件开发中的有效性。我们还探索了StackOverFlow -一个开发者问答论坛,以了解开发者在使用开源bug跟踪工具时的经验和挑战。我们的观察产生了令人鼓舞的结果,可以作为一个建议指南,开源软件社区选择最好的错误跟踪工具,根据他们的功能需求。此外,我们已经确定了一些需要的功能,但大多数这些错误跟踪工具没有提供。
2017-06-21 cs.SE
Predicting the Number of Reported Bugs in a Software Repository
Ryerson University(瑞尔森大学)
错误增长模式预测是一项复杂的、不可减轻的任务,需要引起相当大的关注。预先了解软件系统中发现的错误的可能数量有助于软件开发人员在方便的时候指定足够的资源。开发人员也可以使用这些信息来采取必要的行动,以提高系统的质量,进而提高客户满意度。在这项研究中,我们研究了八种不同的时间序列预测模型,包括长短期记忆神经网络(LSTM),自回归综合移动平均(ARIMA)和随机森林回归。此外,我们将这些预测模型,如软件发布日期的外生变量的影响进行评估。我们根据不同的性能指标分析每个模型的长期预测质量。该评估是在Mozilla上进行的,Mozilla是一个大型开源软件应用程序。该数据集最初从Bugzilla中挖掘,包含2010年1月至2019年12月期间项目的错误数量。我们的数值分析提供了对缺陷库中趋势评估的见解。我们观察到,LSTM在考虑长期预测时是有效的,而由外生变量丰富的随机森林回归器在预测短期错误数量方面表现更好。
2021-04-24 cs.LG cs.SE
Explainable Software Bot Contributions: Case Study of Automated Bug Fixes
在软件项目中,特别是在开源项目中,贡献是对项目所做的有价值的工作:编写代码,报告错误,翻译,改进文档,创建图形等。我们现在正处于一个激动人心的时代的开始,软件机器人将做出与人类相似的贡献。没有解释的枯燥贡献经常被忽视或拒绝,因为贡献本身是不可理解的,因为它们没有放在更大的背景中,因为它们不是基于核心开发人员社区共享的习惯用法。我们已经运行了一个名为Repairnator的程序修复机器人2年,并注意到“干补丁”的问题:一个补丁没有说它修复了哪个bug,或者没有解释补丁对系统的影响。我们设想程序修复系统,产生一个“可解释的错误修复”:一个集成的包,至少1)补丁,2)它的解释在自然或控制的语言,和3)突出的行为差异与例子。在本文中,我们概括并建议软件机器人的贡献必须是可解释的,必须将它们置于全球软件开发对话的背景下。
2019-05-07 cs.SE
Mining Bug Repositories for Multi-Fault Programs
针对 Defects4J 与 BugsInPy 多为单缺陷条目的局限,本文利用测试用例移植和故障位置转换构建保留原数据集特性的真实多故障程序数据集。
2024-04-10 cs.SE
BugMentor: Generating Answers to Follow-up Questions from Software Bug Reports using Structured Information Retrieval and Neural Text Generation
本文提出BugMentor,结合结构化信息检索与神经文本生成(如Mistral),从历史相关缺陷报告中提取上下文以自动生成后续问题的答案,在多项指标上显著优于基线,并经开发者研究验证其答案更准确、精确、简洁且有用。
2025-09-12 cs.SE
Bug Priority Change Prediction: An Exploratory Study on Apache Software
Central China Normal University(华中师范大学);Wuhan University(武汉大学);Huazhong University of Science and Technology(华中科技大学)
本文提出基于bug修复演变特征和类别不平衡处理策略的bug优先级变更预测方法,通过实验验证其在Apache项目中的有效性。
2025-12-10 cs.SE
Closed source versus open source in a model of software bug dynamics
我们介绍了一个简单的微观描述的软件错误动态用户,程序员和维护人员通过一个给定的程序进行交互,特别强调错误的创建,检测和修复。当程序从零开始编写时,开发的第一阶段的特点是错误数量快速下降,然后是一个缓慢的阶段,大多数错误已经被修复,因此很难找到。立即发布bug修复可以加快调试过程,这也是bazaar开源方法论的实质。我们提供了一个数学分析,支持我们的数值模拟。最后,我们将我们的模型应用于Linux的历史,并确定其程序员的质量存在一个下限。
2005-09-05 cond-mat.stat-mech cs.SE
A Software-Repair Robot based on Continual Learning
软件缺陷是常见的,纠正它们占软件开发和维护过程中成本的很大一部分。这就需要自动技术来处理它们。实现这一目标的一个有希望的方向是从历史错误修复示例中获得修复知识。随着机器学习范式的不断发展和通过持续集成(CI)生成的“大”错误修复数据的激增,从软件开发历史中检索见解特别有吸引力。在本文中,我们提出了R-Hero,一种新的软件修复机器人,适用于持续学习,以获得错误修复策略,从连续流的源代码更改,实现了单一的开发平台Github/Travis CI。我们描述了R-Hero,我们的新系统,用于学习如何在持续培训的基础上修复错误,我们发现了初步的成功以及社区面临的新的研究挑战。
2021-12-06 cs.SE
Understanding the Heterogeneity of Contributors in Bug Bounty Programs
背景资料:虽然漏洞赏金计划在软件开发中并不新鲜,但越来越多的公司以及开源项目依赖外部方对其软件进行安全评估以获得奖励。然而,关于漏洞赏金计划贡献者的特征,经验知识相对较少。目的:本文旨在通过强调它们之间的异质性来了解这些贡献者。方法:我们分析了82个bug赏金计划和2,504个不同的bug赏金贡献者的历史,并进行了定量和定性调查。结果如下:我们发现,有特定项目和非特定的贡献者,他们有不同的动机为产品和组织做出贡献。结论:我们的研究结果提供了见解,使错误赏金计划更好地和新的软件开发角色的进一步研究。
2017-09-19 cs.SE
A Comprehensive Study on Deep Learning Bug Characteristics
Iowa State University(爱荷华州立大学)
近年来,深度学习获得了极大的普及。开发人员主要依靠库和工具来为他们的软件添加深度学习功能。在这些软件中经常发现什么样的bug?此类错误的根本原因是什么?这些bug有什么影响?深度学习管道的哪个阶段更容易出现错误?是否存在任何反模式?理解深度学习软件中缺陷的这些特征有可能促进更好的深度学习平台、调试机制、开发实践的开发,并鼓励分析和验证框架的开发。因此,我们研究了来自Stack Overflow的2716篇高质量帖子和来自Github的500个bug修复提交,这些帖子涉及五个流行的深度学习库Caffe,Keras,Tensorflow,Theano和Torch,以了解bug的类型,bug的根本原因,bug的影响,深度学习管道的bug易发阶段以及在这个bug软件中是否存在一些常见的反模式。我们研究的主要发现包括:数据错误和逻辑错误是深度学习软件中最严重的错误类型,出现的次数超过48%,这些错误的主要根源是模型参数不正确(IPS)和结构效率低下(SI),出现的次数超过43%。我们还发现,使用深度学习库时的错误有一些共同的反模式,导致库之间的错误类型具有很强的相关性。
2019-06-03 cs.LG cs.SE
Using Defect Prediction to Improve the Bug Detection Capability of Search-Based Software Testing
自动测试生成器,如基于搜索的软件测试(SBST)技术,取代了手动编写测试用例的繁琐和昂贵的任务。SBST技术在生成具有高代码覆盖率的测试时是有效的。然而,高代码覆盖率是否足以最大限度地增加发现的bug数量?我们认为,SBST需要集中在有缺陷的领域,而不是在非缺陷的代码领域,以最大限度地发现错误的可能性搜索测试用例。缺陷预测算法提供了有关软件中容易出现错误的区域的有用信息。因此,我们制定了本论文的目标:\textit{Improve the bug detection capability of SBST by incorporating defect prediction information}。为了实现这一目标,我们设计了两个研究目标,即,1)开发一种新的方法(SBST $_{CL}$),该方法基于类有缺陷的可能性将时间预算分配给类,以及2)开发一种新的策略(SBST $_{ML}$)来指导底层搜索算法(即,遗传算法)对一类中的缺陷区域进行优化。通过对Defects4J数据集中434个真实报告的错误进行实证评估,我们证明了我们的新方法SBST $_{CL}$在资源受限的环境中,在时间预算紧张的情况下,比最先进的SBST更有效。
2022-06-14 cs.SE
Bug propagation and debugging in asymmetric software structures
软件依赖网络被证明是无标度和不对称的。然后,我们研究如何软件组件的失败,其中之一的影响,以及定位故障组件的逆问题。对于一个随机的单个组件的故障,所有级别的软件都是脆弱的。如果故障只影响其最近的邻居,则定位故障组件很容易,而如果故障进一步传播,则很难。
2003-11-24 cond-mat.dis-nn cond-mat.stat-mech cs.SE
What is the Connection Between Issues, Bugs, and Enhancements? (Lessons Learned from 800+ Software Projects)
敏捷团队处理多个任务,因此专业人员通常被分配到多个项目,特别是在为大型用户群监控和维护大型软件套件的服务组织中。如果我们可以预测项目条件的变化,那么管理人员可以更好地调整人员分配给这些projects.This本文建立这样一个预测器使用的数据从832开源和专有应用程序。通过对过去4个月的问题进行时间序列分析,我们可以预测下个月将产生多少错误报告和增强请求。以这种方式进行的预测只需要对这个问题报告的频率进行计数(并且不需要项目中发现的错误的历史记录)。也就是说,这种预测模型非常容易在项目中部署。因此,我们强烈推荐这种方法来预测项目中未来的问题,增强和错误。
2018-09-06 cs.SE
A Quantitative Study of Security Bug Fixes of GitHub Repositories
软件容易出现错误和故障。安全漏洞是那些违反软件要求而暴露或共享特权信息和访问的漏洞。考虑到安全漏洞的严重性,存在用于跨多个产品支持和跟踪这些漏洞的集中机制,其中一种机制是通用漏洞和暴露(CVE)ID描述。当一个bug获得一个CVE时,它是通过它的CVE ID引用的。因此,我们在Github上探索了数千个自由/自由开源软件(FLOSS)项目,以确定开发人员是否在他们的代码,提交和问题中引用或讨论CVE。CVE通常会引用项目的第三方软件依赖项,因此错误不会出现在实际产品本身中。我们研究这些引用中有多少是故意的CVE引用,以及有多少是项目本身的相关错误。我们研究如何修复引用CVE的错误以及修复这些错误需要多长时间。我们对250个错误报告进行手动分类的结果显示,88个(35%)、32个(13%)和130个(52%)被分类为“版本更新”、“修复代码”和“讨论”。为了了解修复这些错误需要多长时间,我们比较了两个时间段,报告期,CVE存储库中漏洞信息的披露日期和项目中错误报告的创建日期之间的时间段,以及修复期,错误报告的创建日期和错误报告的修复日期之间的时间段。我们发现,44%的bug报告被归类为“版本更新”或“修复代码”,报告期比修复期长。这表明,那些提交CVE的人应该更直接地通知受影响的项目。
2020-12-15 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
Fast Changeset-based Bug Localization with BERT
将软件错误自动定位到导致它们的变更集有可能提高软件开发人员的效率并对软件质量产生积极影响。为了促进这种自动化,bug报告必须与源代码更改有效地匹配,即使在用于描述bug的自然语言和开发人员使用的标识符命名实践之间存在显著的词汇差距。为了弥合这一差距,我们需要的技术,能够捕捉到软件工程特定的和项目特定的语义,以检测两种类型的文档之间的相关性,超出了精确的术语匹配。流行的基于transformer的深度学习架构,如BERT,擅长利用上下文信息,因此似乎是该任务的合适候选者。然而,BERT类模型在计算上是昂贵的,这使得它们不能用于响应时间很重要的环境中。在本文中,我们描述了如何使BERT足够快,适用于基于变更集的错误定位。我们还探讨了为此目的使用BERT的几个设计决策,包括如何最好地编码变更集,以及如何将错误报告与单个变更匹配以提高准确性。我们将模型的准确性和性能与非上下文基线(即,向量空间模型)和以前在软件工程中使用的基于BERT的体系结构。我们的评估结果表明,使用建议的BERT模型相比,基线的优势,特别是对于错误报告,缺乏任何提示相关的代码元素。
2022-04-11 cs.SE
Mining Crash Fix Patterns
在软件开发的生存周期中,开发人员必须修复测试人员或最终用户报告的各种错误。修复bug的效率和有效性对软件的可靠性以及开发团队的生产力有着巨大的影响。软件公司通常在测试和错误修复部门花费大量的资金和人力资源。因此,他们非常希望有一种更好、更可靠的方法来修复bug。为了实现这一目标,有必要深入研究维护良好的、高度流行的软件项目的错误修复特征。在本文中,我们研究了从Eclipse项目中提取的错误修复历史,Eclipse项目是一个维护良好,非常流行的开源项目。在分析了属于三种主要异常类型的36,000多个错误之后,我们能够揭示一些常见的修复类型,这些类型经常用于修复某些类型的程序异常。我们的分析表明,几乎所有属于某个异常的异常都可以通过不到10种修复类型来修复。我们的研究结果表明,软件项目中的大多数错误可以而且应该只通过几个常见的修复模式来修复。
2013-11-11 cs.SE
Broccoli: Bug localization with the help of text search engines
错误定位是错误修复过程中的一项繁琐的活动,在此过程中,软件开发人员试图在错误报告中描述的源代码中定位错误。由于这个过程是耗时的,并需要有关软件项目的额外知识,信息检索技术可以帮助缺陷定位过程。在本文中,我们调查,如果正常的文本搜索引擎可以改善现有的错误定位方法。在一个案例研究中,我们评估我们的搜索引擎的方法花椰菜对7个国家的最先进的错误定位算法在两个数据集的82个开源项目的性能。我们的研究结果表明,包括一个搜索引擎可以提高性能的错误定位,它是一个有用的扩展现有的方法。作为我们分析的一部分,我们还暴露了常用基准测试策略中的一个缺陷,即,考虑单个版本的文件。为了增加可检测文件的数量,我们通过考虑错误报告时软件存储库的状态来缓解此缺陷。我们的研究结果表明,使用单一的释放可能会导致低估的预测性能。
2021-10-10 cs.SE
What is a "bug"? On subjectivity, epistemic power, and implications for software research
本文探讨了软件研究中“bug”定义的主观性与认知权力问题,指出在缺乏完整形式化规约时,现有定义常依赖不完美的代理,并分析了这种模糊性对软件工程研究的影响。
2024-02-13 cs.HC 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
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
Empirical Analysis of Temporal and Spatial Fault Characteristics in Multi-Fault Bug Repositories
本文实证分析了Defects4J和BugsInPy中16个开源项目的故障时空特征,发现许多故障长期存在且多版本共存,且故障在子集中均匀分布,纠正了原数据集单故障假设。
2025-08-12 cs.SE
How good does a Defect Predictor need to be to guide Search-Based Software Testing?
缺陷预测器、静态缺陷检测器和检查代码的人员可以在通过测试发现程序中有缺陷的部分之前找到它们。诸如基于搜索的软件测试(SBST)技术之类的自动测试生成器可以使用该信息来将它们对测试用例的搜索引导到可能存在错误的代码,从而加速检测现有错误的过程。然而,这些工具或人类给出的预测往往是不精确的,这可能会误导SBST技术,并可能降低其性能。在本文中,我们研究了缺陷预测的不精确性对SBST缺陷检测有效性的影响。我们的研究发现,召回的缺陷预测,即,正确识别错误代码的概率对SBST的错误检测有效性有显著影响,且效应量较大。另一方面,精确度的影响,一个衡量假警报,是没有实际意义的一个非常小的效果大小所示。特别是,SBST技术发现7.5个错误平均减少每5%的召回(420个错误)。在结合缺陷预测和SBST的背景下,我们的建议是在牺牲精度的情况下增加缺陷预测器的召回率,同时保持至少75%的精度。考虑到缺陷预测器的不精确性,特别是低召回值,SBST技术应该被设计为搜索测试用例,这些测试用例也覆盖了程序中预测的非错误部分,同时优先考虑被预测为错误的部分。
2021-10-06 cs.SE
From Code Generation to Software Testing: AI Copilot with Context-Based RAG
Nanyang Technological University(南洋理工大学);City University of Hong Kong(香港城市大学)
本文将缺陷检测与低缺陷编码统一为有限资源下的减错问题,提出基于上下文 RAG 的自动化测试系统 Copilot for Testing,使缺陷检测与代码库更新同步,并在准确率、覆盖率和用户接受率上取得显著提升。
2025-04-05 cs.AI cs.PL cs.SE
Black-Box Bug-Amplification for Multithreaded Software
针对并发系统缺陷难以复现的问题,提出黑盒缺陷放大方法,利用回归模型集成引导搜索,在17个缺陷数据集上显著提升缺陷发生率,并提供了非侵入性测试框架。
2025-07-28 cs.SE
Utilizing Source Code Syntax Patterns to Detect Bug Inducing Commits using Machine Learning Models
本研究提出从源代码语法模式中提取特征来检测引入缺陷的提交,实验表明该方法在多种机器学习模型上提升了缺陷检测性能,并提供了更好的可解释性。
2022-12-07 cs.SE