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?