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
进行模糊测试 - 对由不同 mutator 引起的类似崩溃进行重复数据删除,这将是实现
-keepfuzzing
(降低噪音)的先决条件 - 在模糊处理时允许特殊选项(例如最大输入大小)
- 支持字典
- 模糊测试时可自定义覆盖范围检测(例如,仅检测某些软件包或文件)
- 为 mutator 定制生成器
- 支持结构化和非基本类型的结构化
- [1.17的扩展目标]对除
[]byte
(例如字符串,int,float64)之外的其他原始类型的结构化支持
Draft Design:https://golang.org/s/draft-fuzzing-design
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux 5.12 合并 Clang LTO 支持
近日,Linux 5.12 终于合并了 Clang LTO 支持,而且支持AArch64 (64 位ARM) 平台和x86_64 平台。 此前本站曾报道过Linux 5.12 或将支持 Clang LTO和Linux 5.12 的 Clang LTO PR的相关讯息。不过,当时的补丁仅支持AArch64 平台,并且表示由于一些objtool 的问题,对于 x86_64 平台的支持或许要在Linux 5.13 才能实现。而且,Linus Torvalds 过去从未采纳过 LTO 支持的相关提议(包括 GCC),对于这次提交是否同意也尚不清晰。 实际上,使用 Clang LTO 可以得到最佳的运行时性能,并且,Clang的 CFI(Control-Flow Integrity)实现也借此能得以实施。在这些更改中, 同时也包括 ThinLTO 支持 —— 仅仅进行有限的函数 importing 分析,与传统的构建方式占用内存和时间差不多。像谷歌这样的公司早已在其移动设备上的内核构建中使用 Clang LTO 并取得了不错的效果:大约 3 年前开始,Android 内核不仅由 Clang 构建...
- 下一篇
微软开源 AI 诊断工具 Error Analysis
Error Analysis 使用机器学习技术,助数据科学家更好地了解模型错误模式。 在 2020 年 5 月的微软 Build 大会上,微软推出了三个响应式的 AI(Responsible AI,RAI)工具包,这三个工具分别是 InterpretML、Fairlearn 和 SmartNoise。这些工具包与微软 Azure 机器学习紧密集成,通过这些工具可以使机器学习领域的数据科学家能够理解模型预测、评估公平性并保护敏感数据。 在这个工具系列的基础上,微软宣布推出新的功能,通过新的 Error Analysis 工具包调试模型中的不准确之处,并在 SmartNoise 中使用合成数据提升隐私性。 使用 Error Analysis 识别和诊断模型的不精确性 在分析机器学习模型时,我们常常关注精度等总体指标。 然而,模型的准确率在不同的数据子群中往往并不统一,某些输入条件的交叉点会导致模型更频繁地失败。为了提高精度,我们需要挖掘和评估这些不同的错误来源。从历史上看,解决这些问题需要手动操作,并且十分耗时。 Error Analysis,这是微软响应式 AI 工具包中的最新成员,并且...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题