Evosuite使用方法入门

Evosuite使用方法入门

 

1、简要介绍

  • EvoSuite开源工具能够基于Eclipse进行测试用例的自动生成,生成的测试用例符合Junit标准(直接生成可进行Junit的java文件),知足分支覆盖(即断定覆盖)|html

  • Evosuite分为Eclipse插件使用和命令行两种使用方法,推荐使用命令行。如下会详细说明java

2、前提条件:

  • 配置 JDKeclipse

  • 安装 Apache Maven工具

3、Evosute插件

  • 安装方式:
    • 在eclipse中点击菜单栏的help测试

    • 选择Install New Softwareui

    • 点击Add按钮编码

    • 在location位置输入http://www.evosuite.org/updatespa

    • 选中 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"为例

 

  1. 经过cmd打开命令行

  2. 进入到evosuite文件所在的路径下

  3. evosuite执行对象是字节码文件,因此须要将待测的Java文件编译成.class的字节码文件

  4. 经过java -jar evosuite.jar(evosuite.jar是文件的名称),因为没有赋参数,使用默认参数-help,显示全部的可选参数

  5. 经过执行如下命令自动生成测试用例(参数将在下面解释)

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

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

    • evosuite-tests下生成如下两个文件,第二个文件能够忽略

  7. 将BranfuckEngine_ESTest.java中的测试用例复制到eclipse下

  8. 修改错误,运行

  9. 结束。

 

  • 经常使用的参数解释
    • -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能够运行成功)

相关文章
相关标签/搜索