Shadow Symbolic Execution for Testing Software Patches

Shadow Symbolic Execution for Testing Software Patches
复制标题

用于测试软件补丁的影子符号执行

DOI:
10.1145/3208952
复制
发表时间:
2018
影响因子:
4.4
通讯作者:
Kuchta T
Kuchta T
中科院分区:
计算机科学1区
文献类型:
--
作者:
Kuchta T

文献摘要

参考文献

被引文献

相似文献

虽然开发人员意识到全面测试补丁的重要性,但在提出相关测试用例时所涉及的大量工作意味着这种测试在实践中很少发生。此外,即使编写测试用例来覆盖补丁,它们也经常在旧版本和新版本的代码中执行相同的行为。在这篇文章中,我们提出了一个符号执行为基础的技术,旨在生成测试输入,涵盖了新的程序行为引入的补丁。该技术的工作原理是在同一个符号执行实例中执行旧版本和新版本,旧版本跟踪新版本。在这个组合的影子执行期间,每当到达旧版本和新版本分歧的分支点时,我们生成一个测试输入,执行分歧并全面测试新版本的新行为。我们评估我们的技术的Coreutils补丁从回归错误的CoreBench套件,并表明它能够生成测试输入,行使新添加的行为,并暴露一些回归错误。
While developers are aware of the importance of comprehensively testing patches, the large effort involved in coming up with relevant test cases means that such testing rarely happens in practice. Furthermore, even when test cases are written to cover the patch, they often exercise the same behaviour in the old and the new version of the code. In this article, we present a symbolic execution-based technique that is designed to generate test inputs that cover the new program behaviours introduced by a patch. The technique works by executing both the old and the new version in the same symbolic execution instance, with the old version shadowing the new one. During this combined shadow execution, whenever a branch point is reached where the old and the new version diverge, we generate a test input exercising the divergence and comprehensively test the new behaviours of the new version. We evaluate our technique on the Coreutils patches from the CoREBench suite of regression bugs, and show that it is able to generate test inputs that exercise newly added behaviours and expose some of the regression bugs.
DOI: 10.1109/ase.2017.8115670
发表时间: 2017-10
期刊: 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)
影响因子: --
作者:
D. Liew;Daniel Schemmel;Cristian Cadar;Alastair F. Donaldson;Rafael Zähl;Klaus Wehrle
通讯作者: D. Liew;Daniel Schemmel;Cristian Cadar;Alastair F. Donaldson;Rafael Zähl;Klaus Wehrle
影子符号执行可以更好地测试不断发展的软件
DOI: 10.1145/2591062.2591104
发表时间: 2014
期刊: --
影响因子: --
作者:
Cadar C
通讯作者: Cadar C
使用 Java PathFinder 进行影子符号执行
DOI: --
发表时间: 2018
期刊: SOEN
影响因子: --
作者:
Yannic Noller;Hoang Lam Nguyen;Minxing Tang;Timo Kehrer
通讯作者: Timo Kehrer
怀疑的阴影:测试软件版本之间的差异
DOI: --
发表时间: 2016
期刊: International Conference on Software Engineering
影响因子: --
作者:
H. Palikareva;Tomasz Kuchta;Cristian Cadar
通讯作者: Cristian Cadar
Tachyon:用于高效实时补丁测试的串联执行
DOI: --
发表时间: 2012
期刊: USENIX Security Symposium
影响因子: --
作者:
Matthew Maurer;David Brumley
通讯作者: David Brumley