简介:Go 语言增加了支持模糊测试 (Fuzz Test) 的新提案,该提案的 Draft Design 已发布,并根据 Go 社区的反馈进行了迭代。下一步要做的工作是将提案实现为语言特性。
Go 语言增加了支持模糊测试 (Fuzz Test) 的新提案。
据介绍,此项提案会为 Go 添加新的testing.F
类型,在_test.go
文件中支持FuzzFoo
函数,并增加新的go
命令行为。该提案的 Draft Design 已发布,并根据 Go 社区的反馈进行了迭代。下一步要做的工作是将提案实现为语言特性。
此项特性在 Go 1.17 中会被视为实验性功能,且其 API 也不一定会与 Go 1 兼容。当然,这项功能本身也会存在错误并缺少某些功能,但即便如此也会将其作为概念验证,Go 开发者可以对其进行实验并提供反馈。由于这将是一个实验性的功能,Go 团队也预计在未来的 Go 版本中 mutator 和模糊引擎 (fuzzing engine) 将会继续完善和发展。
下面是提案 Draft Design 的部分内容,这些内容不会加入到 1.17。
-race
和-msan
进行模糊测试-keepfuzzing
进行模糊测试-keepfuzzing
(降低噪音)的先决条件[]byte
(例如字符串,int,float64)之外的其他原始类型的结构化支持Draft Design:https://golang.org/s/draft-fuzzing-design