Go Assembly Mutation Testing
10 months ago
- #Cryptography
- #Testing
- #Go
- Go密码学标准库强调通过广泛测试来维护安全性
- 由于汇编代码的恒定时间特性,传统代码覆盖率方法难以有效测试
- Go 1.26版本将引入变异测试框架,用于识别未经测试的汇编代码路径
- 变异测试通过修改程序来检查测试是否失败,确保代码路径得到有效验证
- 该框架通过改变汇编指令模拟不同标志位条件,从而暴露未测试场景
- 在arm64 P-256汇编上的初步测试发现了未测试指令,凸显了改进测试覆盖的必要性
- 变异测试工具已集成至Go汇编器,支持在测试期间进行定向变异
- 该项目由Geomys支持,并获Smallstep、Ava Labs和Tailscale等公司资助