Growing a Test Corpus with Bonsai Fuzzing

Growing a Test Corpus with Bonsai Fuzzing
复制标题

DOI:
10.1109/icse43902.2021.00072
复制
发表时间:
2021-03
期刊:
2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)
影响因子:
--
通讯作者:
Vasudev Vikram;Rohan Padhye;Koushik Sen
Vasudev Vikram;Rohan Padhye;Koushik Sen
中科院分区:
其他
文献类型:
--
作者:
Vasudev Vikram;Rohan Padhye;Koushik Sen

文献摘要

相似文献

本文提出了一种基于覆盖引导的基于语法的模糊测试技术,用于自动合成简洁的测试输入语料库。我们详细介绍了一个为教育而设计的编译器的案例研究,以及为学生生成有意义的测试用例的相关问题。先前最先进的解决方案是模糊测试和测试用例约简技术(如增量调试的变体)的结合。我们的关键见解是,我们不必试图最小化复杂的模糊器生成的测试输入,而是可以通过一种迭代深化的形式通过构造来生成简洁的测试输入。我们将这种方法称为盆景模糊测试。实验结果表明,与先模糊后约简的方法相比,盆景模糊测试生成的测试语料库的输入平均尺寸小16 - 45%,同时实现了大致相同的代码覆盖和故障检测能力。
This paper presents a coverage-guided grammar-based fuzzing technique for automatically synthesizing a corpus of concise test inputs. We walk-through a case study of a compiler designed for education and the corresponding problem of generating meaningful test cases to provide to students. The prior state-of-the-art solution is a combination of fuzzing and test-case reduction techniques such as variants of delta-debugging. Our key insight is that instead of attempting to minimize convoluted fuzzer-generated test inputs, we can instead grow concise test inputs by construction using a form of iterative deepening. We call this approach bonsai fuzzing. Experimental results show that bonsai fuzzing can generate test corpora having inputs that are 16–45% smaller in size on average as compared to a fuzz-then-reduce approach, while achieving approximately the same code coverage and fault-detection capability.