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)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。 来自维基百科: 算法
IEEE TPAMI | 基于标注偏差估计的实例相关PU学习
专知会员服务
12+阅读 · 2021年10月23日
ICLR'21 | GNN联邦学习的新基准
图与推荐
12+阅读 · 2021年11月15日
【NeurIPS2019】图变换网络:Graph Transformer Network
NAACL 2019 | 一种考虑缓和KL消失的简单VAE训练方法
PaperWeekly
20+阅读 · 2019年4月24日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
VIP会员
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员