[软件测试] - No.6 使用μJava进行变异测试

μ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.文章不妥之处还望指正

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ucos-iii-tcpip.a是一个软件库,用于嵌入式系统中使用μC/OS-III操作系统和TCP/IP协议栈进行网络通信的开发。 ucos-iii-tcpip.a提供了一系列的接口和函数,帮助开发人员在嵌入式系统中实现TCP/IP网络通信功能。它包含了TCP/IP协议栈的实现以及与μC/OS-III操作系统的接口,使得开发人员可以简单地在嵌入式系统中实现TCP/IP网络通信功能。 使用ucos-iii-tcpip.a可以方便地创建网络任务,并通过接口函数来管理和控制网络通信。它提供了一些常用的网络协议,如TCP、UDP、IP等,并且支持网络连接、数据传输等基本的网络操作。此外,ucos-iii-tcpip.a还提供了一些高级功能,如网络管理、安全性、QoS等,以满足不同应用场景的需求。 通过使用ucos-iii-tcpip.a,嵌入式系统开发人员可以快速、简便地添加网络通信功能,提高系统的灵活性和可扩展性。它提供了一种可靠、高效的方式来实现嵌入式系统与外部设备之间的数据交换,使得嵌入式系统能够连接到互联网,实现远程控制、数据传输等功能。 总之,ucos-iii-tcpip.a是一款强大的软件库,它结合了μC/OS-III操作系统和TCP/IP协议栈,为嵌入式系统提供了完善的网络通信功能,帮助开发人员快速构建并实现网络连接和数据传输等功能,使得嵌入式系统能够更好地适应各种应用场景的需求。 ### 回答2: ucos-iii-tcpip.a是一个TCP/IP协议栈的静态库文件。uCos-III是一个开发嵌入式实时操作系统的工具。它提供了一种可靠的方法来构建实时系统,并可以方便地适应不同的硬件和应用需求。 ucos-iii-tcpip.a库是基于uCos-III实时操作系统的一个扩展库,用于支持TCP/IP协议栈的功能。TCP/IP协议栈是计算机网络通信的基础,它包括传输控制协议(TCP)和互联网协议(IP)。通过使用这个库,开发者可以轻松地在嵌入式系统中实现TCP/IP网络通信功能。 ucos-iii-tcpip.a库提供了一系列接口和函数,用于处理与TCP/IP协议相关的任务,如网络连接的建立和断开、数据传输的处理等。它还包含了各种网络协议的实现,如IP、TCP、UDP等,以及网络应用层协议的支持,如HTTP、FTP等。开发者可以通过调用这些函数和接口来完成各种网络通信任务。 使用ucos-iii-tcpip.a库可以极大地简化开发者在嵌入式系统中实现TCP/IP通信的工作量。它提供了一个高效可靠的通信框架,可以帮助开发者快速构建自己的网络应用。一旦完成了TCP/IP通信的底层实现,开发者可以更加专注于应用层的业务逻辑开发,而不需要过多关注网络通信的细节。 总结来说,ucos-iii-tcpip.a是一个用于嵌入式系统中支持TCP/IP协议栈的静态库文件,它提供了一系列接口和函数,帮助开发者实现TCP/IP网络通信功能。使用这个库可以简化开发工作,提高效率,同时为开发者提供了一个可靠的通信框架。 ### 回答3: ucos-iii-tcpip.a是一个软件库,主要用于嵌入式系统中实现TCP/IP网络协议栈。它基于Micrium公司开发的uC/OS-III实时操作系统,提供了一套完整的TCP/IP协议栈的实现。该软件库的目标是为嵌入式系统开发人员提供一个方便快捷且可靠的TCP/IP协议栈,使他们能够更容易地将网络功能集成到嵌入式应用中。 ucos-iii-tcpip.a具有多线程处理能力,能够同时处理多个网络连接和数据包,提供了 TCP、UDP、IP、ICMP等网络协议的实现。它支持IPv4和IPv6协议,可以实现IP地址的分配和路由功能,支持网络数据包的传输和接收,还提供了socket API接口供应用程序调用。 使用ucos-iii-tcpip.a,嵌入式系统开发人员可以方便地添加网络功能到他们的嵌入式应用中,无需从头开始开发TCP/IP协议栈,大大加快开发进度。在嵌入式系统中,网络功能往往是非常重要的,通过使用ucos-iii-tcpip.a,开发人员可以轻松实现远程控制、数据采集、与外部设备通信等功能。 总之,ucos-iii-tcpip.a是一个基于uC/OS-III实时操作系统的TCP/IP协议栈软件库,提供了完整的TCP/IP协议栈的实现,方便嵌入式系统开发人员快速添加网络功能到他们的应用中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值