Dynamic symbolic execution (DSE) is a powerful test generation approach based on an exploration of the path space of the program under test. Well-adapted for path coverage, this approach is however less efficient for conditions, decisions, advanced coverage criteria (such as multiple conditions, weak mutations, boundary testing) or user-provided test objectives. While theoretical solutions to adapt DSE to a large set of criteria have been proposed, they have never been integrated into publicly available testing tools. This paper presents a first integration of an optimized test generation strategy for advanced coverage criteria into a popular open-source testing tool based on DSE, namely, Klee. The integration is performed in a fully black-box manner, and can therefore inspire an easy integration into other similar tools. The resulting version of the tool is publicly available. We present the design of the proposed technique and evaluate it on several benchmarks. Our results confirm the benefits of the proposed tool for advanced coverage criteria.
翻译:动态符号执行(DSE)是一种强大的测试生成方法,它基于对测试中程序路径空间的探索。在路径覆盖方面适应得当,但对于条件、决定、高级覆盖标准(如多重条件、弱变异、边界测试)或用户提供的测试目标而言,这种方法效率较低。虽然提出了使DSE适应大量标准的理论解决方案,但从未被纳入公开提供的测试工具。本文件首次将高级覆盖标准最佳测试生成战略纳入基于DSE(Klee)的开放源测试工具。整合以完全黑箱方式进行,因此能够促进很容易地融入其他类似工具。由此产生的工具版本是公开的。我们介绍了拟议技术的设计,并根据若干基准进行了评估。我们的结果证实了拟议高级覆盖标准工具的效益。