Send email Copy Email Address
2026-07-05

Generating Test Inputs and Interactions with the Fandango Fuzzer:
How to Test Complex Systems Automatically and Exhaustively

Summary

Even in the age of AI, generating comprehensive test inputs forsoftware systems remains a challenge, particularly for interactiveand reactive systems, which require entire interaction sequencesto reach the desired states or to cover missing behavior. Whilemodern fuzzers are effective at generating random inputs that testthe robustness of input processors, they still struggle to produceor mutate complex inputs and interactions. LLM-based systems,on the other hand, can generate small example inputs, but fail tosystematically explore the space of inputs and interactions as wouldbe required for comprehensive testing.In this tutorial, we introduce test generation with FANDANGO, amodern specification-based generator of test inputs and interac-tions. Based on a spec file that defines the structure and propertiesof the program input, FANDANGO produces inputs that are syntacti-cally and semantically correct, and systematically cover the inputspace of the program under test. In three interactive sessions, we(1) introduce language-based testing, (2) demonstrate how to useconstraints to define desired properties, and then (3) delve into ful-l-fledged protocol testing, producing entire interaction sequencesbetween FANDANGO and the network components under test.Participants are expected to bring a basic understanding of soft-ware testing; knowledge of PYTHON is a plus, but not required. Atthe end of the tutorial, they will (1) be able to specify and test for-mats for inputs and interactions, (2) produce comprehensive testsuites using language-based techniques, and (3) understand thetrade-offs and practical applications of language-based testing.

Conference Paper

Conferences: European Software Engineering Conference and Symposium on the Foundations of Software Engineering (FSE companion)

Date published

2026-07-05

Date last modified

2026-07-22