15 hours ago
- 一个简单的基于属性的测试(PBT)库仅用256行Zig代码实现,它使用有限随机数生成器(FRNG)预生成所有随机数,并且可能耗尽熵。
- 该FRNG提供内置函数用于生成字节、数组、整数、布尔值、有界整数和切片索引,通过编译时多态性实现灵活性。
- 该库用于模拟测试,通过向被测系统输入随机数据,并在任何不一致时崩溃,而有限熵允许通过二分查找自动最小化测试用例,以找到最小的失败输入。
- 测试框架为被测系统创建一个独立进程,通过标准输入传递熵,并使用种子+大小的方式来复现运行。
- 搜索算法先倍增步长以发现失败,然后减半以最小化熵大小,最终输出最小失败种子和大小以用于调试。