上QQ阅读APP看书,第一时间看更新
45.1 模糊测试在挖掘Go代码的潜在bug中的作用
go-fuzz工具让Gopher具备了在Go语言中为被测代码建立模糊测试的条件。但模糊测试在挖掘Go代码中潜在bug中的作用究竟有多大呢?我们可以从Dmitry Vyukov提供的一组数据中看出来。
Dmitry Vyukov使用go-fuzz对当时(2015年)的Go标准库以及其他第三方开源库进行了模糊测试并取得了惊人的战果:
// 60个测试 60 tests // 在Go标准库中发现137个bug(70个已经修复) 137 bugs in std lib (70 fixed) // 在其他项目中发现165个bug 165 elsewhere (47 in gccgo, 30 in golang.org/x, 42 in freetype-go, protobuf, http2, bson)
go-fuzz的战绩在持续扩大,截至本书写作时,列在go-fuzz官方站点上的、由广大Gopher分享出来的已发现bug已有近400个,未分享出来的通过go-fuzz发现的bug估计远远不止这个数量。