FauxPy: A Fault Localization Tool for Python
本文提出FauxPy,一个支持七种错误定位技术、兼容Pytest等框架的Python开源错误定位工具,并验证了其在135个真实错误上的适用性。
2024-04-29 cs.SE
ACDC: Altering Control Dependence Chains for Automated Patch Generation
一旦观察到故障,开发人员的主要关注点是确定导致故障的原因,以便修复导致错误行为的代码。在提供永久修复之前,代码修复补丁是无价的。本工作的目的是设计一种自动补丁生成技术,其进行如下:步骤1)它确定了一组故障引起的控制依赖链,是最小的数量和长度。步骤2)它识别链中的一组谓词以及相关的执行实例,使得在给定实例处否定谓词将表现出正确的行为。步骤3)对于每个候选谓词,它创建一个分类器,该分类器指示何时应该否定谓词以产生正确的程序行为。步骤4)在每个候选谓词之前,错误程序被注入对其相应分类器的调用,向其传递程序状态并获得预测性地指示是否否定谓词的返回值。分类器的作用是确保:1)在通过运行期间不对谓词求反;以及2)在失败运行内的适当实例处对谓词求反。我们实现了我们的补丁生成方法的Java平台,并评估我们的工具集使用148缺陷的Introlass和西门子基准。该工具集识别了56个完整的补丁和另外46个部分补丁,分类准确率平均为84%。
2017-05-02 cs.SE
Proof Engineering with Predicate Transformer Semantics
我们提出了一个轻量级的,开源的Agda框架,手动验证有效的程序使用谓词Transformer语义。我们表示的抽象语法树(AST)的有效程序与广义代数数据类型(GADT)AST,其一般性,即使是复杂的操作是原始的AST节点。然后,用户可以将定制的谓词Transformers分配给这些操作,以帮助证明工作,例如通过自动分解分支代码的证明义务。我们的框架编纂和推广的证明工程方法,作者使用的理由LibraBFT,拜占庭容错共识协议,其中参与者执行的代码可能会产生的影响,如更新状态和发送消息的原型实现。在这种情况下,我们的框架的成功使用证明了它的实用性。
2022-08-17 cs.LO cs.SE
Causal fault localisation in dataflow systems
University of Cambridge(剑桥大学)
本文首次实践验证将数据流图视为完整图形化因果模型的思路,并基于三种现代数据流引擎演示用因果推断在多场景中定位软件缺陷与数据漂移。
2023-04-24 cs.AI cs.SE
Causality-Guided Adaptive Interventional Debugging
不确定性是现代数据库应用中的一个事实。以前的研究表明,非确定性可能会导致应用程序间歇性崩溃,变得无响应或经历数据损坏。我们提出了自适应介入性故障(AID)调试这种间歇性故障。AID以一种新颖的方式结合了现有的统计调试、因果分析、故障注入和组测试技术,以(1)查明应用程序间歇性故障的根本原因,以及(2)生成对根本原因如何触发故障的解释。AID的工作原理是首先识别一组与故障密切相关的运行时行为(称为谓词)。然后,它利用时间属性的谓词(过)近似的因果关系。最后,它使用故障注入对谓词执行一系列干预,并发现它们真正的因果关系。这使AID能够确定真正的根本原因及其与故障的因果关系。我们从理论上分析了AID如何快速收敛到识别。我们评估援助与六个现实世界的应用程序,间歇性地失败,在特定的输入。在每一种情况下,AID都能够识别根本原因并解释根本原因是如何触发故障的,比分组测试快得多,比统计调试更精确。我们还评估了AID与许多合成生成的应用程序与已知的根本原因,并确认的好处也为他们举行。
2020-04-09 cs.DB cs.SE
A Comprehensive Empirical Investigation on Failure Clustering in Parallel Debugging
聚类技术作为用于多故障场景中的并行调试的有前途的策略已经吸引了很多关注,这种启发式方法(即,故障索引或故障隔离)使开发人员能够通过将失败的测试用例分成若干不相交的组来同时执行多个调试任务。当使用语句排序表示来对故障进行建模以实现更好的聚类时,有几个因素影响聚类的有效性,包括风险评估公式(REF)、故障数量(NOF)、故障类型(FT)以及与一个单独的失败测试用例(NSP1F)配对的成功测试用例的数量。在本文中,我们提出了第一个全面的实证研究,这四个因素如何影响集群的有效性。我们对228个模拟故障和141个真实故障的1060个故障版本进行了广泛的控制实验,结果表明:1)GP19在所有REF中具有高度竞争力,2)聚类有效性随着NOF的增加而降低,3)当程序仅包含谓词故障时,更高的聚类有效性更容易实现,当NSP1F的规模减小到20%时,聚类效果仍然保持不变。
2022-07-19 cs.SE
An Empirical Study on Failed Error Propagation in Java Programs with Real Faults
在测试过程中,开发人员可以在方法的外部或内部放置Oracle。给定错误的执行状态,即,一个与预期的错误不同的错误,如果它被放置在不能访问不正确的程序状态或程序状态不再被破坏的程序点处,则Oracle可能无法暴露该错误。在这种情况下,oracle会受到失败的错误传播的影响。我们进行了一项实证研究,以衡量失败的错误传播缺陷4J,参考基准的Java程序与真正的故障,考虑所有6个项目(386个真正的错误和459个固定的方法)。我们的研究结果表明,失败的错误传播的流行是可以忽略不计的测试时,在单元级。然而,当提供系统级输入时,失败的错误传播的发生率大幅增加。这表明,方法后置条件仅根据外部可观察状态/数据进行预测就足够了,并且在系统级测试时应检查中间步骤。
2020-11-21 cs.SE
Causal Program Dependence Analysis
我们介绍因果程序依赖分析(CPDA),一个动态的依赖分析,应用因果推理模型的强度在一个连续的空间程序依赖关系。CPDA通过构造和执行程序的修改版本来观察程序元素之间的关联。CPDA的一个优点是这种构造只需要轻量级的解析,而不需要复杂的静态分析。结果是一组观察结果,这些观察结果基于一个变异的程序元素产生的值的变化影响其他元素的行为的频率。从这组观察中,CPDA发现了一个捕获因果关系的因果结构(即,依赖)关系。定性评价发现,CPDA简洁地表达了程序元素之间的关键依赖关系。作为一个例子,我们应用CPDA的故障定位问题。使用最小的测试套件,我们的方法可以排名两倍的故障相比,SBFL。
2021-04-19 cs.SE
DETOx: Towards Optimal Software-based Soft-Error Detector Configurations
应用程序开发人员经常在他们的系统中放置可执行断言(配备了特定于程序的谓词),以针对编程错误。然而,这些检测器也可以检测由主存储器中的瞬时硬件故障引起的数据错误。但是,虽然断言减少了它们检查的程序状态中的静默数据损坏(SDC),但它们向目标程序添加了运行时间,从而增加了剩余状态的攻击面。本文概述了一种方法,可以找到最佳的断言子集,使SDC计数最小化,而不需要对每个可能的断言子集运行故障注入实验。
2016-08-22 cs.SE
Extending Delta Debugging Minimization for Spectrum-Based Fault Localization
University of Ruhuna(卢胡纳大学)
DDMIN-LOC结合Delta调试最小化与基于光谱的故障定位,通过计算可疑性分数来定位故障语句,实验表明其在Jaccard算法下效果最佳。
2026-01-08 cs.SE
An Empirical Study of Fault Localization in Python Programs
本文首次对真实 Python 程序开展多系列大规模故障定位实证研究,基于 BugsInPy 的 135 个故障评估七类技术,并通过 FauxPy 工具复现和比较 Java 相关结论。
2024-03-20 cs.SE
Causal Inference-Based Root Cause Analysis for Online Service Systems with Intervention Recognition
Tsinghua University(清华大学);BizSeer(必示科技)
故障诊断在许多领域中是至关重要的,因为故障可能导致安全威胁或经济损失。在在线服务系统领域,运营商依靠大量的监控数据来检测和减轻故障。快速识别潜在故障的一小组根本原因指示符可以节省大量时间来缓解故障。在本文中,我们制定的根本原因分析问题作为一个新的因果推理任务命名为干预识别。提出了一种基于因果推理的无监督根本原因分析方法CIRCA。核心思想是一个监控变量成为根本原因指标的充分条件,即,在因果贝叶斯网络(CBN)中,以父节点为条件的概率分布的变化。针对在线服务系统中的应用,CIRCA基于系统结构知识和一组因果假设,构建了一个监控指标图。仿真研究表明了CIRCA的理论可靠性。在真实世界数据集上的性能进一步表明,CIRCA可以将前1推荐的召回率提高25%,超过最佳基线方法。
2022-06-13 cs.AI cs.SE
Proceedings First Workshop on Causal Reasoning for Embedded and safety-critical Systems Technologies
自动因果关系分析,故障定位,事件解释,问责制和责备的正式方法已经由几个社区独立提出-特别是人工智能,并发,基于模型的诊断,正式方法。在过去几年中,关于这些专题的工作大大加快了速度。CREST的目标是汇集和促进来自不同社区的研究人员之间的交流,并介绍和讨论该领域的最新进展和新想法。研讨会的程序包括一组邀请和贡献的演示文稿,说明不同的技术,因果关系分析和故障定位的应用。该计划由两个主题演讲组成。Hana Chockler(国王学院)的主旨发言提供了一个广泛的视角,探讨了基于Halpern和Pearl对实际因果关系的定义的因果推理在从形式化验证到法律推理等各种应用领域的应用。Chao Wang(弗吉尼亚理工大学)的主题演讲集中在调试和验证并发程序的基于约束的分析技术。研讨会论文涉及成分因果关系分析和广泛的因果推理应用,如概率模型的调试,问责制和责任,基于刘易斯反事实的实践中的危险分析,以及故障定位和修复。
2016-08-26 cs.AI cs.LO 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
Improving Debugging in Verification-Aware Languages Through Automated Fault Localization: A Case Study in Dafny
INESC TEC, Faculdade de Engenharia, Universidade do Porto(波尔图大学工程_faculdade_de_engenharia,INESC TEC)
本文以 Dafny 为例,对比基于状态与基于反例的自动故障定位方法,通过 MutDafny 与 DafnyBench 开展评估,发现基于反例的方法更优,结构化排序与多轨迹聚合可提升定位效果。
2026-08-10 cs.SE
CADET: Debugging and Fixing Misconfigurations using Counterfactual Reasoning
现代计算平台是高度可配置的,具有数千个交互配置。然而,配置这些系统具有挑战性。错误的配置可能会导致意外的非功能性故障。本文提出了CADET(Causal Toolkit的缩写),它使用户能够以原则性的方式及早识别、解释和修复非功能性故障的根本原因。CADET通过观察系统在不同配置下的性能建立因果模型。然后,它使用因果路径提取,然后在因果模型上进行反事实推理,以:(a)识别非功能性故障的根本原因,(b)估计各种可配置参数对性能目标的影响,以及(c)规定对相关配置选项的候选修复,以修复非功能性故障。我们在部署在3个NVIDIA Jetson片上系统上的5个高度可配置系统上评估了CADET。我们比较CADET与国家的最先进的配置优化和ML为基础的调试方法。实验结果表明,CADET可以找到有效的修复故障的多个非功能属性(最多)17%以上的准确性,28%以上的增益,和$40\times$的速度比其他基于ML的性能调试方法。与多目标优化方法相比,CADET可以找到修复(最多)$9\times$更快,具有相当或更好的性能增益。我们对NVIDIA论坛中报告的非功能性故障的案例研究表明,CADET可以在不到30分钟的时间内找到比专家建议更好的$14%$维修方法。
2021-03-08 cs.SE cs.SY eess.SY
Oracles That Cannot Fail: Anchoring and the Expectation That Moves With the Fault
该研究提出预言机锚定概念,以空中交通管制模拟器为对象,测量锚定对突变体检测的影响,发现重新锚定可恢复部分突变体,调整比较大小对恢复突变体作用显著。
2026-08-19 cs.SE
Hierarchical Fault Localization for Autonomous Driving Systems with Hypothesis Validation and Intent Analysis
KLSS, ISCAS Univ. of Chinese Academy of Sciences(中国科学院软件研究所)
针对自动驾驶系统故障难定位问题,提出HINT框架,通过假设验证和意图分析分两阶段进行分层故障定位,无需重新模拟,经在Apollo上评估,该框架在模块级诊断和代码级定位性能强,实际错误端到端准确率达77.8%。
2026-07-15 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
A Reduced Stochastic Model of Microservice Availability: Algorithms for Identification and Formal Analysis
Innopolis University(因诺波利斯大学)
提出基于随机连通性的形式化运行时可用性模型,通过服务依赖图、复制映射和概率度量分析微服务端点弹性,支持蒙特卡洛模拟和架构假设分析。
2026-10-26 cs.DC cs.PF 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
Towards Counterfactual Explanation and Assertion Inference for CPS Debugging
University of Michigan-Dearborn(密歇根大学迪尔伯恩分校)
本文提出DeCaF框架,通过反事实引导生成最小必要输入变化,推断可解释的断言条件,提升CPS调试的准确性和可解释性。
2026-04-09 cs.LG cs.SE cs.SY