Evosuite使用方法入门
Evosuite使用方法入门
1、简要介绍
EvoSuite开源工具可以基于Eclipse进行测试用例的自动生成,生成的测试用例符合Junit标准(直接生成可进行Junit的java文件),满足分支覆盖(即判定覆盖)|
Evosuite分为Eclipse插件使用和命令行两种使用方法,推荐使用命令行。以下会详细说明
2、前提条件:
配置 JDK
安装 Apache Maven
3、Evosute插件
安装方式:
在eclipse中点击菜单栏的help
选择Install New Software
点击Add按钮
在location位置输入http://www.evosuite.org/update
选中 Junit Test Generation
一路next下去,直到finish
重启Eclipse即可
运行方式:
插件安装后,重启Eclipse,随意选中一个java类文件,
鼠标右击,选择Generate tests with EvoSuite

局限性:
仅支持Java8+Eclipse(Luna、Mars两个版本)
会生成单独生成一个测试包,在mooctest下做练习无法直接提交
4、Evosuite命令行
evosuite下载地址:http://www.evosuite.org
简要介绍:
evosuite是一个可直接运行jar包,通过java -jar evosuite.jar <options>运行,通过更改参数实现特定的功能
运行步骤
说明:将以"C:\Users\sqc\Desktop\软件测试\evosuite\BrainfuckEngine.java"为例
通过cmd打开命令行
进入到evosuite文件所在的路径下
evosuite执行对象是字节码文件,所以需要将待测的Java文件编译成.class的字节码文件


通过java -jar evosuite.jar(evosuite.jar是文件的名称),由于没有赋参数,使用默认参数-help,显示所有的可选参数


通过执行以下命令自动生成测试用例(参数将在下面解释)


本例中将会在当前目录下生成一下两个文件夹


evosuite-report中生成一个statistics.csv的文件,文件中显示目标类、生成测试的标准,覆盖率等参数


evosuite-tests下生成以下两个文件,第二个文件可以忽略


将BranfuckEngine_ESTest.java中的测试用例复制到eclipse下
修改错误,运行
结束。
常用的参数解释
-class :执行的对象
-projectCP:设置测试生成的类路径
-help:要查看可用的命令行选项
-criterion :测试的标准参数有(line、branch、cbranch、mutation 、exception等)
-Dminimize=false //它会删除所有不满足覆盖率目标所需的语句
-Dassertion_strategy=all //使用大量断言生成长测试
- 更过参数请参考开发文档:http://www.evosuite.org/documentation/tutorial-part-1/
值得注意的地方
运行时会使用随机的种子,所以每次的生成的测试用例都不相同,也可以通过手动设置随机种子,使得生成两次相同的测试用例
默认criterion使用复合的参数,可以根据需求&通过查看statistics文件查看代码覆盖率,修改criterion的参数,提高代码覆盖率
当编译Java文件中有中文字符时会报错,通过修改默认的编码格式为utf格式:执行 javac -encoding utf-8 BrainfuckEngine.class
复制代码到eclipse中,运行之前休要Clean一下工程,否则会报错
eclipse中文件夹目录结构不要修改,否则会提交失败
本地配置JAVA_HOME(即使Eclipse可以运行成功)
Evosuite使用方法入门的更多相关文章
- 习题集1a:研究方法入门
1.课程实践编号 课程实践编号 随着对习题集“PS 1a:研究方法入门”和其他习题集的了解,你可能会发现进度栏中的习题编号并非一直是连续的. 对于存在两个习题集的课程,如果一个习题集看上去“缺失”习题 ...
- PowerDesigner最基础的使用方法入门学习(转)
PowerDesigner最基础的使用方法入门学习 1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其他的概念知识可自行学习) 我的PowerDesigner版本是16. ...
- DBS-PowerDesginer:PowerDesigner最基础的使用方法入门学习
ylbtech-DBS-PowerDesginer:PowerDesigner最基础的使用方法入门学习 1.返回顶部 1. 1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其 ...
- 【黑马JavaSE】1.2.算术\赋值\比较\逻辑\三元运算符、方法入门、JShell编译器
文章目录 1_1_6_05_算术运算符_四则与取模运算 1_1_6_06_算术运算符_加号的多种 1_1_6_07_算术运算符_自增自减运算 1_1_6_08_赋值运算符 这里挺关键的,为什么一个by ...
- day02_数据类型转换、运算符、方法入门
day02_数据类型转换.运算符.方法入门 数据类型 基本数据类型 四类八种 整数型 (取值范围) byte(-128~127) short(-32768~32767) int(一般默认)(-21亿~ ...
- Java(25-40)【数据类型转换、运算符、方法入门】
1.ASCII编码表 0--48 A--65 a--97 2. Unicode万国码 字符'中'为20013 3.算数运算符 double类型的加上int类型结果为double byte short ...
- javaScript中Number数字类型方法入门
前言 Number和Math都属于JavaScript中的内置对象,Number数字类型作为基础数据类型,我们在开发过程中会经常用到,包括数字精度的格式化,还有字符串转换成数字等操作. Number数 ...
- javaScript中Math内置对象基本方法入门
概念 Math 是javaScript的内置对象,包含了部分数学常数属性和数学函数方法. Math 不是一个函数对象,用户Number类型进行使用,不支持BigInt. Math 的所有属性与方法都是 ...
- PowerDesigner最基础的使用方法入门学习
1:入门级使用PowerDesigner软件创建数据库(直接上图怎么创建,其他的概念知识可自行学习) 我的PowerDesigner版本是16.5的,如若版本不一样,请自行参考学习即可.(打开软件即是 ...
随机推荐
- Linux下数据库备份
1.登录数据库服务器并切换到数据库用户下 [root@*** ~]# su - oracle 2.测试用户名密码是否能正确连接数据库 [oracle@*** ~]$ sqlplus username/ ...
- 关于Appium android input manager for Unicode 提示信息
Appium调完输入法后,会弹出 Appium android input manager for Unicode 提示信息相关的提示信息,每次运行如此,如下图 网络上查找一遍,基本解决了,只要在设 ...
- 【SoftwareTesting】Homework3
(a) (b) 数组越界问题 (c) n=0 (d) 点覆盖:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] 边覆盖:[(1,2),(2,3),(3,4),(4,5) ...
- ftp远端上的文件下载
用linux下的wge下t载比在window下一个个点方便多了,命令如下: wget ftp:// 110.110.110/\*.mseed --ftp-user=username --ftp-pas ...
- input(Text)控件作为填空输入,但运行后,有曾经输入的记录显示,用autocomplete="off"解决
系统中,有设计填空题,原来程序中,用input(Text)控件, <input type="text" name="NO<%=rs("id&qu ...
- Asp.Net Core通过HttpStatusCode状态处理响应结果
在我的一个Asp.Net Core 2.1 的项目中,我们需要通过获得服务器返回的状态,去实现不用的操作,经过多方资料查询和实践,个人总结一种方法 一.修改控制器 在要返回值的控制器Action中,R ...
- DB9接口定义
注意公头和母头的引脚序号是不一样的.
- java面向对象编程--Josephu问题(丢手帕问题)
Josephu问题为:设编号为1,2,...n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推 ...
- datetime模块
# 其中days = -2,可以根据需要进行替换,这样就可以得到不同需要的日期了. # # 另外:可以通过strftime方法,指定时间的输出格式. # # 除了以上输入的 %Y-%m-%d ...
- FCC JS基础算法题(5):Return Largest Numbers in Arrays(找出多个数组中的最大数)
题目描述: 找出多个数组中的最大数右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组.提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组 ...