Evosuite使用方法入門

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"爲例

 

  1. 經過cmd打開命令行

  2. 進入到evosuite文件所在的路徑下

  3. evosuite執行對象是字節碼文件,因此須要將待測的Java文件編譯成.class的字節碼文件

  4. 經過java -jar evosuite.jar(evosuite.jar是文件的名稱),因爲沒有賦參數,使用默認參數-help,顯示全部的可選參數

  5. 經過執行如下命令自動生成測試用例(參數將在下面解釋)

  6. 本例中將會在當前目錄下生成一下兩個文件夾                                                                            

    • evosuite-report中生成一個statistics.csv的文件,文件中顯示目標類、生成測試的標準,覆蓋率等參數

    • evosuite-tests下生成如下兩個文件,第二個文件能夠忽略

  7. 將BranfuckEngine_ESTest.java中的測試用例複製到eclipse下

  8. 修改錯誤,運行

  9. 結束。

 

  • 經常使用的參數解釋
    • -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能夠運行成功)

相關文章
相關標籤/搜索