准备文件
- 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.