Go 语言新提案:添加模糊测试支持
Go 語言增加了支持模糊測試 (Fuzz Test) 的新提案。
據(jù)介紹,此項提案會為 Go 添加新的testing.F類型,在_test.go文件中支持FuzzFoo函數(shù),并增加新的go命令行為。該提案的 Draft Design 已發(fā)布,并根據(jù) Go 社區(qū)的反饋進(jìn)行了迭代。下一步要做的工作是將提案實現(xiàn)為語言特性。
此項特性在 Go 1.17 中會被視為實驗性功能,且其 API 也不一定會與 Go 1 兼容。當(dāng)然,這項功能本身也會存在錯誤并缺少某些功能,但即便如此也會將其作為概念驗證,Go 開發(fā)者可以對其進(jìn)行實驗并提供反饋。由于這將是一個實驗性的功能,Go 團(tuán)隊也預(yù)計在未來的 Go 版本中 mutator 和模糊引擎 (fuzzing engine) 將會繼續(xù)完善和發(fā)展。
下面是提案 Draft Design 的部分內(nèi)容,這些內(nèi)容不會加入到 1.17。
- 支持使用-race和-msan進(jìn)行模糊測試
- 支持使用-keepfuzzing進(jìn)行模糊測試
- 對由不同 mutator 引起的類似崩潰進(jìn)行重復(fù)數(shù)據(jù)刪除,這將是實現(xiàn)-keepfuzzing(降低噪音)的先決條件
- 在模糊處理時允許特殊選項(例如最大輸入大小)
- 支持字典
- 模糊測試時可自定義覆蓋范圍檢測(例如,僅檢測某些軟件包或文件)
- 為 mutator 定制生成器
- 支持結(jié)構(gòu)化和非基本類型的結(jié)構(gòu)化
- [1.17的擴展目標(biāo)]對除[]byte(例如字符串,int,float64)之外的其他原始類型的結(jié)構(gòu)化支持
Draft Design:https://golang.org/s/draft-fuzzing-design
期待你的加入
百度開發(fā)者中心已開啟征稿模式,歡迎開發(fā)者登錄developer.baidu.com進(jìn)行投稿,優(yōu)質(zhì)文章將獲得豐厚獎勵和推廣資源。
總結(jié)
以上是生活随笔為你收集整理的Go 语言新提案:添加模糊测试支持的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大牛荐书 | 百度技术大牛都在读的7本书
- 下一篇: 百度超级链新专利曝光,降低隐私数据权限管