Fuzzer Blind Spots (Meet Jepsen)
a year ago
- #database
- #fuzz-testing
- #Jepsen
- 系统的组件在可测试性上存在差异,确定性组件比具有IO和副作用的部分更容易测试。
- Jepsen测试在TigerBeetle的查询引擎中发现了一个正确性错误,该组件此前被认为经过充分模糊测试。
- 该错误涉及多字段交集查询时结果丢失,现有模糊测试未覆盖此场景。
- TigerBeetle的模糊测试遗漏此错误,因其工作负载无意间避开了对必要状态的探测。
- 解决方案包括重写模糊测试器以生成随机输入,并使用详细的数据库模型进行验证。
- 通过调整扫描逻辑修复该错误,使其能处理迭代过程中目标范围缩小的情况。
- 若模糊测试的工作负载无意间限制了探索的状态空间,就可能存在测试盲区。
- 用更广泛、简单的模糊测试方法辅助针对性测试,有助于发现潜在缺陷。