μJava(又称muJava)是一种进行变异测试的工具。目的是对我们的代码产生不同等级、类型的变体,从而查看我们项目代码缺陷的一种工具。这篇文章我们主要针对muJava的安装配置、简单使用进行介绍。
一、环境安装:
你需要下载以下jar包:
1.mujava.jar
2.openjava.jar
3.junit.jar
注:这里我提供的junit是junit 3.x及以下版本,所以在jar包的内部已经含有了harmcrest,不再需要下载额外的harmcrest.jar其余两个jar包在官网也可以下载。点击我的下载链接
下载好了上述jar包以后,将三个jar包都放在某个盘的文件夹内,这里我使用的C:\muJava文件夹。给三个jar包配置CLASSPATH,方法如下:
搜索环境变量,或者你在控制面板-系统-高级选项里也可以找到
将以下三个路径添加到CLASSPATH:
C:\Users\YanMing\muJava\mujava.jar;
C:\Users\YanMing\muJava\openjava.jar;
C:\Users\YanMing\muJava\junit.jar;
到此,muJava的环境变量就配置好了。
二、使用muJava生成变异体:
命名并新建一个文件夹,文件夹结构如下:
文件夹位置和命名随意,包含以上四个文件夹即可。其作用分别为:
1. classes:存放你的Java源文件的.class文件
2. result:存放生成的变异体
3. src:存放你的Java源文件的.java文件
4. testset:存放你的测试文件的.java以及.class文件
你还需要做一下修改:
1. 将mujava.config复制到该文件夹下,并用记事本打开,并将其内容设置该文件夹路径:C:\muJavaHome
2. 创建两个文本文件,并分别保存为.cmd。用记事本打开,设置内容如下:
GenMutants.cmd: Java mujava.gui.GenMutantsMain
RunTest.cmd: java mujava.gui.RunTestMain > TestResult.txt
接下来,新建一个eclipse Java项目,然后编写你的简单的java 源代码。同时为你的java源代码编写一个Junit测试。然后将你的java源代码(不是测试)的.class .java文件按照最上面的文件夹介绍复制到相应目录。(.class和.java可以到你的eclipse 项目对应文件夹里面找到)
运行GenMutants.cmd
左侧勾选你的需要Java源文件,右边勾选你的变异的方法和级别。如果对具体类型不了解可以直接All。点击Generate运行。
运行完成后,可以点击第二个标签页 查看具体变异后的代码:
同时你也可以在result里面找到变异的代码。
三、测试变异体:
将刚刚编写的测试用例(.class 和 .java)复制到testset。运行RunTest.cmd
运行完成,结果可以在TestResult.txt中查看。
P.S.文章不妥之处还望指正