一句话:提出基于学习的语义 bug 播种,生成更真实的 bug,克服语法变换模式无法引入应用特定代码 token 的局限。
软件 bug 研究常需大量真实 bug 用于评估技术或构建基于学习的 bug 检测方法,但收集真实 bug 困难,因此常用自动播种 bug。已有方法多依赖语法变换模式,生成的 bug 往往不真实,且通常无法引入新的、应用特定代码 token。本文提出语义 bug 播种,一种基于学习的方法,旨在创建更真实的 bug,其思路是从语义层面而非仅语法变换来生成缺陷,从而更贴近真实程序中的 bug。摘要中未给出具体实现与实验数据,但该工作可用于 bug benchmark、程序变异及学习型 bug 检测等场景。
When working on techniques to address the wide-spread problem of software bugs, one often faces the need for a large number of realistic bugs in real-world programs. Such bugs can either help evaluate an approach, e.g., in form of a bug benchmark or a suite of program mutations, or even help build the technique, e.g., in learning-based bug detection. Because gathering a large number of real bugs is difficult, a common approach is to rely on automatically seeded bugs. Prior work seeds bugs based on syntactic transformation patterns, which often results in unrealistic bugs and typically cannot introduce new, application-specific code tokens.
DOI 原文 ·
@inproceedings{paperbot6343,
title = {Semantic bug seeding: a learning-based approach for creating realistic bugs},
author = {Jibesh Patra and Michael Pradel},
booktitle = {FSE},
year = {2021},
doi = {10.1145/3468264.3468623}
}