一句话:介绍基于规约的 Fandango 测试生成器,通过规格文件系统生成复杂输入与交互序列。
即使在 AI 时代,为软件系统生成全面测试输入仍具挑战,交互式和反应式系统尤其需要完整交互序列才能达到目标状态或覆盖缺失行为。现代 fuzzer 擅长随机输入和鲁棒性测试,却难以生成或变异复杂输入与交互;基于 LLM 的系统能生成小型示例,但无法系统探索输入空间。本教程介绍 Fandango,一种基于规约的测试输入与交互生成器。它依据定义程序输入结构与属性的 spec 文件,产生语法和语义正确的输入,并系统覆盖被测程序的输入空间。教程分三个交互环节:语言测试、用约束定义期望属性、以及协议测试,生成 Fandango 与被测网络组件之间的完整交互序列。参与者将学会指定输入与交互格式、生成全面测试套件,并理解语言测试的权衡与实践应用。
Even in the age of AI, generating comprehensive test inputs for software systems remains a challenge, particularly for interactive and reactive systems, which require entire interaction sequences to reach the desired states or to cover missing behavior. While modern fuzzers are effective at generating random inputs that test the robustness of input processors, they still struggle to produce or mutate complex inputs and interactions. LLM-based systems, on the other hand, can generate small example inputs, but fail to systematically explore the space of inputs and interactions as would be required for comprehensive testing. In this tutorial, we introduce test generation with fandango, a modern specification-based generator of test inputs and interactions. Based on a spec file that defines the structure and properties of the program input, fandango produces inputs that are syntactically and semantically correct, and systematically cover the input space of the program under test. In three interactive sessions, we (1) introduce language-based testing, (2) demonstrate how to use constraints to define desired properties, and then (3) delve into full-fledged protocol testing, producing entire interaction sequences between fandango and the network components under test. Participants are expected to bring a basic understanding of software testing; knowledge of python is a plus, but not required. At the end of the tutorial, they will (1) be able to specify and test formats for inputs and interactions, (2) produce comprehensive test suites using language-based techniques, and (3) understand the trade-offs and practical applications of language-based testing.
@inproceedings{AmayaLSZ26,
title = {Generating Test Inputs and Interactions with the Fandango Fuzzer: How to Test Complex Systems Automatically and Exhaustively},
author = {Jose Antonio Zamudio Amaya and Alexander Liggesmeyer and Marius Smytzek and Andreas Zeller},
booktitle = {FSE},
year = {2026},
doi = {10.1145/3803437.3804899}
}