首页/开发/软件测试速查/模糊测试(Fuzzing)
测试基础与分层67 条

模糊测试(Fuzzing)

向程序输入大量随机或变异数据,监测崩溃、断言失败与超时:适合解析器、协议实现与安全敏感组件;覆盖驱动的模糊测试效率更高。

软件测试速查开发更新于 2026-10-12
常见工具AFL++、libFuzzer、OSS-Fuzz、go fuzz、Jazzer(Java)
关注信号崩溃、挂起、内存错误、未处理异常

Go fuzz 示例

Go fuzz 示例
func FuzzParse(f *testing.F) {
    f.Add("1+2")
    f.Fuzz(func(t *testing.T, expr string) {
        _ = Parse(expr) // 不 panic 即通过
    })
}
模糊测试产出的崩溃样本要归档为回归用例;修复前先确认输入不含敏感数据。

易错点

  • 把随机输入直接打进核心生产系统而不是隔离环境
  • 只统计执行次数不看覆盖率,深层代码未被触达

数据来源与参考

  • OSS-Fuzz 文档(google.github.io/oss-fuzz)
  • Go 官方文档《Fuzzing》(go.dev)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌