gpt4 book ai didi

unit-testing - 如何对伪随机数生成器进行单元测试?

转载 作者:行者123 更新时间:2023-12-03 08:54:04 26 4
gpt4 key购买 nike

我有一个要进行单元测试的伪随机数生成器(PRNG)类。有两种方法:

  • 编写一个测试案例,该案例需要大量样本并测试它们是否正确分发。这种方法可能导致测试用例的执行时间很长。
  • “手工”计算少量样本,并验证PRNG算法是否重现了该样本。这种方法可能会导致生成非随机序列而不会引起注意;

  • 我要说的第一种方法并不是真正的单元测试,因为它不执行生成器的白盒测试,但是另一方面,它可以正确地测试类的职责。第二种方法更像是真实的单元测试,重点在于算法,但是它不能提供有关类是否履行职责的足够证据。

    您更喜欢哪种方法,为什么?

    最佳答案

    获得相同PRNG算法的另一种实现,根据已知的种子生成少量的冗长的测试用例,并验证该算法的实现是否与其他所有人的实现都匹配。您测试的数据越多,机会就越大。如果您想当真,请研究如何对算法进行FIPS验证。

    无需测试输出是否是随机的,因为其他人对该算法的研究远远超出了您能够复制的能力。

    如果您发明了自己的PRNG算法,那么您将面临一个完全不同的问题,因为除了测试代码之外,您还需要测试新算法。有很多事情要做-我认为最重要的是对输出进行统计测试,并由其他密码学家进行同行审查。但是,从根本上说,如果您在设计PRNG算法时没有足够的专业知识来测试它,那将是垃圾。

    关于unit-testing - 如何对伪随机数生成器进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/186619/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com