Dependency Solving Is Still Hard, but We Are Getting Better at It
在所有非平凡组件模型中,依赖性求解是一个困难(NP完全)问题,这是由于相同包的相互不兼容版本或显式声明的包冲突。因此,软件升级规划需要依赖于高度专业化的依赖求解器,以免落入陷阱,如不完整的组合包版本,满足依赖约束确实存在,但包经理无法找到它。在本文中,我们回顾了依赖解决方案的研究可以追溯到几年前的建议。具体来说,我们回顾了将依赖解决作为包管理器实现中的一个单独关注点的想法,依赖于基于久经考验的技术(如SAT解决,PBO,MILP等)的通用依赖解决器。通过对最先进的包管理器中的依赖解决能力进行普查,我们得出结论,一些建议开始起飞(例如,基于SAT的依赖性求解),而其他的则没有(例如,将依赖性解决外包给可重用组件)。我们反思了为什么会出现这种情况,并探讨了自那时以来出现的依赖解决的新挑战。
2020-11-16 cs.SE
Giving Back: Contributions Congruent to Library Dependency Changes in a Software Ecosystem
第三方库在当代软件开发中的普遍采用导致了大型相互依赖网络的创建,其中单个库的可持续性问题可能具有广泛的网络效应。这些图书馆的维护人员往往超负荷工作,依靠志愿人员的贡献来维持这些图书馆。在这项工作中,我们测量与依赖关系变化一致的贡献,以了解它们来自哪里(即,非维护者、客户端维护者、库维护者、以及库和客户端维护者),分析它们是否有助于库休眠(即,缺乏活动),并调查这些贡献与开发人员的典型贡献之间的相似性。因此,我们利用社会技术来衡量依赖-贡献一致性(DC一致性),即,贡献与依赖的一致程度。我们进行了一项大规模的实证研究,使用170万个问题,97万个拉取请求(PR)和属于107,242个NPM包的超过530万个提交来测量NPM生态系统的DC一致性。在生态系统层面,我们在时间上精确定位与依赖性变化一致的峰值(即,16%DC一致性评分)。令人惊讶的是,这些贡献来自生态系统本身(即,客户端和库的非维护者)。在项目层面上,我们发现,DC一致性共享一个统计上显着的关系,一个包成为休眠的可能性。最后,通过比较贡献的源代码,我们发现,一致的贡献是统计上不同的典型贡献。我们的工作对鼓励和维持贡献有影响,特别是支持需要依赖关系更改的库维护者。
2022-05-26 cs.SE
Back to the Future! Studying Data Cleanness in Defects4J and its Impact on Fault Localization
本文分析 Defects4J 故障触发测试的时间线与开发者知识污染,发现去除该知识后 SBFL 性能显著下降,并发布洁净缺陷数据集。
2024-08-08 cs.SE
Learning Tractable Probabilistic Models for Fault Localization
University of Washington(华盛顿大学)
近年来,一些概率技术已被应用于各种调试问题。然而,大多数现有的概率调试系统使用相对简单的统计模型,并未能推广到多个程序。在这项工作中,我们提出了可处理的故障定位模型(TFLMs),可以从数据中学习,并概率地推断错误的位置。虽然大多数以前的统计调试方法都是在单个程序的多次执行上进行推广,但TFLM是在以前看到的错误程序的语料库上进行训练的,并学会识别错误的重复模式。广泛使用的故障定位技术,如TARANTALY评估孤立的每条线路的可疑性;相比之下,TFLM定义了每条线路的故障指标变量的联合概率分布。具有丰富依赖结构的联合分布通常在计算上是难以处理的; TFLM通过利用易处理的概率模型(特别是关系SPN)的最新发展来避免这一点。此外,TFLM还可以包含其他信息源,包括基于覆盖范围的功能,如TARANTTM。我们评估故障定位性能的TFLM,包括TARANTHALDS分数的概率模型中的功能。我们的研究表明,学习TFLM隔离错误更有效地比以前的统计方法或直接使用TARANTFLOW。
2015-07-07 cs.LG cs.SE
An Empirical Study on Deployment Faults of Deep Learning Based Mobile Applications
Peking University(北京大学);Peking University Information Technology Institute (Tianjin Binhai)(北京大学信息技术研究院(天津滨海));Beijing University of Posts and Telecommunications(北京邮电大学)
深度学习(DL)正在进入越来越多的移动软件应用程序。这些软件应用程序被称为基于DL的移动应用程序(简称为移动DL应用程序),将使用大规模数据训练的DL模型与DL程序集成在一起。DL程序对期望的DL模型的结构和使用训练数据训练模型的过程进行编码。由于当前移动应用程序对DL的依赖性越来越大,移动DL应用程序的软件工程(SE)变得非常重要。然而,现有的SE研究社区的努力主要集中在DL模型的发展和广泛的DL程序中的故障分析。相比之下,与移动设备上的DL模型的部署有关的故障(称为移动DL应用程序的部署故障)尚未得到很好的研究。由于移动DL应用程序每天被数十亿最终用户用于各种目的,包括安全关键场景,因此表征其部署故障非常重要。为了填补知识空白,本文首次全面研究了移动DL应用程序的部署故障。我们从Stack Overflow和GitHub中识别出304个实际部署错误,这两个数据源是研究软件错误的常用数据源。基于已识别的故障,我们构建了一个细粒度的分类法,包括23个类别的故障症状和提取常见的修复策略,为不同的故障类型。此外,我们提出了可行的影响和研究途径,可以进一步促进DL模型在移动设备上的部署。
2021-02-10 cs.AI cs.SE
Dependency Smells in JavaScript Projects
现代软件开发中的依赖管理为希望保持最新功能和修复同时确保向后兼容性的开发人员带来了许多挑战。项目维护人员选择了各种各样的,有时是相互冲突的方法来维护他们的依赖关系。选择不合适的方法可能会给项目带来bug和漏洞,引入破坏性的更改,导致无关的安装,并降低依赖性的可理解性,使其他人更难有效地做出贡献。在本文中,我们经验性地研究了经常性的依赖管理问题(依赖气味)的证据。我们查看了1,146个活动JavaScript存储库的数据集的提交数据,以分类,量化和理解依赖气味。通过对从业者的一系列调查,我们确定并量化了七种受欢迎程度不同的依赖气味,并调查了为什么它们会在整个项目历史中被引入。我们的研究结果表明,依赖气味在JavaScript项目中很普遍,80%的项目中出现了两种或两种以上不同的气味,但它们通常会感染项目的少数依赖项。我们的观察表明,依赖气味的数量往往会随着时间的推移而增加。实践者认为依赖气味会带来许多问题,包括安全威胁、bug、依赖破坏、运行时错误和其他维护问题。这些气味通常是在开发人员对依赖不当行为和npm生态系统的缺点做出反应时引入的。
2021-08-18 cs.SE
Fault Prediction based on Software Metrics and SonarQube Rules. Machine or Deep Learning?
背景开发人员花费更多的时间来修复错误和重构代码,以增加可维护性,而不是开发新功能。研究人员调查了代码质量对错误倾向的影响,重点关注代码气味和代码度量。Objective.我们的目标是推进故障诱导提交预测的基础上SonarQube考虑每个规则和度量提供的贡献。法我们设计并进行了一个案例研究,在33个Java项目中使用SonarQube和SZZ进行分析,以识别错误诱导和错误修复提交。此外,我们使用机器和深度学习模型研究了每个SonarQube规则和度量的故障倾向。结果我们分析了77,932次提交,其中包含40,890个错误,并被超过174个SonarQube规则感染,违反了1900万次,在此基础上计算了该工具可用的24个软件指标。与机器学习模型相比,深度学习提供了更准确的故障检测精度,并允许我们准确地识别每个SonarQube规则的故障预测能力。结果表明,在174条违规规则中,有14条规则的重要性大于1%,约占总错误倾向重要性的30%,其余165条规则的错误倾向性可以忽略不计。结论未来的工作可能会考虑采用时间序列分析和异常检测技术,以更好,更准确地检测影响故障倾向的规则。
2021-03-21 cs.SE
Beyond Fault Localization: A Trajectory-Level Study of LLM Agents for Microservice Root Cause Analysis
The Chinese University of Hong Kong, Shenzhen(香港中文大学(深圳));Xi’an Jiaotong University(西安交通大学)
本研究针对微服务根本原因分析,提出轨迹级评估框架,发现智能体答案正确性与诊断质量脱节,构建DiagGuard架构提升了RCA的Acc@1指标,为自动化RCA改进提供指导。
2026-10-12 cs.SE
Are We Testing the Wrong Quantum Bugs? A Study of Fault Representation Gaps in Quantum Software Testing
Tulane University(杜兰大学);The University of Texas at Dallas(德克萨斯大学达拉斯分校);University of California, Riverside(加州大学河滨分校)
本研究对比量子突变测试工具、基准漏洞与真实量子软件漏洞,发现86.3%真实漏洞未被覆盖,指出需关注编译器等组件的故障测试,为构建更贴合实际的量子软件测试基准提供实证依据。
2026-10-19 cs.PL cs.SE
The Illusion of Independent Quorums: Epistemic Fault Domains and Correlated Cognitive Failures in Agentic Quorums
本文针对智能体仲裁团中存在的复制不代表认知冗余的问题,提出认知故障域与结构认知割概念,设计DAQC控制器,通过理论分析与仿真验证,提供120任务基准,为高风险授权场景的可靠性提供保障。
2026-09-04 cs.DC cs.MA cs.SE
Using causal inference and Bayesian statistics to explain the capability of a test suite in exposing software faults
测试有效性是指测试套件暴露软件中错误的能力。了解影响这种能力的因素至关重要。我们的目标是推断这两个因素之间的因果关系(即,Cover/Exec)以及测试套件暴露和发现软件中错误的能力。Cover指的是覆盖语句的不同测试用例的数量,而Exec等于测试套件执行语句的次数。我们分析了来自{12} Java程序的459166个软件故障。贝叶斯统计与后门标准一起被用于因果推理的目的。此外,我们研究了测量关联的常见陷阱,因果关系和非因果关系的混合,而不是因果关联。结果表明,Cover与\textit{Exec}之间的因果关系更强,且Cover与\textit{Exec}之间的因果关系和非因果关系存在统计学差异。软件开发人员可以利用这些结果来设计和编写更有效的测试用例,从而发现更多隐藏在软件中的错误。
2023-03-17 cs.SE
SemLoc: Structured Grounding of Free-Form LLM Reasoning for Fault Localization
UC Riverside(加州大学河滨分校);Cisco Research(思科研究院);Independent Researcher(独立研究员)
SemLoc通过结构化语义绑定将自由形式LLM推理转化为封闭中间表示,结合语义违反光谱提升故障定位精度,实现7.6%的代码检查效率提升。
2026-10-28 cs.AI cs.SE
Too Trivial To Test? An Inverse View on Defect Prediction to Identify Methods with Low Fault Risk
背景测试资源通常是有限的,因此通常不可能在发布之前完全测试应用程序。为了解决资源稀缺的问题,开发团队可以应用缺陷预测来识别容易出错的代码区域。然而,在跨项目预测场景中,缺陷预测往往精度较低。目的。我们对缺陷预测采取了相反的观点,目的是确定在测试时可以推迟的方法,因为它们几乎不包含任何错误,因为它们的代码是“微不足道的”。我们希望这种方法的特点可能是独立于项目的,所以我们的方法可以提高跨项目的预测。法我们计算代码度量,并应用关联规则挖掘来创建用于识别具有低故障风险的方法的规则。我们进行了实证研究,以评估我们的方法与六个Java开源项目包含精确的故障数据的方法级。结果我们的研究结果表明,逆缺陷预测可以识别约。32-44%的项目方法具有低故障风险;平均而言,它们包含故障的可能性比其他方法低六倍。在具有更大、更多样化训练集的跨项目预测中,识别出的方法包含错误的可能性甚至低11倍。结论.反向缺陷预测通过识别测试活动中优先级较低的方法来支持测试资源的有效分配,并且非常适用于跨项目预测场景。
2018-11-02 cs.SE
Graph-Free Root Cause Analysis
RMIT University, Australia(皇家墨尔本理工大学)
PRISM是一种无需依赖图的高效根因分析框架,在真实世界数据集上实现了68%的Top-1准确率,比基线方法提升了258%。
2026-01-29 cs.LG cs.SE
Path Analysis for Effective Fault Localization in Deep Neural Networks
School of Computer Engineering, Iran University of Science and Technology(伊朗科学技术大学计算机工程学院)
针对传统故障定位方法忽略神经通路传播导致检测不精确的问题,提出NP-SBFL-MGA方法,利用LRP识别故障神经通路并结合多阶段梯度上升技术,在MNIST和CIFAR-10上显著提升了故障检测率和对抗输入生成效果。
2025-01-27 cs.AI cs.NE cs.SE
Fault-Tolerant, but Paradoxical Path-Finding in Physical and Conceptual Systems
Western Kentucky University(西肯塔基大学)
我们报告我们的初步调查的可靠性和路径查找为基础的模型,并提出未来感兴趣的领域。受校园建设项目中破损的人行道的启发,我们开发了两个模型来导航这个“不可靠的网络”。这些都是基于从目的地向后的“累积风险”的概念,并且都在有向非循环图上操作,每个边缘都有失败的概率。第一个用来介绍第二个更保守的模型,并解决了第二个模型的缺陷。接下来,我们展示了一个悖论,当这些模型被用来构建多项式的概念网络,如设计过程和软件开发生存周期。当网络的风险均匀增加时,最可靠的路径从更宽更长变为更短更窄。如果我们让专业人员缺乏经验--比如入门级厨师和软件开发人员--代表边缘失败的概率,这种路径上的变化是否意味着新手应该用更少的“备份”计划来遵循指令,而那些有替代路线的人应该由专家来遵循?
2014-06-09 cs.AI cs.SE
Probabilistic Failure Analysis in Model Validation & Verification
University of Toulouse(图卢兹大学);IRIT(法国图卢兹计算机科学研究所);INPT(国立图卢兹综合理工学院)
自动故障定位是模型确认和验证中的一个重要问题。它帮助最终用户分析故障的根源。在这项工作中,我们展示了故障定位的概率分析方法的早期实验。受贝叶斯概率论中Kullback-Leibler分歧的启发,提出了一种可疑因子来计算模型检验可达图中变迁的故障贡献,并利用该因子对潜在故障变迁进行排序.为了在详细设计的仿真模型中自动定位设计故障,我们提出使用统计模型隐马尔可夫模型(HMM),它提供了统计上相同的信息,以组件的真实行为。该方法的核心是故障定位算法和后向算法,前者给出了一组经过排序的可疑故障元件,后者计算HMM与仿真模型的匹配度来评估定位结论的置信度。
2016-11-18 cs.LG cs.SE
On the Relationship of Inconsistent Software Clones and Faults: An Empirical Study
背景:代码克隆-复制和重用源代码片段-是软件开发实践中的常见现象。关于克隆的影响已经有了一些实证研究,但关于克隆与缺陷的联系,有相互矛盾的结果。目的:我们的目的是澄清代码克隆和错误之间的关系。特别是,我们专注于不一致(或类型3)的克隆在这项工作中。方法:我们与TWT GmbH进行了一个案例研究,在其中我们检测了三个Java系统中的代码克隆,将它们与来自问题跟踪和版本控制的信息相关联,并采访了三位关键开发人员。结果:在3型克隆中,17%的克隆存在缺陷.开发人员同时修改了大多数3型克隆,从而一致地修复了3型克隆中的一半故障。具有故障的2型克隆都进化为固定的3型克隆。克隆长度与不完美性仅弱相关。结论:有迹象表明,两个案例中的开发人员已经意识到克隆。这可能是第三类无性系与断层关系不密切的原因之一。因此,让开发人员了解克隆似乎很重要,可能有新的工具支持。未来的研究需要调查的故障率在类型3克隆证明使用它们作为线索,在缺陷检测。
2016-11-23 cs.PL cs.SE
A Reduced Stochastic Model of Microservice Availability: Algorithms for Identification and Formal Analysis
Innopolis University(因诺波利斯大学)
提出基于随机连通性的形式化运行时可用性模型,通过服务依赖图、复制映射和概率度量分析微服务端点弹性,支持蒙特卡洛模拟和架构假设分析。
2026-10-26 cs.DC cs.PF cs.SE