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, named Klee4labels, 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。整合以完全黑箱方式进行,因此能够促进很容易地融入其他类似工具。由此产生的工具版本名为Klee4 lables,可供公众使用。我们介绍了拟议技术的设计,并按几个基准对其进行评估。我们的结果证实了所拟议的高级覆盖标准工具的好处。