Hasty Briefsbeta

双语

256 Lines or Less: Test Case Minimization

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