一句话:提出 CONBRIO,通过扩展单元构造真实上下文并用符号调用上下文过滤误报,实现精确的 C 程序 concolic 单元测试。
自动单元测试虽能减少编写驱动/桩与生成输入的人工成本,但自动生成的驱动/桩常会过度近似目标函数 f 的真实上下文,从而允许不可行执行并产生误报。为解决该问题,作者提出 concolic 单元测试技术 CONBRIO。为给 f 提供更真实的上下文,CONBRIO 构造由 f 及其紧密相关函数组成的扩展单元;同时,它通过组合 f 的紧密相关前驱函数的符号执行路径,获得 f 的符号调用上下文,并据此检查对应符号执行路径的可行性,从而过滤掉误报。该工作聚焦于提升自动单元测试的精确性,核心机制是扩展单元与符号告警过滤。
Automated unit testing reduces manual effort to write unit test drivers/stubs and generate unit test inputs. However, automatically generated unit test drivers/stubs raise false alarms because they often over-approximate real contexts of a target function f and allow infeasible executions of f. To solve this problem, we have developed a concolic unit testing technique CONBRIO. To provide realistic context to f, it constructs an extended unit of f that consists of f and closely relevant functions to f. Also, CONBRIO filters out a false alarm by checking feasibility of a corresponding symbolic execution path with regard to f's symbolic calling contexts obtained by combining symbolic execution paths of f's closely related predecessor functions.
DOI 原文 ·
@inproceedings{paperbot4394,
title = {Precise concolic unit testing of C programs using extended units and symbolic alarm filtering},
author = {Yunho Kim and Yunja Choi and Moonzoo Kim},
booktitle = {ICSE},
year = {2018},
doi = {10.1145/3180155.3180253}
}