This paper introduces DDMIN-LOC, a technique that combines Delta Debugging Minimization (DDMIN) with Spectrum-Based Fault Localization (SBFL). It can be applied to programs taking string inputs, even when only a single failure-inducing input is available. DDMIN is an algorithm that systematically explores the minimal failure-inducing input that exposes a bug, given an initial failing input. However, it does not provide information about the faulty statements responsible for the failure. DDMIN-LOC addresses this limitation by collecting the passing and failing inputs generated during the DDMIN process and computing suspiciousness scores for program statements and predicates using SBFL algorithms. These scores are then combined to rank statements according to their likelihood of being faulty. DDMIN-LOC requires only one failing input of the buggy program, although it can be applied only to programs that take string inputs. DDMIN-LOC was evaluated on 136 programs selected from the QuixBugs and Codeflaws benchmarks using the SBFL algorithms Tarantula, Ochiai, GenProg, Jaccard and DStar. Experimental results show that DDMIN-LOC performs best with Jaccard: in most subjects, fewer than 20% executable lines need to be examined to locate the faulty statements. Moreover, in most subjects, faulty statements are ranked within the top 3 positions in all the generated test suites derived from different failing inputs.


翻译:本文介绍了DDMIN-LOC技术,该技术将Delta调试最小化(DDMIN)与基于频谱的故障定位(SBFL)相结合。该方法适用于接收字符串输入的程序,即使仅存在单个引发故障的输入时也可应用。DDMIN是一种在给定初始失败输入的情况下,系统性地探索能暴露缺陷的最小故障诱发输入的算法。然而,该算法无法提供导致故障的错误语句信息。DDMIN-LOC通过收集DDMIN过程中生成的通过和失败输入,并利用SBFL算法计算程序语句和谓词的可疑度评分,从而解决了这一局限性。这些评分将被整合,以根据语句存在缺陷的可能性对其进行排序。DDMIN-LOC仅需错误程序的一个失败输入,但仅适用于接收字符串输入的程序。本研究从QuixBugs和Codeflaws基准测试中选取136个程序,使用Tarantula、Ochiai、GenProg、Jaccard和DStar等SBFL算法对DDMIN-LOC进行了评估。实验结果表明,DDMIN-LOC与Jaccard算法配合时表现最佳:在大多数实验对象中,仅需检查少于20%的可执行代码行即可定位错误语句。此外,在大多数实验对象中,错误语句在不同失败输入衍生的所有测试套件中均位列前三名。

0
下载
关闭预览

相关内容

在数学和计算机科学之中,算法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。 来自维基百科: 算法
【CVPR2025】在去噪扩散模型中优化最短路径
专知会员服务
16+阅读 · 2025年3月10日
【ICLR2025】DynaPrompt:动态测试时提示调优
专知会员服务
10+阅读 · 2025年2月2日
《利用近端策略优化估计最佳飞行轨迹》最新140页
专知会员服务
21+阅读 · 2024年11月14日
【ICML 2024】零阶优化器微调大模型,大幅降低内存
专知会员服务
32+阅读 · 2024年7月8日
软件多缺陷定位方法研究综述
专知会员服务
22+阅读 · 2022年1月25日
专知会员服务
31+阅读 · 2020年12月21日
【PHM算法】PHM算法 | 故障诊断建模方法
产业智能官
68+阅读 · 2020年3月16日
【学界】DeepMind论文:深度压缩感知,新框架提升GAN性能
GAN生成式对抗网络
14+阅读 · 2019年5月23日
自定义损失函数Gradient Boosting
AI研习社
14+阅读 · 2018年10月16日
【工业智能】电网故障诊断的智能技术
产业智能官
34+阅读 · 2018年5月28日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Arxiv
0+阅读 · 1月1日
VIP会员
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员