準備文件
- mujava.jar
- openjava.jar
- mujava.config
官網下載地址:https://cs.gmu.edu/~offutt/mujava/#Links. - junit-4.10
注意:junit的版本可以是4.11及以上,但是4.11及以上版本不再包含hamcrest,因此使用時必須導入hamcrest-core-1.3.jar,否則運行會報錯
java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing。
在這裏使用4.10版本。官網下載地址:https://www.softpedia.com/get/Programming/Other-Programming-Files/JUnit.shtml.
環境配置
給下載的三個jar包配置CLASSPATH
將三個jar包的路徑添加到CLASSPATH中,我的路徑是F:\muJava目錄下,如圖
生成變異體
- 命名並新建一個文件夾,隨便命名,我的是mujavaHome,文件夾裏的結構如下:
- classes:src中源代碼經過正確編譯的.class文件
- result:生成的變異結果
- src:待測的java程序源代碼
- testset:JUnit測試用例的.java文件以及.class文件
- 將mujava.config放到該文件夾下,用記事本打開,將其內容設置爲該文件夾路徑,我的是F:\mujavaHome
- 創建兩個文本文件,分別是GenMutants.cmd和RunTest.cmd
GenMutants的內容爲:Java mujava.gui.GenMutantsMain
RunTest的內容爲:java mujava.gui.RunTestMain > TestResult.txt - 在eclipse中新建一個java項目,通過evosuite生成測試用例文件,java文件最好創建在一個無名包下面,然後對Test修改錯誤,重命名。
- 將被測源文件的.java文件複製到src,被測源文件的.class文件複製到classes,測試用例文件Test的.java和.class複製到testset中。(所有的java和class文件都可以在eclipse的項目的工作空間內找到)
- 運行GenMutants.cmd,如圖,左側勾選需要的Java源文件,右邊勾選變異的方法和級別。如果對具體類型不瞭解可以直接All。點擊Generate運行。
當命令行頁面出現All files are handled時,運行完成。可以點擊第二個標籤頁,查看具體變異後的代碼。變體.java與.class位於result文件夾。
測試變異體
運行RunTest.cmd,設定相關參數後點擊Run進行變異測試。測試完成後可以看到統計結果,測試結果的詳細內容被輸出到mujavaHome\TestResult.txt中。除了在GUI上查看測試結果統計信息,更詳細的測試輸出可以在TestResult.txt中查看。
參考鏈接
https://blog.csdn.net/tjuyanming/article/details/68921517.
https://blog.csdn.net/wkw1125/article/details/51967630.
https://blog.csdn.net/u010612262/article/details/21391635.
https://blog.csdn.net/u011954243/article/details/77962329.