- Go語言精進之路:從新手到高手的編程思想、方法和技巧(2)
- 白明
- 265字
- 2022-01-04 17:42:24
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估計遠遠不止這個數量。