一句话:提出模板引导的 concolic 测试,用在线学习自动获取可缩减搜索空间的输入模板,提升分支覆盖率与缺陷发现能力。
本文针对 concolic 测试中的路径爆炸问题提出模板引导的 concolic 测试。作者指出,仅依赖搜索启发式难以显著提升真实程序的分支覆盖率,因此希望以模板来补充已有技术。这里的模板是一个部分符号化的输入向量,其作用是约束和缩小符号执行的搜索空间;但如何选择合适的模板集合并不显然,且直接影响最终效果。为此,论文提出一种在线学习算法,利用此前 concolic 测试运行中收集的数据自动学习有用的模板,从而在测试过程中动态改进搜索。作者在多个开源程序上进行了实验,结果显示该方法相比传统 concolic 测试取得了更高的分支覆盖率,并能更有效地发现程序缺陷。
We present template-guided concolic testing, a new technique for effectively reducing the search space in concolic testing. Addressing the path-explosion problem has been a significant challenge in concolic testing. Diverse search heuristics have been proposed to mitigate this problem but using search heuristics alone is not sufficient to substantially improve code coverage for real-world programs. The goal of this paper is to complement existing techniques and achieve higher coverage by exploiting templates in concolic testing. In our approach, a template is a partially symbolized input vector whose job is to reduce the search space. However, choosing a right set of templates is nontrivial and significantly affects the final performance of our approach. We present an algorithm that automatically learns useful templates online, based on data collected from previous runs of concolic testing. The experimental results with open-source programs show that our technique achieves greater branch coverage and finds bugs more effectively than conventional concolic testing.
DOI 原文 ·
@inproceedings{paperbot4794,
title = {Template-guided concolic testing via online learning},
author = {Sooyoung Cha and Seonho Lee and Hakjoo Oh},
booktitle = {ASE},
year = {2018},
doi = {10.1145/3238147.3238227}
}