Grammar-based test generators are highly efficient in producing syntactically valid test inputs, and give their user precise control over which test inputs should be generated. Adapting a grammar or a test generator towards a particular testing goal can be tedious, though. We introduce the concept of a grammar transformer, specializing a grammar towards inclusion or exclusion of specific patterns: “The phone number must not start with 011 or +1”. To the best of our knowledge, ours is the first approach to allow for arbitrary Boolean combinations of patterns, giving testers unprecedented flexibility in creating targeted software tests. The resulting specialized grammars can be used with any grammar-based fuzzer for targeted test generation, but also as validators to check whether the given specialization is met or not, opening up additional usage scenarios. In our evaluation on real-world bugs, we show that specialized grammars are accurate both in producing and validating targeted inputs.
History
Preferred Citation
Rahul Gopinath, Hamed Nemati and Andreas Zeller. Input Algebras. In: International Conference on Software Engineering (ICSE). 2021.
Primary Research Area
Secure Connected and Mobile Systems
Name of Conference
International Conference on Software Engineering (ICSE)
Legacy Posted Date
2020-09-08
Open Access Type
Unknown
BibTeX
@inproceedings{cispa_all_3208,
title = "Input Algebras",
author = "Gopinath, Rahul and Nemati, Hamed and Zeller, Andreas",
booktitle="{International Conference on Software Engineering (ICSE)}",
year="2021",
}