CFaults:针对含多个测试用例的C程序故障定位的基于模型的诊断方法
CFaults: Model-Based Diagnosis for Fault Localization in C Programs with Multiple Test Cases
AI总结:
针对现有基于公式的故障定位方法存在多测试下诊断不一致、易生成冗余结果的问题,本文提出CFaults方法,结合多观测MBD与统一MaxSAT公式实现多故障C程序定位,实验证明其速度更快且仅生成子集最小诊断。
摘要:
调试是软件开发中最耗时、成本最高的任务之一。目前已有多种基于公式的故障定位(FBFL)方法被提出,但这些方法无法保证在所有失败测试中得到一致的诊断集,还可能生成不满足子集最小性的冗余诊断,尤其在存在多故障的程序中问题更突出。\n 本文提出了一种面向多故障C程序的新型故障定位方法CFaults。该方法结合多观测的基于模型的诊断(MBD)技术,将所有失败测试用例聚合为统一的MaxSAT公式,由此保证了不同观测间的一致性,简化了故障定位流程。在TCAS和C-Pack-IPAs两个C程序基准测试集上的实验结果表明,CFaults的运行速度快于BugAssist、SNIPER等其他FBFL方法;此外,CFaults仅生成故障语句的子集最小诊断,而对比方法往往会枚举冗余诊断。
英文摘要:
Debugging is one of the most time-consuming and expensive tasks in software development. Several formula-based fault localization (FBFL) methods have been proposed, but they fail to guarantee a set of diagnoses across all failing tests or may produce redundant diagnoses that are not subset-minimal, particularly for programs with multiple faults. This paper introduces a novel fault localization approach for C programs with multiple faults. CFaults leverages Model-Based Diagnosis (MBD) with multiple observations and aggregates all failing test cases into a unified MaxSAT formula. Consequently, our method guarantees consistency across observations and simplifies the fault localization procedure. Experimental results on two benchmark sets of C programs, TCAS and C-Pack-IPAs, show that CFaults is faster than other FBFL approaches like BugAssist and SNIPER. Moreover, CFaults only generates subset-minimal diagnoses of faulty statements, whereas the other approaches tend to enumerate redundant diagnoses.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。