paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Model-Guided Fuzzing of Distributed Systems

模型引导的分布式系统模糊测试
OOPSLA 9(OOPSLA2)2025匹配度 2/10 · 该论文聚焦于用 TLA+ 形式模型引导分布式系统模糊测试,属于形式化方法与测试/调试交叉;它不涉及 LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析,与用户画像的核心交叉方向匹配度很低。引用 2 inbox
Ege Berkay Gulcan, Burcu Kulahcioglu Ozkan, Rupak Majumdar, Srinidhi Nagendra
crossref: 2026-09-10

AI 速览

一句话:提出以 TLA+ 抽象形式模型覆盖率为引导的分布式系统模糊测试算法,更快发现更多缺陷。

分布式系统实现的状态空间巨大,纯随机测试难以触及协议设计者关心的关键状态。本文提出覆盖率引导的测试算法,核心创新是用系统在协议设计早期常被构建的抽象形式模型来定义覆盖率。作者以 TLA+ 编写抽象模型并实现模糊测试器,用模型覆盖率引导随机测试生成,以覆盖实现状态空间中有意义的点。在 Two-Phase Commit、Etcd-raft 与 RedisRaft 等共识协议实现上的评估表明,相较纯随机探索和基于不同调度器覆盖率与变异概念的随机探索,该方法持续获得更高覆盖率并更快发现缺陷,共发现 12 个此前未知的缺陷,其中 4 个只能由模型引导的模糊测试检出。

问题
分布式系统实现的状态空间庞大,随机测试难以覆盖协议设计者所关心的关键状态;早期验证阶段构建的抽象模型通常未用于测试。
方法
用系统抽象形式模型(TLA+ 编写)定义覆盖率,以此引导随机测试生成,并实现面向分布式系统实现与抽象模型的模糊测试器。
评估
在 Two-Phase Commit 以及 Etcd-raft、RedisRaft 的 Raft 实现上,与纯随机探索及基于调度器覆盖率和变异的随机探索对比覆盖率与缺陷发现速度,共发现 12 个新缺陷,其中 4 个仅由模型引导方法检出。
原文摘要(Abstract)

We present a coverage-guided testing algorithm for distributed systems implementations. Our main innovation is the use of an abstract formal model of the system that is used to define coverage. Such abstract models are frequently developed in the early phases of protocol design and verification but are infrequently used at testing time. We show that guiding random test generation using model coverage can be effective in covering interesting points in the implementation state space. We have implemented a fuzzer for distributed system implementations and abstract models written in TLA+. Our algorithm achieves better coverage over purely random exploration as well as random exploration guided by different notions of scheduler coverage and mutation. In particular, we show consistently higher coverage on implementations of distributed consensus protocols such as Two-Phase Commit and the Raft implementations in Etcd-raft and RedisRaft and detect bugs faster. Moreover, we discovered 12 previously unknown bugs in their implementations, four of which could only be detected by model-guided fuzzing.

链接与引用

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

BibTeX
@article{paperbot3004,
  title = {Model-Guided Fuzzing of Distributed Systems},
  author = {Ege Berkay Gulcan and Burcu Kulahcioglu Ozkan and Rupak Majumdar and Srinidhi Nagendra},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA2},
  year = {2025},
  doi = {10.1145/3763060}
}