Saved in:
Bibliographic Details
Main Authors: Christensen, Katrine, Varshosaz, Mahsa, Pardo, Raúl
Format: Preprint
Published: 2025
Subjects:
Online Access:https://arxiv.org/abs/2509.02012
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866908515196469248
author Christensen, Katrine
Varshosaz, Mahsa
Pardo, Raúl
author_facet Christensen, Katrine
Varshosaz, Mahsa
Pardo, Raúl
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2509_02012
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle ProbTest: Unit Testing for Probabilistic Programs (Extended Version)
Christensen, Katrine
Varshosaz, Mahsa
Pardo, Raúl
Software Engineering
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.
title ProbTest: Unit Testing for Probabilistic Programs (Extended Version)
topic Software Engineering
url https://arxiv.org/abs/2509.02012