paperbot · PL 论文追踪

全部论文 待读 收藏

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

使用 Fandango Fuzzer 生成测试输入与交互:如何自动且详尽地测试复杂系统
FSE Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering2026匹配度 3/10 · 论文是基于规约(语法/DSL)的测试输入与交互序列生成器 Fandango 的教程,属于软件测试与语言工程范畴,与用户核心方向(静态分析、LLM/Agent 与程序分析交叉、浮点分析、贝叶斯程序分析)只有边缘关联:既非静态分析,也未涉及 LLM/Agent 交叉或浮点/概率程序分析。仅其'规约驱动系统性覆盖输入空间'与用户对形式化+工程化工具的兴趣有轻微交集。引用 0 inbox
Jose Antonio Zamudio Amaya, Alexander Liggesmeyer, Marius Smytzek, Andreas Zeller
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:介绍基于规约的 Fandango 测试生成器,通过规格文件系统生成复杂输入与交互序列。

即使在 AI 时代,为软件系统生成全面测试输入仍具挑战,交互式和反应式系统尤其需要完整交互序列才能达到目标状态或覆盖缺失行为。现代 fuzzer 擅长随机输入和鲁棒性测试,却难以生成或变异复杂输入与交互;基于 LLM 的系统能生成小型示例,但无法系统探索输入空间。本教程介绍 Fandango,一种基于规约的测试输入与交互生成器。它依据定义程序输入结构与属性的 spec 文件,产生语法和语义正确的输入,并系统覆盖被测程序的输入空间。教程分三个交互环节:语言测试、用约束定义期望属性、以及协议测试,生成 Fandango 与被测网络组件之间的完整交互序列。参与者将学会指定输入与交互格式、生成全面测试套件,并理解语言测试的权衡与实践应用。

问题
交互式和反应式系统需要完整交互序列才能有效测试,而现代 fuzzer 与基于 LLM 的方法难以系统生成、变异和探索复杂输入与交互空间。
方法
教程围绕 Fandango,使用 spec 文件定义输入结构与属性,并通过语言测试、约束定义和协议测试自动生成语法语义正确且系统覆盖输入空间的输入与交互序列。
评估
通过三个交互式教程环节演示语言测试、约束使用和完整协议测试,并以参与者能否指定测试格式、生成全面测试套件和理解权衡来体现效果。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@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}
}