Go 语言新提案:添加模糊测试支持

开发 后端
Go 语言增加了支持模糊测试 (Fuzz Test) 的新提案。据介绍,此项提案会为 Go 添加新的testing.F类型,在_test.go文件中支持FuzzFoo函数,并增加新的go命令行为。

[[383622]]

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进行模糊测试
  • 对由不同 mutator 引起的类似崩溃进行重复数据删除,这将是实现-keepfuzzing(降低噪音)的先决条件
  • 在模糊处理时允许特殊选项(例如最大输入大小)
  • 支持字典
  • 模糊测试时可自定义覆盖范围检测(例如,仅检测某些软件包或文件)
  • 为 mutator 定制生成器
  • 支持结构化和非基本类型的结构化
  • [1.17的扩展目标]对除[]byte(例如字符串,int,float64)之外的其他原始类型的结构化支持

本文转自OSCHINA

本文标题:Go 语言新提案:添加模糊测试支持

本文地址:https://www.oschina.net/news/131058/go-support-fuzz-test-proposal

责任编辑:未丽燕 来源: 开源中国
相关推荐

2023-12-27 08:03:53

Go优化代码

2021-12-13 08:52:42

Go 泛型

2022-11-15 09:16:59

2023-08-07 09:51:58

2021-01-14 05:20:48

Go语言泛型

2021-08-09 10:36:20

GoSlices Maps

2022-07-13 08:53:28

函数Go语言

2021-07-21 17:19:03

Fedora 35软件包更新

2022-10-24 08:55:13

Go工具链开发者

2023-10-30 08:49:23

Go提案离职

2022-03-18 12:46:56

Go 语言编程语言

2022-04-06 08:19:13

Go语言切片

2021-12-27 07:59:50

ECMAScript JSON模块Node.js

2023-03-13 00:10:46

Go语言版本

2022-07-12 06:17:43

GoogleGolang开发工作

2022-01-11 12:13:33

JavaScript编程语言

2014-06-23 09:49:32

Go语言Android谷歌

2014-07-14 15:51:08

AndroidGO语言

2023-08-14 08:00:00

Go 标准库HTTP 路由器

2021-07-27 13:08:52

微软Chrome新提案
点赞
收藏

51CTO技术栈公众号