![]() |
1
2
使用相同的输入创建多个单元测试,以比较两个实现的输出。 |
![]() |
2
5
您可以将问题分为边缘案例和随机样本。 边缘情况。CRC输入有两个变量,字节数和每个字节的值。因此,创建0、1和max_字节的数组,其值范围为0到max_字节_值。边缘案例套件将是您最可能希望保留在JUnit套件中的东西。 随机样本。使用上面的范围,在循环中随机生成的字节数组上运行crc。你让循环运行的时间越长,你消耗的输入越多。如果您的计算能力不足,请考虑将测试部署到EC2。 |
![]() |
3
2
CRC的一个很好的特性是,对于一组给定的参数(多项式、反射、初始状态等),在对原始数据集+原始CRC重新计算CRC时,会得到一个常量值。这些常量是为常见的CRC记录的,但是您可以使用两个不同的随机数据集盲目地生成它们,并检查它们是否相同:
您可以在一个实现中使用相同的方法,对其正确性有一种温暖的模糊感觉。如果您的实现使用任意多项式,您可以让UnitTest使用此方法彻底检查每个可能的多项式,而无需知道常数是什么。 这项技术很强大,但也应该添加一个独立的测试,根据病理情况的已知输入来验证结果,在这种情况下,您的CRC实现都会产生错误的结果,而这些结果恰好是通过恒定的等价性检查得到的。 |
![]() |
4
1
首先,如果它是一个标准的CRC实现,那么您应该能够在网络上的某个地方找到已知的值。 其次,您可以生成一些有效负载,并在有效负载上运行每个CRC,并检查CRC值是否匹配。 |
![]() |
5
0
通过为每个接受相同输入并对照预期输出进行验证的对象编写单元测试。 |
![]() |
Mark · 在带Browserstack的Intern中指定多个环境 6 年前 |
![]() |
sheodox · 实习生功能测试失败后如何清理? 7 年前 |
![]() |
Mark · 将geb登录规范重构到模块,导致“未初始化”错误 7 年前 |
![]() |
MoeSattler · 功能测试:如何使后端模型保持最新 8 年前 |
![]() |
nowiko · 功能测试多语言Symfony2应用程序 9 年前 |
![]() |
deepng · 开源测试用例管理工具[已关闭] 10 年前 |