Testing Probabilistic Programming Systems

被引:36
|
作者
Dutta, Saikat [1 ]
Legunsen, Owolabi [1 ]
Huang, Zixin [1 ]
Misailovic, Sasa [1 ]
机构
[1] Univ Illinois, Chicago, IL 60680 USA
关键词
Probabilistic programming languages; Software Testing;
D O I
10.1145/3236024.3236057
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 propose ProbFuzz, an extensible system for testing PP systems. ProbFuzz 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 accuracy 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.
引用
收藏
页码:574 / 586
页数:13
相关论文
共 50 条
  • [1] Storm: Program Reduction for Testing and Debugging Probabilistic Programming Systems
    Dutta, Saikat
    Zhang, Wenxian
    Huang, Zixin
    Misailovic, Sasa
    [J]. ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 729 - 739
  • [2] Bug Patterns in Probabilistic Programming Systems
    Hamada, Shoma
    Yu, Haibo
    Vo Dai Trinh
    Nishimura, Yuri
    Zhao, Jianjun
    [J]. 2022 IEEE 22ND INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY, AND SECURITY COMPANION, QRS-C, 2022, : 384 - 391
  • [3] Testing theory for probabilistic systems
    Wolf, V
    [J]. MODEL-BASED TESTING OF REACTIVE SYSTEMS, 2005, 3472 : 233 - 275
  • [4] Testing Probabilistic Distributed Systems
    Hierons, Robert M.
    Nunez, Manuel
    [J]. FORMAL TECHNIQUES FOR DISTRIBUTED SYSTEMS, PROCEEDINGS, 2010, 6117 : 63 - +
  • [5] Customized testing for probabilistic systems
    Llana-Diaz, Luis F.
    Nunez, Manuel
    Rodríguez, Ismael
    [J]. TESTING OF COMMUNICATION SYSTEMS, PROCEEDINGS, 2006, 3964 : 87 - 102
  • [6] ProPPA: Probabilistic Programming for Stochastic Dynamical Systems
    Georgoulas, Anastasis
    Hillston, Jane
    Sanguinetti, Guido
    [J]. ACM TRANSACTIONS ON MODELING AND COMPUTER SIMULATION, 2018, 28 (01):
  • [7] Probabilistic Programming Languages for Modeling Autonomous Systems
    Shamsi, Seyed Mahdi
    Farina, Gian Pietro
    Gaboardi, Marco
    Napp, Nils
    [J]. 2020 IEEE INTERNATIONAL CONFERENCE ON MULTISENSOR FUSION AND INTEGRATION FOR INTELLIGENT SYSTEMS (MFI), 2020, : 32 - 39
  • [8] Probabilistic testing of asynchronously communicating systems
    Bhateja, Puneet
    [J]. 2021 28TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2021), 2021, : 503 - 508
  • [9] Probabilistic Testing for Stochastic Hybrid Systems
    Julius, A. Agung
    Pappas, George J.
    [J]. 47TH IEEE CONFERENCE ON DECISION AND CONTROL, 2008 (CDC 2008), 2008, : 4030 - 4035
  • [10] Formal Testing of Timed and Probabilistic Systems
    Nunez, Manuel
    [J]. TESTING SOFTWARE AND SYSTEMS, 2011, 7019 : 9 - 14