paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Testing probabilistic programming systems

测试概率编程系统
FSE Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2018匹配度 4/10 · 论文研究概率编程系统的缺陷表征与测试工具 ProbFuzz,与概率编程/PL 测试调试相关;但它属于动态测试与模糊测试,不涉及静态分析、LLM/Agent 或浮点/贝叶斯程序分析与 LLM 的交叉,因此只与研究方向有间接关联。引用 49 inbox
Saikat Dutta, Owolabi Legunsen, Zixin Huang, Sasa Misailovic
crossref: 2026-09-12

AI 速览

一句话:表征概率编程系统缺陷并提出可扩展测试工具 ProbFuzz,发现大量真实 bug。

概率编程系统(PP systems)可对随机现象建模并进行高效推断,其数量和应用快速增长,但此前缺少对其中 bug 的系统研究,也缺少系统化测试方法;近似推断尤其使测试困难。论文首先表征 Edward、Pyro 和 Stan 三个开源 PP 系统中的 118 个已报告 bug。作者提出 ProbFuzz,允许开发者指定概率模型模板,生成具体概率程序和数据,并用语言特定翻译器映射到各 PP 系统 API;随后用多个 oracle(含精度检查器)检查输出以发现潜在 bug。评估中,ProbFuzz 在近期版本发现 67 个此前未知 bug,提交后开发者已接受 51 个修复,涉及三个 PP 系统及底层 PyTorch 和 TensorFlow。

问题
此前缺乏对概率编程系统(PP systems)中 bug 的系统研究,也没有系统化测试方法;近似推断使测试尤为困难。
方法
对 Edward、Pyro、Stan 的 118 个 bug 进行表征,并提出 ProbFuzz:从模型模板生成程序与数据,经语言特定翻译器调用各 PP 系统 API,并用多个 oracle(含精度检查器)检测潜在 bug。
评估
在近期版本中发现 67 个未知 bug,其中 51 个修复已被开发者接受,覆盖三个 PP 系统及其底层 PyTorch 和 TensorFlow。
原文摘要(Abstract)

Probabilistic programming systems (PP systems) allow developers to model stochastic phenomena and perform efficient inference on the models. The number and adoption of probabilistic programming systems is growing significantly. However, there is no prior study of bugs in these systems and no methodology for systematically testing PP systems. Yet, testing PP systems is highly non-trivial, especially when they perform approximate inference. In this paper, we characterize 118 previously reported bugs in three open-source PP systems—Edward, Pyro and Stan—and pro- pose ProbFuzz, an extensible system for testing PP systems. Prob- Fuzz allows a developer to specify templates of probabilistic models, from which it generates concrete probabilistic programs and data for testing. ProbFuzz uses language-specific translators to generate these concrete programs, which use the APIs of each PP system. ProbFuzz finds potential bugs by checking the output from running the generated programs against several oracles, including an accu- racy checker. Using ProbFuzz, we found 67 previously unknown bugs in recent versions of these PP systems. Developers already accepted 51 bug fixes that we submitted to the three PP systems, and their underlying systems, PyTorch and TensorFlow.

链接与引用

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

BibTeX
@inproceedings{paperbot4620,
  title = {Testing probabilistic programming systems},
  author = {Saikat Dutta and Owolabi Legunsen and Zixin Huang and Sasa Misailovic},
  booktitle = {FSE},
  year = {2018},
  doi = {10.1145/3236024.3236057}
}