mlsanityData to 14 Oct 2026

Semantic Fuzzing with Zest

arXiv 1812.00078 ↗First posted 30 Nov 2018cs.SEcited by 2

Not on the map. Why?

Abstract (arXiv)

Programs expecting structured inputs often consist of both a syntactic analysis stage, which parses raw input, and a semantic analysis stage, which conducts checks on the parsed input and executes the core logic of the program. Generator-based testing tools in the lineage of QuickCheck are a promising way to generate random syntactically valid test inputs for these programs. We present Zest, a technique which automatically guides QuickCheck-like randominput generators to better explore the semantic analysis stage of test programs. Zest converts random-input generators into deterministic parametric generators. We present the key insight that mutations in the untyped parameter domain map to structural mutations in the input domain. Zest leverages program feedback in the form of code coverage and input validity to perform feedback-directed parameter search. We evaluate Zest against AFL and QuickCheck on five Java programs: Maven, Ant, BCEL, Closure, and Rhino. Zest covers 1.03x-2.81x as many branches within the benchmarks semantic analysis stages as baseline techniques. Further, we find 10 new bugs in the semantic analysis stages of these benchmarks. Zest is the most effective technique in finding these bugs reliably and quickly, requiring at most 10 minutes on average to find each bug.

Key facts. Cited by 2 papers in the map (data through 14 Oct 2026). First posted on arXiv 30 Nov 2018.

Builds on

No reference list yet.

Built on by

Cited by year

Citing papers per year: 2024: 1; 2025: 1.

2 papers.