Go fuzz已准备好进行测试,捕捉Go中难以发现的bug

1,109 阅读1分钟

原生Go模糊测试工具现已准备好进行测试,但不会包含在即将发布的版本中。

Go项目组宣布,谷歌创建的Go语言的本地模糊测试工具已经准备好进行测试。新的自动化测试功能的目标是帮助Go开发者提高代码质量,并确保用Go构建的系统是安全且有弹性的。

6月3日发布的公告中,Go项目开发人员将模糊测试描述为一种自动化测试,它持续操纵程序的输入,来发现那些可能未被发现的问题。这些半随机的数据突变可以发现单元测试中可能遗漏的那些边缘案例的错误。由于模糊测试提供了比传统测试更多的代码覆盖率,所有它在寻找漏洞方面很有价值。

开发者可以运行以下程序开始使用Go fuzz:

$ go get golang.org/dl/gotip

虽然模糊测试功能不会在Go 1.17版本中出现,但有计划将其纳入未来版本中。

Go项目开发者建议,在运行go test -fuzz ,默认在SGOMAXPROCS 进程中并行运行模糊处理,会消耗大量内存,可能影响机器性能。开发者可以通过在go test 中设置-parallel 标志来降低模糊处理时使用的进程。

此外,建议开发者在运行时,模糊引擎将扩大测试范围的值写入$GOCACHE/fuzz 内的模糊缓存主管。目前对写入模糊缓存的文件数量或总字节数没有限制,所以它可能会占用大量的存储空间,多达几千兆字节。可以通过运行以下程序来清除模糊缓存gotip clean -fuzzcache.

原文链接:www.infoworld.com/article/362…