Evosuite使用方法入門
1、簡要介紹
-
EvoSuite開源工具能夠基於Eclipse進行測試用例的自動生成,生成的測試用例符合Junit標準(直接生成可進行Junit的java文件),知足分支覆蓋(即斷定覆蓋)|html
-
Evosuite分爲Eclipse插件使用和命令行兩種使用方法,推薦使用命令行。如下會詳細說明java
2、前提條件:
-
配置 JDKeclipse
-
安裝 Apache Maven工具
3、Evosute插件
-
安裝方式:
-
在eclipse中點擊菜單欄的help測試
-
選擇Install New Softwareui
-
點擊Add按鈕編碼
-
在location位置輸入http://www.evosuite.org/updatespa
-
選中 Junit Test Generation 插件
-
一路next下去,直到finish命令行
-
重啓Eclipse便可
-
-
運行方式:
-
插件安裝後,重啓Eclipse,隨意選中一個java類文件,
-
鼠標右擊,選擇Generate tests with EvoSuite
-
-
-
侷限性:
-
僅支持Java8+Eclipse(Luna、Mars兩個版本)
-
會生成單獨生成一個測試包,在mooctest下作練習沒法直接提交
-
4、Evosuite命令行
-
evosuite下載地址:http://www.evosuite.org
-
簡要介紹:
-
evosuite是一個可直接運行jar包,經過java -jar evosuite.jar <options>運行,經過更改參數實現特定的功能
-
-
運行步驟
-
說明:將以"C:\Users\sqc\Desktop\軟件測試\evosuite\BrainfuckEngine.java"爲例
-
-
經過cmd打開命令行
-
進入到evosuite文件所在的路徑下
-
evosuite執行對象是字節碼文件,因此須要將待測的Java文件編譯成.class的字節碼文件
-
經過java -jar evosuite.jar(evosuite.jar是文件的名稱),因爲沒有賦參數,使用默認參數-help,顯示全部的可選參數
-
經過執行如下命令自動生成測試用例(參數將在下面解釋)
-
本例中將會在當前目錄下生成一下兩個文件夾
-
evosuite-report中生成一個statistics.csv的文件,文件中顯示目標類、生成測試的標準,覆蓋率等參數
-
evosuite-tests下生成如下兩個文件,第二個文件能夠忽略
-
-
-
將BranfuckEngine_ESTest.java中的測試用例複製到eclipse下
-
修改錯誤,運行
-
結束。
-
經常使用的參數解釋
-
-class :執行的對象
-
-projectCP:設置測試生成的類路徑
-
-help:要查看可用的命令行選項
-
-criterion :測試的標準參數有(line、branch、cbranch、mutation 、exception等)
-
-Dminimize=false //它會刪除全部不知足覆蓋率目標所需的語句
-
-Dassertion_strategy=all //使用大量斷言生成長測試
- 更過參數請參考開發文檔:http://www.evosuite.org/documentation/tutorial-part-1/
-
-
值得注意的地方
-
運行時會使用隨機的種子,因此每次的生成的測試用例都不相同,也能夠經過手動設置隨機種子,使得生成兩次相同的測試用例
-
默認criterion使用複合的參數,能夠根據需求&經過查看statistics文件查看代碼覆蓋率,修改criterion的參數,提升代碼覆蓋率
-
當編譯Java文件中有中文字符時會報錯,經過修改默認的編碼格式爲utf格式:執行 javac -encoding utf-8 BrainfuckEngine.class
-
複製代碼到eclipse中,運行以前休要Clean一下工程,不然會報錯
-
eclipse中文件夾目錄結構不要修改,不然會提交失敗
-
本地配置JAVA_HOME(即便Eclipse能夠運行成功)
-