ARDiff: scaling program equivalence checking via iterative abstraction and refinement of common code

ARDiff: scaling program equivalence checking via iterative abstraction and refinement of common code
复制标题

ARDiff:通过迭代抽象和通用代码的细化来扩展程序等价性检查

DOI:
--
复制
发表时间:
2020
期刊:
ESEC/SIGSOFT FSE
影响因子:
--
通讯作者:
J. Rubin
J. Rubin
中科院分区:
--
文献类型:
--
作者:
Sahar Badihi;Faridah Akinotcho;Yi Li;J. Rubin

文献摘要

参考文献

被引文献

相似文献

等效检查技术有助于建立两个程序的行为是否表现出相同的行为。由于复杂的编程结构,例如循环和非线性算术,因此很难在实践中进行符号执行提议一种名为Ardiff的方法,用于改善基于符号执行的等效检查技术的可扩展性,比较程序的句法相似版本,例如,以验证代码升级的正确性和我的方法的正确性。启发式方法可以在分析过程中有效地修剪版本的常见代码的哪些部分,从而在不牺牲其有效性的情况下降低了分析的复杂性设计一个新的等价检查基准,以一组包含复杂数学功能和循环的现实生活方法扩展现有基准,我们评估了Ardiff在此基准测试中的有效性和效率同等案例的所有等效案例中的86%和55%的同等案例为47%至69%,非等效案件为38%至52%相关工作的案例。
Equivalence checking techniques help establish whether two versions of a program exhibit the same behavior. The majority of popular techniques for formally proving/refuting equivalence relies on symbolic execution – a static analysis approach that reasons about program behaviors in terms of symbolic input variables. Yet, symbolic execution is difficult to scale in practice due to complex programming constructs, such as loops and non-linear arithmetic. This paper proposes an approach, named ARDiff, for improving the scalability of symbolic-execution-based equivalence checking techniques when comparing syntactically-similar versions of a program, e.g., for verifying the correctness of code upgrades and refactoring. Our approach relies on a set of novel heuristics to determine which parts of the versions’ common code can be effectively pruned during the analysis, reducing the analysis complexity without sacrificing its effectiveness. Furthermore, we devise a new equivalence checking benchmark, extending existing benchmarks with a set of real-life methods containing complex math functions and loops. We evaluate the effectiveness and efficiency of ARDiff on this benchmark and show that it outperforms existing method-level equivalence checking techniques by solving 86% of all equivalent and 55% of non-equivalent cases, compared with 47% to 69% for equivalent and 38% to 52% for non-equivalent cases in related work.
影子符号执行可以更好地测试不断发展的软件
DOI: 10.1145/2591062.2591104
发表时间: 2014
期刊: --
影响因子: --
作者:
Cadar C
通讯作者: Cadar C