SLGPT: Using Transfer Learning to Directly Generate Simulink Model Files and Find Bugs in the Simulink Toolchain
University of Texas at Arlington(德克萨斯大学阿灵顿分校)
在商业网络物理系统(CPS)开发工具(如Simulink)中查找错误是很困难的,因为其代码库包含数百万行代码,并且没有完整的形式语言规范。虽然深度学习技术承诺从样本模型中学习这样的语言规范,但深度学习需要大量的训练数据才能很好地工作。SLGPT通过使用迁移学习来利用强大的生成预训练Transformer 2(GPT-2)模型来解决这个问题,该模型已经在大量训练数据上进行了预训练。SLGPT通过随机生成的模型和从开源存储库挖掘的模型将GPT-2适配到Simulink。SLGPT制作的Simulink模型比其最接近的竞争对手DeepFuzzSL更类似于开源模型,并发现了DeepFuzzSL发现的Simulink开发工具链错误的超集。
2022-03-10 cs.LG cs.SE
Stateful Testing for Deep Learning Compilers
State Key Laboratory for Novel Software Technology, Nanjing University(南京大学软件新技术国家重点实验室);UNIST(蔚山科学技术院)
针对深度学习编译器的有状态bug问题,提出Rondo有状态测试方法,检测到117个bug,其中35个有状态bug,获开发者确认35份报告并修复18个bug。
2026-10-16 cs.LG cs.SE
Toward Understanding Deep Learning Framework Bugs
本研究通过对四个主流DL框架的1000个缺陷进行大规模分析,揭示了缺陷特征,提出了改进检测与调试的指南,并开发了有效工具TenFuzz,发现3个新缺陷。
2024-08-21 cs.SE
DeepDebug: Fixing Python Bugs Using Stack Traces, Backtranslation, and Code Skeletons
Microsoft Cloud and AI(微软云与人工智能部门)
缺陷定位和程序修复的联合任务是软件开发过程中不可或缺的一部分。在这项工作中,我们提出了Deepcraft,一种使用大型预训练Transformers进行自动调试的方法。我们首先在反向提交数据上训练一个错误创建模型,以生成合成错误。我们把这些合成的虫子应用到两个方面。首先,我们直接对来自20万存储库的所有函数进行反向翻译模型的训练。接下来,我们将关注10K存储库,我们可以对这些存储库执行测试,并在这些存储库中创建通过测试的所有函数的错误版本。这为我们提供了丰富的调试信息,如堆栈跟踪和打印语句,我们使用这些信息来微调我们在原始源代码上预训练的模型。最后,我们通过将上下文窗口扩展到有缺陷的函数本身之外,并添加由该函数的父类、导入、签名、文档字符串和方法体(按优先级顺序)组成的骨架来增强所有模型。在菜Bugs基准测试中,我们将发现的修复总数增加了50%以上,同时将误报率从35%降低到5%,并将超时时间从6小时减少到1分钟。在我们自己的可执行测试基准上,我们的模型在不使用跟踪的情况下第一次尝试就修复了68%的错误,在添加跟踪后,它在第一次尝试时修复了75%的错误。我们将开源我们的框架和验证集,用于评估可执行测试。
2021-05-19 cs.LG cs.SE
Mutation-based Fault Localization of Deep Neural Networks
Iowa State University(爱荷华州立大学)
本文提出一种名为deepmufl的基于变异的深度神经网络故障定位新技术,在109个StackOverflow漏洞测试中检测出53个,优于现有方法,并通过变异选择将定位时间减半且仅损失7.55%的top-1定位率。
2023-09-10 cs.LG cs.SE
Imitation Game: Reproducing Deep Learning Bugs Leveraging an Intelligent Agent
Dalhousie University(达尔豪斯大学)
RepGen通过智能代理和生成-验证-改进机制,提高了深度学习bug的重现率和效率。
2026-02-26 cs.AI cs.LG cs.SE
Multifaceted Hierarchical Report Identification for Non-Functional Bugs in Deep Learning Frameworks
Loughborough University(拉夫堡大学)
非功能性错误(例如,深度学习(DL)框架中的性能或准确性相关的错误)可能会导致一些最具破坏性的后果。在GitHub等存储库上报告这些错误是修复它们的标准途径。然而,鉴于DL框架的新GitHub报告越来越多,开发人员很难区分那些揭示非功能性错误的报告,并将其分配给正确的贡献者进行及时调查。在本文中,我们提出了MHNurf -一个端到端的工具,用于自动识别DL框架中的非功能性错误相关报告。MHNurf的核心是一个多方面的层次注意力网络(MHAN),它解决了三个未解决的挑战:(1)学习语义知识,但这样做是通过(2)考虑层次结构(例如,句子/陈述中的词/记号)并关注重要部分(即,单词、令牌、句子和语句),而(3)从不同类型的特征中独立地提取信息,即,内容、注释、代码、命令和标签。为了评估MHNurf,我们利用来自五个DL框架的3,721个GitHub报告进行实验。结果表明,MHNurf在内容、注释和代码的组合下工作得最好,这大大优于仅使用内容的经典HAN。MHNurf还产生了比其他九个具有强统计显著性的最先进分类器更准确的结果,即,AUC改善高达71%,在四个框架上具有最佳Scott-Knott排名,而在其余一个框架上则排名第二。为了方便复制和促进未来的研究,我们已经将我们的数据集,代码和详细的补充结果公开在:https://github.com/ideas-labo/APSEC2022-…
2022-10-04 cs.LG cs.SE
Towards Understanding the Challenges of Bug Localization in Deep Learning Systems
本文通过大规模实证研究,利用2,365个深度学习缺陷和2,913个传统软件缺陷,系统分析了现有技术在深度学习系统缺陷定位中表现不佳的原因,揭示了缺陷类型和外在特性对定位效果的影响。
2025-07-22 cs.SE
Understanding and Finding JIT Compiler Performance Bugs
The University of Texas at Austin(德克萨斯大学奥斯汀分校)
本文提出了一种轻量级技术,用于自动检测JIT编译器性能错误,并通过Jittery工具发现了12个新错误。
2026-03-06 cs.SE
DeepMutants: Training neural bug detectors with contextual mutations
Carl von Ossietzky University Oldenburg(奥尔登堡卡尔·冯·奥西茨基大学)
基于学习的bug检测器承诺通过利用自然提示(如变量和函数的名称或注释)在大型代码库中发现bug。尽管如此,现有的技术往往表现不佳时,与现实的错误。我们认为缺陷检测器学习目前缺乏现实的有缺陷的训练样本。事实上,现实世界的错误是稀缺的,这使得现有的方法训练人工创造的,大多是不切实际的突变体。在这项工作中,我们提出了一种新的上下文突变算子,它结合了突变上下文的知识,动态注入自然和更现实的错误代码。我们的方法采用了一个掩蔽的语言模型,以产生一个上下文相关的分布在可行的令牌替换。评估表明,从语言模型采样不仅产生突变体,更准确地代表真正的错误,但也导致更好地执行错误检测器,无论是在人工基准测试和真实世界的源代码。
2021-07-14 cs.LG cs.SE
DEAR: A Novel Deep Learning-based Approach for Automated Program Repair
现有的基于深度学习(DL)的自动程序修复(APR)模型在修复一般软件缺陷方面受到限制。我们提出了{ \tool },这是一种基于DL的方法,支持修复一般错误,这些错误需要立即对一个或多个代码块中的一个或多个连续语句进行相关更改。我们首先设计了一种新的故障定位(FL)技术,用于多块、多语句修复,该技术将传统的基于频谱(SB)的FL与深度学习和数据流分析相结合。它接受SBFL模型返回的错误语句,检测出要立即修复的错误块,并扩展块中的错误语句$s$,以包括$s$周围的其他可疑语句。我们设计了一个基于树的两层LSTM模型,该模型结合了循环训练,并使用分治策略来学习适当的代码转换,以便在由周围子树组成的适当固定上下文中固定多个语句。我们在三个数据集上进行了几次实验来评估{ \tool }:Defects 4J(395个错误)、BigFix(+26k个错误)和CPatMiner(+44k个错误)。在Defects 4J数据集上,{ \tool }在仅使用前1个修补程序自动修复的错误数量方面优于基线,从42\%到683\ %。在BigFix数据集上,它比现有的基于DL的APR模型多修复了31- 145个错误。在CPatMiner数据集中,在667个修复的bug中,有169个(25.3%)多块/多语句bug。与最先进的基于DL的APR模型相比,{ \tool }分别多修复了71个和164个错误,其…
2022-05-04 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
Finding and Understanding Miscompilation Bugs in the Solidity Compiler
Ethereum Foundation(以太坊基金会)
研究旨在提高Solidity编译器质量,创建SolSmith工具。通过生成有效测试程序使编译器测试更严格,发现25个错误编译漏洞。还对这些漏洞进行定性和定量分析,揭示优化编译器的陷阱,为智能合约及用户减少潜在风险。
2026-07-09 cs.CR cs.PL cs.SE
Understanding Agent-Reactive Bugs at the Model-Harness Boundary: An Empirical Study of LLM Agent Issue Reports
The Hong Kong University of Science and Technology(香港科技大学);Guangzhou HKUST Fok Ying Tung Research Institute(广州HKUST福氏研究院)
研究聚焦大型语言模型代理在模型-框架边界处的反应性错误,通过分析255份错误报告构建分类法,发现此类错误多为无明确测试预言的静默错误,检测和重现困难,还揭示了用户与开发者对错误归因及修复的不匹配,推动相关技术设计。
2026-07-20 cs.SE
On Reporting Performance and Accuracy Bugs for Deep Learning Frameworks: An Exploratory Study from GitHub
深度学习(DL)的巨大成功大大增加了GitHub上托管的开源DL框架的数量。其中,性能和准确性错误是影响这些DL框架声誉的关键因素,因此了解发现和调查DL的实践非常重要。在本文中,我们进行了探索性研究的性质报告性能和准确性错误错误的DL框架,旨在提高我们的知识在这个话题上。我们的研究涵盖了GitHub上10个最流行的开源DL框架(例如,TensorFlow,Keras和PyTorch),基于此,我们从22,522个总人口中抽取了664个代表性的性能和准确性错误报告。通过对这些样本的系统分析,我们的主要发现是:(1)低速度是提交与性能错误相关的报告的主要原因,但我们没有看到与准确性相关的报告的一致模式;(2)大多数报告都是关于训练阶段遇到的问题;(3)只有一小部分报告提供的信息不足以进行调查;(4)大多数性能和准确性错误报告(69%至100%)与实际错误无关或被视为未分类;(5)大约50%的性能和准确性错误报告确实揭示了错误,但没有通过直接补丁解决。从上述推导,我们讨论了一组可操作的影响,研究人员,维护人员,并在这个问题上的报告提交者。为了促进开放科学,已标记的数据集已在https://tinyurl.com/4x3tap9w上公开提供。
2022-04-17 cs.SE
Towards Understanding the Bugs in Solidity Compiler
本文首次系统性研究了533个Solidity编译器缺陷,分析其特征与触发用例,得出七条结论,并通过基准评估三个模糊测试工具,揭示其因忽视缺陷诱导特征、编译选项和测试预言而检测效率低下的问题。
2024-08-09 cs.SE
Towards Understanding the Impact of Data Bugs on Deep Learning Models in Software Engineering
本文通过实证调查研究了软件工程中代码、文本和度量数据缺陷对深度学习模型的影响,发现不同数据问题会导致梯度不稳定、过拟合等不同症状,并利用六个新数据集验证了结论,为开发监控系统和数据清理方法提供了依据。
2025-08-11 cs.SE
Understanding Bugs in Template Engine-Based Applications: Symptoms, Root Causes, and Fix Patterns
University of Science and Technology Beijing(北京科技大学)
本文研究了基于模板引擎的应用中的bug问题,通过分析1004个bug发现异常渲染是主要症状,识别了17个根本原因,并提出修复模式,开发了两个原型工具以辅助调试。
2026-04-30 cs.SE
Towards Understanding Bugs in Distributed Training and Inference Frameworks for Large Language Models
本文针对大语言模型分布式训练与推理框架的Bug问题,首次对3个主流框架的308个已修复Bug开展大规模实证分析,揭示Bug特征与低代码修复规律,为框架可靠性提升与自动化调试提供了方向。
2025-06-12 cs.SE
Predicting Vulnerability In Large Codebases With Deep Code Representation
Cisco Systems(思科系统公司)
目前,当软件工程师为各种模块编写代码时,经常会引入各种类型的错误-编码,逻辑,语义和其他(其中大多数不会被编译和其他工具捕获)。其中一些bug可能会在测试的后期发现,很多时候客户会在生产代码中报告。公司不得不花费大量的资源,包括金钱和时间来寻找和修复错误,如果编码正确,这些错误本可以避免。此外,软件中隐藏的缺陷可能导致安全漏洞,从而可能使攻击者危及系统和应用程序。有趣的是,过去修复过的相同或相似的问题/错误(尽管在不同的模块中)往往会再次引入生产代码。我们开发了一个新的基于人工智能的系统,它使用从源代码创建的抽象树(AST)的深度表示以及主动反馈循环来识别和警告可能在开发本身时引起的潜在错误,即开发人员正在编写新代码(逻辑和/或函数)。这个工具与IDE集成为一个插件将在后台工作,指出现有的类似功能/代码段和这些功能中的任何相关错误。该工具将使开发人员能够在开发时就纳入建议,而不是等待UT/QA/客户提出缺陷。我们评估了我们的工具上的开源代码和思科代码库的C和C++编程语言。我们的研究结果证实,源代码的深度表示和主动反馈循环是预测代码中存在的安全性和其他漏洞的可靠方法。
2020-04-24 cs.LG cs.SE
XAMT: Cross-Framework API Matching for Testing Deep Learning Libraries
本文提出跨框架模糊测试方法XAMT,通过匹配不同深度学习框架中功能等价的API并进行差分测试,在五个主流框架上检测出17个缺陷,弥补了框架内测试的不足。
2025-08-18 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
Detecting and Understanding Real-World Differential Performance Bugs in Machine Learning Libraries
University of Colorado Boulder(科罗拉多大学博尔德分校);TU Wien(维也纳工业大学)
降低系统性能的编程错误非常普遍,但是很少有工具支持分析这些错误。我们提出了一种基于差分性能分析的方法-我们发现输入的性能变化很大,尽管具有相同的大小。为了确保性能的差异是鲁棒的(即,也适用于大输入),我们不仅比较单个输入的性能,而且比较输入类的性能,其中每个类都有类似的输入参数,由它们的大小。因此,每个类别由从输入大小到性能的性能函数表示。重要的是,我们还提供了一个解释,为什么性能不同的形式,可以很容易地用来修复性能错误。在我们的方法中的两个主要阶段是发现与模糊和解释与决策树分类器,其中每一个都支持聚类。首先,我们提出了一个进化模糊算法来产生输入。对于这个模糊任务,独特的挑战是,我们不仅需要具有最差性能的输入类,而且需要一组表现出不同性能的类。我们使用聚类来合并相似的输入类,这显着提高了我们的模糊器的效率。其次,我们解释了程序输入和内部的差异性能。我们采用聚类和决策树的判别学习方法来定位可疑的代码区域。我们将我们的技术应用于一系列应用程序。在一组微基准测试中,我们证明了我们的方法在寻找输入以表征差分性能方面优于最先进的模糊器。在一组案例研究中,我们发现并解释了流行的机器学习框架中的多个性能错误。其中四个bug在本文中首次报道,已经被开发人员修复。
2020-06-03 cs.LG cs.PF cs.SE
MirrorFuzz: Leveraging LLM and Shared Bugs for Deep Learning Framework APIs Fuzzing
College of Electronic Engineering, National University of Defense Technology(国防科技大学电子工程学院)
针对深度学习框架API的共享缺陷问题,提出MirrorFuzz,利用历史缺陷数据匹配相似API,并借助大语言模型生成代码进行模糊测试,显著提升覆盖率并发现大量新缺陷。
2025-10-17 cs.CR cs.SE
Rise From The Ashes: LLM-based Static Analysis for Deep Learning Framework Bugs
State Key Laboratory for Novel Software Technology, Nanjing University(南京大学软件新技术国家重点实验室);School of Artificial Intelligence and Computer Science, Nantong University(南通大学人工智能与计算机学院);College of Computer Science and Technology/College of Software, Nanjing University of Aeronautics and Astronautics(南京航空航天大学计算机科学与技术学院/软件学院);Beijing Academy of Artificial Intelligence(北京智源人工智能研究院)
提出首个基于LLM的静态分析技术Phoenix,通过结构化语义桥接中间表示建模跨语言张量流,结合多智能体工作流检测深度学习框架缺陷,已在PyTorch中发现31个新bug。
2026-07-02 cs.SE
CITADEL: Context Similarity Based Deep Learning Framework Bug Finding
Xi'an Jiaotong University(西安交通大学);University of Massachusetts, Amherst(马萨诸塞大学阿默斯特分校)
针对深度学习框架测试工具覆盖缺陷类型有限且效率低的问题,提出基于上下文相似性的Citadel方法,自动生成带预言的测试用例,有效检测出PyTorch和TensorFlow上多个现有工具无法发现的性能缺陷,触发率显著提升。
2025-10-28 cs.SE
Toward Understanding Bugs in Vector Database Management Systems
本文首次对15个开源向量数据库的1,671个缺陷修复进行大规模实证研究,建立缺陷分类体系,揭示31种故障模式和12种修复策略,为提升VDBMS可靠性提供指导。
2025-06-03 cs.SE
Understanding Resolution of Multi-Language Bugs: An Empirical Study on Apache Projects
本文通过对 54 个 Apache 项目中的 66,932 个缺陷进行实证研究,揭示了多编程语言缺陷在比例、变更复杂度、开放时间和重新打开率等方面的特征,并识别出 6 个成因和 5 种跨语言调用机制,表明多语言缺陷会增加开发难度。
2023-07-05 cs.SE
Understanding Bugs in Modern Agentic Frameworks: A Study of Symptoms, Root Causes, and Triggering Conditions
Concordia University(康科迪亚大学)
本文研究现代代理框架中的缺陷,通过分析409个修复的bug,提出五层抽象模型,揭示独特的症状和根本原因,并识别可转移的bug触发模式,提升代理系统的可靠性。
2026-07-30 cs.SE
Hints Help Finding and Fixing Bugs Differently in Python and Text-based Program Representations
本研究通过753人众包实验发现,提示类型和程序表示(Python与文本)显著影响用户发现和修复错误的准确性,文本表示更有利,提示效果因用户理解而异,为个性化编程工具设计提供启示。
2024-12-17 cs.SE
DeepDiagnosis: Automatically Diagnosing Faults and Recommending Actionable Fixes in Deep Learning Programs
Iowa State University(爱荷华州立大学)
深度神经网络(DNN)被用于各种各样的应用中。然而,与任何软件应用程序一样,基于DNN的应用程序也存在漏洞。以前的工作观察到DNN错误修复模式与传统的错误修复模式不同。此外,这些有缺陷的模型是不平凡的诊断和修复,由于不明确的错误,有几个选项来修复它们。为了支持开发人员定位和修复错误,我们提出了DeepDiagnosis,这是一种新的调试方法,可以定位故障,报告错误症状并为DNN程序提供修复建议。在第一阶段,我们的技术监控训练模型,定期检查八种类型的错误条件。然后,在出现问题的情况下,它会报告包含足够信息的消息,以对模型执行可操作的修复。在评估中,我们彻底检查了444个模型-53个来自GitHub和Stack Overflow的真实世界,391个由AUTOTRAINER策划。与UMLUAT和DeepLocalize相比,DeepDiagnosis提供了更高的准确性。我们的技术比AUTOTRAINER更快的故障定位。结果表明,我们的方法可以支持其他类型的模型,而最先进的只能处理分类的。我们的技术能够报告在训练过程中不表现为数值错误的错误。此外,它可以为修复提供可操作的见解,而DeepLocalize只能报告在训练期间导致数值错误的错误。与其他方法相比,DeepDiagnosis表现出故障检测,错误定位和症状识别的最佳功能。
2021-12-07 cs.LG cs.SE
Checker Bug Detection and Repair in Deep Learning Libraries
该研究首次针对TensorFlow和PyTorch中的DL checker bug开展综合研究,分析其根因、症状与修复模式,并提出基于RAG和LLM的工具TensorGuard,实现高召回率的bug检测与更优的补丁生成效果,还在JAX库中发现了新bug。
2024-10-09 cs.SE
A Comprehensive Empirical Study of Bugs in Open-Source Federated Learning Frameworks
ShanghaiTech University(上海科技大学);Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所);University of Chinese Academy of Sciences(中国科学院大学);Tianjin University(天津大学);Nankai University(南开大学)
本研究针对开源联邦学习框架的bug问题,首次从17个主流框架的千余条相关议题与拉取请求中收集1119个bug,构建多维度分类体系并分析其功能分布与关联,得出9项核心发现,为优化FL框架和bug治理工具研发提供依据。
2023-10-06 cs.LG cs.SE
Finding Compiler-Platform Interaction Bugs in Deep Learning Pipelines via Cross-Layer Constraints
UC Riverside(加州大学河滨分校);Tulane University(杜兰大学);UCLA(加州大学洛杉矶分校)
提出一种自动化框架XCheck,通过提取全栈约束生成测试模型,发现编译器与硬件平台交互导致的错误,并在三个编译器上发现2034个错误案例。
2026-06-18 cs.SE
Benchmarking Deep Learning Fuzzers
本研究首次对DL模糊测试器进行真实基准评估,发现其检测能力有限,并提出轻量级边界情况生成器扩展,显著提升FreeFuzz、DeepRel和DocTer的缺陷检测数量。
2023-10-10 cs.SE
Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
深度学习(DL)技术在许多具有挑战性的任务中被证明是有效的,并在实践中被广泛采用。然而,以前的工作表明,DL库,构建和执行DL模型的基础,包含错误,并可能导致严重的后果。不幸的是,现有的测试方法仍然不能全面地测试DL库。它们利用现有的训练模型,只在模型推理阶段检测错误。在这项工作中,我们提出松饼来解决这些问题。为此,Muffin应用了一种专门设计的模型模糊方法,该方法允许它生成不同的DL模型来探索目标库,而不是仅依赖于现有的训练模型。Muffin通过定制一组度量标准来测量不同DL库之间的不一致性,从而在模型训练阶段实现了差异测试。通过这种方式,Muffin可以最好地运用库代码来检测更多的bug。为了评估Muffin的有效性,我们对三个广泛使用的DL库进行了实验。结果表明,Muffin可以在流行的DL库的最新版本中检测到39个新错误,包括Tensorflow,CNTK和Theano。
2022-05-09 cs.SE
Demystifying Dependency Bugs in Deep Learning Stack
Fudan University(复旦大学);The University of Tokyo(东京大学);University of Alberta(阿尔伯塔大学)
本文通过分析446个深度学习堆栈依赖问题,揭示了依赖bug的症状、根本原因及修复模式,为深度学习堆栈的依赖管理提供了新的见解。
2023-09-01 cs.SE
Demystifying Deep Learning Compiler Frontend Bugs: An LLM-Aided Empirical Study
Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所);University of Chinese Academy of Sciences(中国科学院大学)
对PyTorch 2默认深度学习编译器前端TorchDynamo的fBug展开首次系统实证研究,借助领域知识增强的大语言模型辅助方法,分析fBug并构建分类法,生成测试用例,发现多个新fBug,为深度学习编译器开发和测试提供见解。
2026-07-29 cs.PL cs.SE
Fuzzing Deep-Learning Libraries via Automated Relational API Inference
越来越多的研究致力于DL模型测试。然而,在测试DL库方面的工作仍然有限,这些库是构建、训练和运行DL模型的基础。以前的模糊DL库工作只能为文档示例、开发人员测试或DL模型调用的API生成测试,留下大量未经测试的API。在本文中,我们提出了DeepREL,这是第一种自动推断关系API以实现更有效的DL库模糊化的方法。我们的基本假设是,对于被测的DL库,可能存在许多共享类似输入参数和输出的API;通过这种方式,我们可以很容易地从调用的API“借用”测试输入来测试其他关系API。此外,我们形式化的关系API的值等价和状态等价的概念,作为有效的错误发现的预言机。我们已经实现了DeepREL作为DL库的全自动端到端关系API推理和模糊技术,其1)基于API语法或语义信息自动推断潜在的API关系,2)合成用于调用关系API的具体测试程序,3)通过代表性测试输入验证推断的关系API,以及最后4)对经验证的关系API执行模糊化以发现潜在的不一致。我们对两个最流行的DL库PyTorch和TensorFlow的评估表明,DeepREL可以比最先进的FreeFuzz多覆盖157%的API。到目前为止,DeepREL总共检测到162个bug,其中106个已经被开发人员确认为以前未知的bug。令人惊讶的是,DeepREL在三个月的时间内检测到了整个PyTorch问题跟踪系统中13.5%的高优先级错误。此外,…
2022-07-12 cs.SE
Bug Characterization in Machine Learning-based Systems
Polytechnique Montréal(蒙特利尔理工学院);York University(约克大学)
本文研究了基于ML的软件系统中的缺陷特征,通过分析GitHub上300个代码库的386个问题,发现ML组件比非ML组件更易出错且修复成本更高。
2023-07-26 cs.LG cs.SE
Subgraph-Oriented Testing for Deep Learning Libraries
本文提出 SORT,以真实模型计算图中的频繁 API 交互子图为对象并生成有效运行时输入,对不同硬件平台上的深度学习库进行差分测试,在 PyTorch 中发现 18 个精度缺陷。
2025-06-09 cs.SE
Automated Conformance Testing for JavaScript Engines via Deep Compiler Fuzzing
JavaScript(JS)是一种流行的、与平台无关的程序设计语言。为了确保JS程序在不同平台上的互操作性,JS引擎的实现应该符合ECMAScript标准。然而,这样做是具有挑战性的,因为API行为有许多微妙的定义,并且定义不断发展。我们提出了COMFORT,一个新的编译器模糊框架,用于检测JS引擎的错误和行为偏离ECMAScript标准。COMFORT利用基于深度学习的语言模型的最新进展,自动生成JS测试代码。与以前的模糊器不同,COMFORT利用结构良好的ECMAScript规范自动生成测试数据以及测试程序,以暴露开发人员或手动编写的测试用例可能忽略的错误。然后,COMFORT在生成的测试用例上应用差异测试方法,以暴露标准一致性错误。我们将COMFORT应用于十个主流JS引擎。在200小时的自动化并发测试运行中,我们发现了所有测试过的JS引擎中的错误。我们已经确定了158个独特的JS引擎错误,其中129个已经得到验证,115个已经被开发人员修复。此外,21个Comfort生成的测试用例已添加到Test262,官方ECMAScript一致性测试套件。
2021-04-15 cs.PL cs.SE
Understanding Bugs in Quantum Simulators: An Empirical Study
Louisiana State University(路易斯安那州立大学)
本文通过分析394个确认的量子模拟器错误,揭示了错误发现主要由用户驱动,逻辑正确性错误普遍存在且无声,关键错误源于经典模拟器基础设施。
2026-03-24 cs.SE quant-ph
A Feature-Oriented Corpus for Understanding, Evaluating and Improving Fuzz Testing
Fuzzing是一种很有前途的安全漏洞检测技术。新开发的模糊器通常根据在易受攻击的程序/二进制文件上发现的错误数量进行评估。然而,现有的语料库通常不捕捉的功能,防止模糊发现错误,导致模糊的利弊评价的结论。一个典型的例子是,Driller比AFL检测到更多的错误,但它的评估无法确定Driller的进步是否源于concolic执行,因为,例如,它在解决数据集的魔法值方面的能力尚不清楚。在本文中,我们提出了解决上述问题的基础上产生语料库的搜索阻碍功能。作为概念验证,我们设计了FEData,这是一个原型语料库,目前专注于四个搜索阻碍功能,以生成用于模糊测试的易受攻击程序。与现有的只能回答“如何”的语料库不同,FEData还可以通过暴露(或理解)模糊器中已识别弱点的原因来进一步回答“为什么”。“为什么”信息是改进模糊器的关键。
2019-05-04 cs.SE
A Study of Single Statement Bugs Involving Dynamic Language Features
动态语言特征在程序设计语言中广泛可用,以实现可以适应多个使用上下文的功能,从而实现重用。数据绑定、对象关系映射和用户界面构建器等功能可能严重依赖于这些特性。然而,它们的使用有风险和缺点,因为它们影响静态分析和依赖于这种分析的技术(例如错误检测和自动程序修复)的可靠性。由于理解反射代码的潜在困难、编译时安全性的丧失和不正确的API使用,它们还可能使软件更容易出错。在本文中,我们开始量化在Java程序中使用动态语言功能的一些影响,也就是说,使用这些功能相对于一个特定类型的错误称为单语句错误的错误倾向。通过挖掘2,024个GitHub项目,我们发现了139个单语句bug实例(属于10种不同的bug模式),其中最多的bug属于三种特定模式:错误的函数名称,相同的函数更多的参数和更改使用的标识符。这些结果可以帮助从业者量化使用动态技术的风险,而不是替代技术(如代码生成)。我们希望这种分类引起人们对选择可能容易出错的动态API的关注,并为开发人员在设计此类功能的错误检测工具时提供更好的理解。
2022-04-03 cs.SE
LLM-Powered Silent Bug Fuzzing in Deep Learning Libraries via Versatile and Controlled Bug Transfer
Hong Kong University of Science and Technology(香港科技大学);Lingnan University(岭南大学);Huawei(华为);Central University of Finance and Economics(中央财经大学)
利用大语言模型实现深度学习库中无声bug的模糊测试,通过多功能且可控的bug转移技术发现79个新bug。
2026-02-27 cs.SE
A Comprehensive Study of Bugs in Modern Distributed Deep Learning Systems
Hong Kong Metropolitan University(香港都会大学);Wuhan University of Technology(武汉理工大学);City University of Hong Kong(香港城市大学);University College London(伦敦大学学院)
本文通过分析849个真实问题,构建了分布式深度学习框架中bug症状、原因和修复模式的分类体系,揭示了分布式训练中的常见问题及解决方法。
2025-12-23 cs.SE
Yuga: Automatically Detecting Lifetime Annotation Bugs in the Rust Language
针对Rust中不正确的生命周期标注导致的内存安全漏洞,提出静态分析工具Yuga,采用多阶段分析(模式匹配与别名分析)自动检测此类缺陷,并公开数据集验证其高精度。
2025-01-24 cs.SE
PanicFI: An Infrastructure for Fixing Panic Bugs in Real-World Rust Programs
针对Rust程序panic缺陷修复难的问题,提出PanicFI基础设施,构建含102个真实缺陷的Panic4R数据集,挖掘Rust特有修复模式,开发首款自动化修复工具PanicKiller,已修复28个开源缺陷,验证了模式有效性。
2024-11-04 cs.SE
Learning a Static Bug Finder from Data
Nanjing University(南京大学);Visa Research(维萨研究院)
我们提出了一种创建静态错误查找器的替代方法。我们利用深度神经网络直接从数据中训练静态分析器,而不是依赖于人类的专业知识。特别是,我们框架的问题,错误发现作为一个分类任务和训练的分类器,以区分错误的程序,使用图神经网络(GNN)。最重要的是,我们提出了一种新的基于间隔的传播机制,可以显著提高GNN的效率,准确性和可扩展性。在跨项目预测任务中,我们从NeurSA实例化的三个神经缺陷检测器有效地捕获了空指针解引用、数组索引越界和未看到代码中的类转换缺陷。我们将NeurSA与几个静态分析器(例如Facebook Infer和Pinpoint)在一组空指针解引用错误上进行比较。结果表明,NeurSA在捕获真正的错误和抑制虚假警告方面更精确。我们还将NeurSA应用于GitHub上几个流行的Java项目,发现了50个新的bug,其中9个已经修复,3个已经确认。
2020-03-27 cs.LG cs.SE
MultiFixer: A Coordinator-Proposer Based Multi-Agent Framework For Fixing Multi-Hunk Bugs
Nanjing University of Science and Technology(南京理工大学);Nanjing University(南京大学);Singapore Management University(新加坡管理大学)
该研究针对现有LLM-based APR方法难以修复多块漏洞的问题,提出MultiFixer多智能体框架,经多基准测试,其在Defects4J等数据集上达到最优修复效果,能有效修复多块漏洞。
2026-07-30 cs.SE
MoCo: Fuzzing Deep Learning Libraries via Assembling Code
针对深度学习库模糊测试在输入多样性、测试预言构建等方面的局限,提出基于代码组装的MoCo模糊测试方法,可快速定位漏洞,在三类主流DL库中检测出64个新漏洞。
2024-05-13 cs.SE
SyzScope: Revealing High-Risk Security Impacts of Fuzzer-Exposed Bugs in Linux kernel
模糊技术已经成为软件缺陷发现的最有效的方法之一。近年来,出现了24*7连续模糊测试平台来测试软件的关键部分,例如,Linux内核。虽然能够发现许多错误并提供复制器(例如,概念证明),一个主要问题是它们忽略了本应内置的关键功能,即,评估bug的安全影响。众所周知,缺乏对安全影响的理解可能会导致错误修复延迟以及补丁传播。在本文中,我们开发SyzScope,一个系统,可以自动发现新的“高风险”的影响,给出了一个错误,看似“低风险”的影响。通过分析syzbot上的一千多个低风险bug,SyzScope成功地确定了183个低风险bug(超过15%)实际上包含高风险影响,例如,控制流劫持和任意内存写入,其中一些仍然没有可用的补丁。
2021-11-11 cs.CR cs.SE
Demystifying Regular Expression Bugs: A comprehensive study on regular expression bug causes, fixes, and testing
正则表达式会导致与字符串相关的错误和DOS攻击的开放安全漏洞。然而,除了ReDoS(正则表达式拒绝服务)之外,人们对正则表达式问题影响软件开发的程度以及如何在实践中解决这些问题知之甚少。我们对来自Apache,Mozilla,Facebook和Google GitHub存储库的356个合并regex相关的pull request bug进行了实证研究。我们识别正则表达式问题的性质、修复以及测试代码中的相关更改并对其进行分类。本文最重要的发现如下:1)不正确的正则表达式行为是正则表达式错误的主要根源(165/356,46.3%)。其余的根本原因是不正确的API使用(9.3%)和其他需要在修复中更改正则表达式的代码问题(29.5%),2)修复正则表达式错误并不简单,因为与一般的拉取请求相比,修复正则表达式错误需要更多的时间和更多的代码行,3)大多数(51%)与正则表达式相关的拉取请求不包含测试代码更改。某些正则表达式错误类型(例如,编译错误,性能问题,正则表达式表示)不太可能包括测试代码更改,4)在正则表达式相关的拉取请求中,测试代码更改的主要类型是测试用例添加(75%)。本研究的结果有助于更广泛地理解开发人员在使用、修复和测试正则表达式时所面临的实际问题。
2021-04-19 cs.SE