arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2104.09107cs.SE
收藏

因果程序依赖分析

Causal Program Dependence Analysis

Seongmin Lee, Dave Binkley, Robert Feldt, Nicolas Gold, Shin Yoo

摘要:

我们介绍因果程序依赖分析(CPDA),一个动态的依赖分析,应用因果推理模型的强度在一个连续的空间程序依赖关系。CPDA通过构造和执行程序的修改版本来观察程序元素之间的关联。CPDA的一个优点是这种构造只需要轻量级的解析,而不需要复杂的静态分析。结果是一组观察结果,这些观察结果基于一个变异的程序元素产生的值的变化影响其他元素的行为的频率。从这组观察中,CPDA发现了一个捕获因果关系的因果结构(即,依赖)关系。定性评价发现,CPDA简洁地表达了程序元素之间的关键依赖关系。作为一个例子,我们应用CPDA的故障定位问题。使用最小的测试套件,我们的方法可以排名两倍的故障相比,SBFL。

英文摘要:

We introduce Causal Program Dependence Analysis (CPDA), a dynamic dependence analysis that applies causal inference to model the strength of program dependence relations in a continuous space. CPDA observes the association between program elements by constructing and executing modified versions of a program. One advantage of CPDA is that this construction requires only light-weight parsing rather than sophisticated static analysis. The result is a collection of observations based on how often a change in the value produced by a mutated program element affects the behavior of other elements. From this set of observations, CPDA discovers a causal structure capturing the causal (i.e., dependence) relation between program elements. Qualitative evaluation finds that CPDA concisely expresses key dependence relationships between program elements. As an example application, we apply CPDA to the problem of fault localization. Using minimal test suites, our approach can rank twice as many faults compared to SBFL.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑