有没有一种健全的方法来对随机过程进行单元测试?例如,假设您已经为特定系统模型编写了模拟器。模拟器根据 rngs 的种子随机工作,因此无法预测系统的状态,如果可以,则每次测试都应在尝试测试类的任何方法之前将系统置于特定状态。有一个更好的方法吗?
问问题
1675 次
5 回答
7
两个明显的选择是消除随机性(即,为单元测试使用固定的已知种子并从那里开始),或进行统计测试(即,运行相同的测试用例一百万次并验证均值和方差(等)符合预期)。后者可能是对您系统的更好测试,但您将不得不忍受一些误报。
于 2010-07-25T10:46:15.233 回答
4
这是一篇很好的博客文章,涵盖了这个主题。基本上,您需要将受控随机性注入到被测对象中。
于 2010-07-25T10:07:44.893 回答
1
也许你可以使用 JUnitTheories
来解决这个问题。
于 2010-07-25T10:11:23.623 回答
0
如果您的模型是随机的,那么您可以将输出视为随机生成的样本。然后,在您的单元测试功能中,您可以使用置信区间执行某种假设测试。如果测试输出在置信范围内,则测试成功。但是,将有可能产生假阳性/假阴性。
于 2021-07-01T20:32:39.313 回答
0
您需要找到系统的 Q0 和 p00。p00 是预测状态,而 qo 是计算状态。预测状态可以导致找到循环系统,它是最小值,比如系统中的 k。
于 2021-02-13T15:12:40.033 回答