自动化定制化缺陷基准生成
软件工程
2019-09-10 v2 编程语言
摘要
我们介绍 Bug-Injector,一个自动创建用于静态分析工具定制化评估的基准的系统。我们分享一个使用 Bug-Injector 生成的基准,并通过用它评估两个领先开源静态分析工具 Clang Static Analyzer 与 Infer 的召回率来说明其有效性。Bug-Injector 通过将基于缺陷模板的缺陷插入真实世界宿主程序来工作。它在宿主程序上运行测试以收集动态迹,在迹中搜索状态满足某缺陷模板前置条件的点,然后修改宿主程序以基于该模板注入一个缺陷。被注入的缺陷用作静态分析工具评估基准中的测试用例。每个测试用例都附带一个能触发被注入缺陷的程序输入。我们已识别出缺陷基准广泛的需求与期望;我们的方法生成满足这些需求的按需测试基准。它还允许我们创建适用于评估特定用例(例如,给定代码库与缺陷类型集合)工具的定制化基准。我们的实验评估证明了所生成基准对于评估静态缺陷检测工具与比较不同工具性能上的适用性。
引用
@article{arxiv.1901.02819,
title = {Automated Customized Bug-Benchmark Generation},
author = {Vineeth Kashyap and Jason Ruchti and Lucja Kot and Emma Turetsky and Rebecca Swords and Shih An Pan and Julien Henry and David Melski and Eric Schulte},
journal= {arXiv preprint arXiv:1901.02819},
year = {2019}
}