当前位置:网站首页>Go1.18升级功能 - 模糊测试Fuzz 从零开始Go语言
Go1.18升级功能 - 模糊测试Fuzz 从零开始Go语言
2022-07-31 16:34:00 【m0_67400972】
学习笔记,写到哪是哪。
模糊测试也是Go1.18更新的功能点之一。
自己测试了一下,初步感觉挺好用的。
可以通过模糊测试来进行全自动的测试,不依赖提供的数据集。
写法入参使用*testing.F,使用Fuzz方法对入参方法进行模糊测试。
样例代码如下:
package main
import (
"fmt"
"strconv"
"testing"
)
func Fuzz1(f *testing.F) {
f.Fuzz(func(t *testing.T, a string) {
b, _ := strconv.ParseInt(a, 10, 64)
fmt.Printf("%d
", b)
})
}
使用go test来执行,执行命令如下:
go test -fuzztime 10s -fuzz .
后面的时间可以自己设置。
看一下执行结果。

可以看到测试通过了,中间还有一些测试细节。
我们换一个有问题的代码,来试试看。
package main
import (
"fmt"
"testing"
)
//func Fuzz1(f *testing.F) {
// f.Fuzz(func(t *testing.T, a string) {
// b, _ := strconv.ParseInt(a, 10, 64)
// fmt.Printf("%d
", b)
// })
//}
func Fuzz2(f *testing.F) {
f.Fuzz(func(t *testing.T, a, b int) {
fmt.Println(a / b)
})
}
和刚才一样,执行一下看看结果。

可以看到很快就发现问题了,在文件同级目录下有个测试数据文件。


可以看到在测试方法,分母为0的时候异常了。
整体上看还是很方便的,不需要自己准备测试用例。
小结
2022年,南京的夏天真的太热了。

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- Handling write conflicts under multi-master replication (4) - multi-master replication topology
- 基于Redis(SETNX)实现分布式锁,案例:解决高并发下的订单超卖,秒杀
- Applicable scenario of multi-master replication (2) - client and collaborative editing that require offline operation
- 深度学习机器学习理论及应用实战-必备知识点整理分享
- 多主复制的适用场景(2)-需离线操作的客户端和协作编辑
- [Meetup Preview] OpenMLDB+OneFlow: Link feature engineering to model training to accelerate machine learning model development
- Baidu cloud web speed playback (is there any website available)
- 智能垃圾桶(九)——震动传感器(树莓派pico实现)
- [TypeScript] In-depth study of TypeScript type operations
- 基于C语言的编译器设计与实现
猜你喜欢
How Redis handles concurrent access

Intelligent bin (9) - vibration sensor (raspberries pie pico implementation)

基于Redis(SETNX)实现分布式锁,案例:解决高并发下的订单超卖,秒杀

How to switch remote server in gerrit

仿生毛毛虫机器人源码

基于ABP实现DDD

C language - function

2022年必读的12本机器学习书籍推荐
![[pytorch] pytorch automatic derivation, Tensor and Autograd](/img/99/c9632a7d3f70a13e1e26b9aa67b8b9.png)
[pytorch] pytorch automatic derivation, Tensor and Autograd

华为顶级工程师历时9年总结的“趣谈网络协议”PDF文档,太强了
随机推荐
【C语言】LeetCode27.移除元素
JS基础小练习
【7.28】代码源 - 【Fence Painting】【合适数对(数据加强版)】
【pytorch】pytorch 自动求导、 Tensor 与 Autograd
TypeError: unhashable type: ‘list‘
GP 6 overall architecture study notes
Small program: Matlab solves differential equations "recommended collection"
ML.NET related resources
SHELL内外置命令
动态规划之线性dp(下)
MySQL多表联合查询
【pytorch】1.7 pytorch与numpy,tensor与array的转换
【TypeScript】深入学习TypeScript类型操作
多主复制的适用场景(1)-多IDC
Oracle动态注册非1521端口
外媒所言非虚,苹果降价或许是真的在清库存
牛客 HJ19 简单错误记录
LeetCode_733_Image rendering
Automated testing - web automation - first acquaintance with selenium
苹果官网样式调整 结账时产品图片“巨大化”