Unit testing 随机过程的单元测试?
有没有一种合理的方法对随机过程进行单元测试?例如,假设您为特定的系统模型编写了一个模拟器。模拟器根据RNG的种子随机工作,因此无法预测系统的状态,如果可以,每次测试都应在尝试测试类的任何方法之前将系统置于特定状态。有更好的方法吗?这里有一个例子介绍了这个主题。基本上,您需要将受控随机性注入测试对象。也许您可以使用JUnitUnit testing 随机过程的单元测试?,unit-testing,simulation,stochastic-process,Unit Testing,Simulation,Stochastic Process,有没有一种合理的方法对随机过程进行单元测试?例如,假设您为特定的系统模型编写了一个模拟器。模拟器根据RNG的种子随机工作,因此无法预测系统的状态,如果可以,每次测试都应在尝试测试类的任何方法之前将系统置于特定状态。有更好的方法吗?这里有一个例子介绍了这个主题。基本上,您需要将受控随机性注入测试对象。也许您可以使用JUnit理论来解决这个问题 两个明显的选择是消除随机性(即,使用固定的已知种子进行单元测试并从中继续),或进行统计测试(即,运行相同的测试用例一百万次,并验证均值和方差(等)是否符合预
理论来解决这个问题
两个明显的选择是消除随机性(即,使用固定的已知种子进行单元测试并从中继续),或进行统计测试(即,运行相同的测试用例一百万次,并验证均值和方差(等)是否符合预期)。后者可能是对系统更好的测试,但您将不得不面对一些错误警报。您需要找到系统的Q0和p00。p00为预测状态,而qo为
计算状态。预测状态可导致找到循环系统
最小值,例如系统中的k。固定种子方法的一个缺点可能是,如果您更改正在测试的算法,使其对随机生成器执行更多调用(或更少调用),那么您还必须再次修复单元测试以满足此更改。