![f02eddd0f52717ed1aa08ffdfb1fe4e1.png](https://i-blog.csdnimg.cn/blog_migrate/42dc5ba65ab1d7aa644a9cbe087ae363.jpeg)
引用:Cameras D . Automated Test Generation Using Concolic Testing[J]. 2015.原文地址:https://dx.doi.org/10.1145/2723742.2723768
摘要
本文将讨论在Concolic测试和符号执行方面取得的最新进展和挑战。Concolic测试,也称为定向自动随机测试(DART)或动态符号执行,是一种自动、系统地为程序生成测试输入的有效方法。Concolic测试结合使用运行时符号执行和自动定理证明技术,自动生成非冗余和详尽的测试输入,激发了几个工业和学术自动化测试和安全工具的开发,如微软的PEX、SAGE和YOGI,IBM的Apollo,三星的Conbol,以及学术界的CUTE、jCUTE、CATG、Jalangi、SPLAT、BitBlaze、jFuzz、Oasis和SmartFuzz。
对于大型实际程序来说,Concolic测试技术的一个关键挑战是可扩展性——通常,程序的可行执行路径的数量会随着执行路径长度的增加而呈指数级增长。MultiSE作为一种在符号执行期间在不使用辅助变量的情况下进行合并状态的新技术,它的关键思想是基于状态的另一种表示,其中我们将每个变量(包括程序计数器)映射到一组称为Value- Summary值汇总的保守符号表达式。与传统的DSE和状态合并技术相比,MultiSE具有以下几个优点:1