ProbTest: Unit Testing for Probabilistic Programs

Research output: Conference Article in Proceeding or Book/Report chapterArticle in proceedingsResearchpeer-review

Abstract

Testing probabilistic programs is non-trivial due to their stochastic nature. Given an input, the program may produce different outcomes depending on the underlying stochastic choices in the program. This means testing the expected outcomes of probabilistic programs requires repeated test executions unlike deterministic programs where a single execution may suffice for each test input. This raises the following question: how many times should we run a probabilistic program to effectively test it? This work proposes a novel black-box unit testing method, ProbTest, for testing the outcomes of probabilistic programs. Our method is founded on the theory surrounding a well-known combinatorial problem, the coupon collector’s problem. Using this method, developers can write unit tests as usual without extra effort while the number of required test executions is determined automatically with statistical guarantees for the results. We implement ProbTest as a plug-in for PyTest, a well-known unit testing tool for python programs. Using this plug-in, developers can write unit tests similar to any other Python program and the necessary test executions are handled automatically. We evaluate the method on case studies from the Gymnasium reinforcement learning library and a randomized data structure.
Original languageEnglish
Title of host publicationProceedings of 23rd International Conference on Software Engineering and Formal Methods (SEFM 2025)
Number of pages19
Volume16192
PublisherSpringer Nature Switzerland
Publication date12 Nov 2025
Pages91-109
ISBN (Print)978-3-032-10443-4
ISBN (Electronic)978-3-032-10444-1
DOIs
Publication statusPublished - 12 Nov 2025
EventSoftware Engineering and Formal Methods - Spain, Toledo, Spain
Duration: 12 Nov 202514 Nov 2025
Conference number: 23
https://sefm-conference.github.io/2025/

Conference

ConferenceSoftware Engineering and Formal Methods
Number23
LocationSpain
Country/TerritorySpain
CityToledo
Period12/11/202514/11/2025
Internet address
SeriesLNCS
Volume16192

Keywords

  • Probabilistic programming
  • Black-box unit testing
  • Coupon collector problem
  • Statistical guarantees
  • PyTest plugin

Fingerprint

Dive into the research topics of 'ProbTest: Unit Testing for Probabilistic Programs'. Together they form a unique fingerprint.

Cite this