使用Evosuite+EclEmma測試_ESTest的覆蓋率

Evosuite生成測試數據

Eclipse安裝Evosuite插件並生成測試用例

  1. 打開Eclipse,點擊Help->Install New Software…
  2. 點擊Add…按鈕,在Location欄中輸入EvoSuite Eclipse插件的地址:http://www.evosuite.org/update 後,點擊OK按鈕
  3. 選中 Junit Test Generation 後,點擊Next按鈕,選中 I accept the terms of license agreement後,點擊Finish按鈕後,顯示 Installing Software對話框
  4. 等待一段時間後,對於彈出對話框一路點擊OK,Yes即可
  5. 待Eclipse重啓後,隨意右鍵一個java類文件,若出現如下圖標,則插件安裝成功。
    Evosuite安裝成功
  6. 如下圖所示,選中Tri.java文件,右擊選擇Generate tests with Evosuite,則會在項目中生成evosuite-tests文件夾和測試用例java文件。生成的測試類爲標準的Junit 4 測試類。測試用例主要在Tri_ESTest.java中。
    生成測試數據

利用命令行生成測試用例

  1. 下載 evosuite jar包 ,地址:http://www.evosuite.org/downloads/
  2. 進入到evosuite文件所在的路徑下,將待測的文件放入,如圖準備工作
  3. 在此路徑下,打開命令行,先將待測的java文件編譯成.class的字節碼文件,再運行命令java -jar evosuite-1.0.6.jar -class Tri -projectCP ./
  4. 當出現Computation finished後,生成用例結束
  5. 這時,在此目錄下會自動生成兩個文件夾,evosuite-report中生成一個statistics.csv的文件,文件中顯示目標類、生成測試的標準,覆蓋率等參數;evosuite-tests下生成以下兩個文件,第二個文件可以忽略(Tri_ESTest_scaffolding.java)。生成測試數據
  6. 將第一個文件中的測試數據複製到Eclipse下,修改錯誤。

EclEmma插件及應用

Eclipse安裝EclEmma插件

  1. 打開Eclipse,點擊Help->Install New Software…
  2. 點擊Add…按鈕,在Location欄中輸入EvoSuite Eclipse插件的地址:http://update.eclemma.org/ 後,點擊OK按鈕
  3. 和安裝Evosuite過程類似
  4. 安裝後重新啓動,如果工具欄出現一個新得按鈕,則安裝成功安裝成功
  5. 待Eclipse重啓後,隨意右鍵一個java類文件,若出現如下圖標,則插件安裝成功。

EclEmma插件的簡單應用

  1. 在Eclipse建立HelloWorld類
  2. 選中HelloWord.java文件,點擊上面提到的圖標,Coverage As->Java Application運行 HelloWorld程序
  3. 運行結果如下:綠色:完整執行 紅色:沒執行 黃色:部分執行覆蓋情況
  4. Coverage窗口,它是用來統計程序的覆蓋測試率。在Coverage視圖主區域中點擊右鍵,出現的快捷菜單中選擇”Export Session…”,最後生成的報告中,通過點擊index.html可以看到覆蓋率。

Evosuite+EclEmma測試_ESTest的覆蓋率

  1. 在項目中寫入源文件,用evosuite對源文件生成_ESTest.java後,修改如下。最開始沒修改_ESTest.java文件,進行覆蓋率測試的時候每次都是0。至於爲什麼這麼改,我也不知道,就是忽然之間發現的。修改文件內容
  2. 此時,項目目錄如上。項目目錄
  3. 選中_ESTest.java文件,點擊覆蓋的小圖標Coverage As->Junit Test
  4. 運行出來的結果就是測試用例的覆蓋情況。

[參考文檔]

Evosuite和EclEmma的更多詳細內容可以參考下面的博客:
https://blog.csdn.net/ikoqzurydr/article/details/81568832.
https://www.cnblogs.com/Ming8006/p/5811425.html.
https://www.cnblogs.com/cnsdhzzl/p/7638883.html.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章