Fuzz Testing 模糊測試


What is Fuzz Testing 模糊測試?

模糊測試在軟體開發的前期階段檢測安全性與穩定性,讓開發人員可以快速與安全的交付軟體


在原始碼跑安全測試

在模糊測試期間,程式會使用 Invalid,Excepion,Random 的輸入,目的是使應用程式崩潰,現代的模糊測試解決方案可以分析他們要測試的程式碼結構,自動產生 Testcase 並且標記 Input 輸入通過程式所採用的每條路徑,透過這種方式,Fuzzer 模糊氣可以獲得有關程式碼覆蓋率的詳細回饋。


每個發現都會帶來更多發現

只要 Fuzzer 模糊氣發現導致崩潰的 Input,他就會用 mutation 演算法產生更多的輸入,這些輸入高機率會重複出現剛剛的發現


模糊測試可以防治意外 Edge Cases

現代軟體模糊器 Fuzzer 用 Invalid/Unexpected/random 的輸入,這些可以覆蓋非預期的 Edge cases 而其他 test cases 將無法 Cover 這些情況


模糊測試可最大限度地提高程式碼覆蓋率,而不會出現誤報

由於模糊器執行被測軟體,因此它們始終提供可用於重現錯誤的輸入。他們還可以查明儲存庫中出現問題的確切程式碼行號

模糊測試使您能夠達到 100% 的程式碼覆蓋率,而不會出現任何誤報。每個標記的問題都代表運行程式碼中的實際錯誤。大多數都是非常嚴重的,例如緩衝區溢位、記憶體損壞和洩漏。


業界越來越多採用 Fuzz Testing

由於安全法規的增加使用模糊測試,許多軟體公司在軟體發布之前就要執行自動化安全測試。


參考資料

  • Code intelligence-What Are the Benefits of Fuzz Testing?
更新於