变异测试是通过改变被测对象的源码,比较单元测试用例的结果,来判断单元测试用例的质量。了解不是很深,只能粗粗介绍,欢迎大家补充。

网上发现变异测试的资料很少,大多是学术论文为主。

变异测试的公主要是mujava与muclipse,muclipse是基于mujava的,并且集成于eclipse上的插件,官网介绍

mujava http://cs.gmu.edu/~offutt/mujava/

muclipse http://muclipse.sourceforge.net/index.php


根据官网一步步来,居然没有成功,逐个改变参数摸索,终于能出结果了,所以写下这边文章,希望减少大家研究的时间


1. 安装muclipse

由于官网提供的下载url打不开,只好网上找个edu.ncsu.muclipse_1.3.0.jar下载,放入eclipse plugins目录下,重新启动eclipse,就算安装上啦,eclipse的这种安装方法真简单。


2. 准备的测试案例

package demo1;

public class Example {
public int multiply(int a, int b) {
return a * b;
}
}


package demo1;

public class ExampleTest {

public void setUp() throws Exception {
}

public void tearDown() throws Exception {
}

public int testMultiply()
{
Example ex = new Example();
return ex.multiply(1, 1);
}
}

3. 配置环境

1. 新建或者导入项目,下载extendedOJ.jar包,导入到Libraries

右击project name -> properties -> java build path -> Libraries -> Add External JARs, select it and click ok

变异测试工具配置-muclipse_变异


in source tab, 可以修改output folder,就是编译后的.class文件的地址,这里默认是bin

变异测试工具配置-muclipse_变异_02


2. 编译项目,可以在bin里面看到编译后的.class文件

右键项目名,build project



3. 生成变异后的源文件

1. 右键项目名-> run as -> run configuration...



配置Deriectories

变异测试工具配置-muclipse_测试工具_03

配置Operator

变异测试工具配置-muclipse_配置_04


click run 生成变异代码,具体见result目录


4.eclipse里显示mutation结果

windows -> show view

变异测试工具配置-muclipse_变异_05


注意这边只有method-level有变异的实例


变异测试工具配置-muclipse_变异_06

变异测试工具配置-muclipse_配置_07



5. 执行test

配置muclipse test:右击项目名->run as -> run configuration

变异测试工具配置-muclipse_测试工具_08


配置testing operation : 由于生产的变异实例只有method level的,所以class-level的不要勾上,不然会有错误,click run button


变异测试工具配置-muclipse_变异_09

6. 看结果


点击刷新按钮

变异测试工具配置-muclipse_测试工具_10