2014-03-13 66 views
5

Java中是否存在用於模糊測試的靈活框架?用於Java模糊測試的庫

Wikipedia article on Fuzz testing定義模糊測試如下:

模糊測試或起毛是一個軟件測試技術,經常自動化或半自動化的,涉及到的一個輸入端提供無效的,意外的或隨機數據電腦程序。然後監視程序的異常,如崩潰,失敗的內置代碼斷言或查找潛在的內存泄漏。模糊測試通常用於測試軟件或計算機系統中的安全問題。

我知道Erlang有這樣的框架。任何提示都是值得歡迎的。

+0

可能重複:http://stackoverflow.com/questions/1099124/looking-for-a-java-fuzzing-library-or-fuzzer-tool-with-a-good-api –

+0

也許你把這個試一試:https://code.google.com/p/terot/ 或這一個:http://people.csail.mit.edu/akiezun/jfuzz/ – mhafellner

+0

Simliar:http://stackoverflow.com/問題/ 32458 /隨機數據在單元測試。還有http://pitest.org,但它實際上修改了你的代碼,以便「測試」你的測試,因此與你想要的不一樣。我使用http://github.com/rickynils/scalacheck進行數據隨機化,效果很好。 –

回答

1

看起來像是有一個Java port of Quickcheck

QuickCheck的目標是用生成的值替換手動提取的值。基於QuickCheck的測試試圖覆蓋域的規律,而經典測試只能測試不同值的有效性。

基本上,QuickCheck是關於數據生成器的。 QuickCheck運行器方法只是循環實現的一個幻想。 QuickCheck可以在需要測試整個類測試用例的場景中提供幫助,並且不可能爲所有不同的測試場景編寫測試。

+3

Quickcheck實際上是模糊測試的*對立*。 Quickcheck允許您定義一系列不同的輸入,您可以測試它們是否符合您的業務規則。模糊測試是相反的想法:找到你的系統的輸入。 – Marco