一 背景
在 Go 1.18 中,Go 语言新增模糊测试(Fuzzing)。Fuzzing,又叫fuzz testing,中文叫做模糊测试或随机测试。其本质上是一种自动化测试技术,更具体一点,它是一种基于随机输入的自动化测试技术,常被用于发现处理用户输入的代码中存在的bug和问题。模糊测试和常规的功能测试的最主要区别是:模糊测试时候,因为输入不可控,所以不能精准预测输出。
二 单元测试
在模糊测试出现之前,我们一般使用的是单元测试。举个例子说明,一般流程如下:我们有个方法,用来翻转一个字符串;这个方法的实现如下:
func Reverse(s string) string {b := []byte(