Ubuntu 16.04 使用 Major mutation framework

  1. 安装 OpenJDK-7
  2. 下载并安装 Major mutation framework,安装目录记为 MAJOR_PATH,即/....../major/
  3. 在可修改 Java 环境的情况下,配置环境变量

    # 编辑环境变量文件:
     sudo gedit /etc/profile
    # 在文件末尾输入以下内容
     export MAJOR_HOME=MAJOR_PATH
     export PATH=${MAJOR_HOME}/bin:$PATH
    # 输入以下命令使设置生效:
     source /etc/profile
    # 验证 Javac 版本:
     javac -version
    # 输入内容如下:
     javac 1.7.0-Major-v1.3.2
    # 验证 Ant 版本:
     ant -version
    # 输出内容应类似于此:
     Apache Ant(TM) version 1.8.4-Major-v1.3.2 compiled on May 31 2017
    
  4. 在不能修改 Java 环境的情况下 (如使用 Microsoft Z3), 使用 MAJOR 进行编译的方法

    # 用命令行编译
     $MAJOR_HOME/bin/javac
    # 用 Apache Ant 编译
     $MAJOR_HOME/bin/ant
    
  5. 编译 Mml 脚本
    变异对象 XXX.java 都有定制的 Mml 脚本文件 XXX.mml, 语法参考 MAJOR_PATH/doc/major.pdf.
    输入以下命令, 其中 tutorial.mml 是为 example/ant/src/triangle/triangle.java 定制的脚本:

     mmlc $MAJOR_HOME/mml/tutorial.mml $MAJOR_HOME/mml/tutorial.mml.bin

    MAJOR 提供的编译器 mmlc 会编译该脚本并生成一个二进制文件, 第二个命令参数是可选的, 缺省情况下编译器会在脚本文件后加 .bin 作为目标二进制文件名.

  6. 用命令行编译变异对象 MAJOR_PATH/example/standalone/src/triangle/Triangle.java
    使用 -XMutator 变异选项进行编译, 产生日志文件 mutants.log, 位于当前用户的目录下:

    javac -XMutator="$MAJOR_HOME/mml/tutorial.mml.bin" $MAJOR_HOME/example/standalone/src/triangle/Triangle.java

    进入目录 MAJOR_PATH/example/standalone, 执行以下命令可运行成功:

    sh run.sh

    如果 Java 程序不位于根目录 MAJOR_PATH 下, 需要修改 run.sh 中的 MAJOR_HOME :

    MAJOR_HOME="../../" 改为 MAJOR_HOME="MAJOR_PATH"
    
  7. 用 Apache Ant 编译变异对象 MAJOR_PATH/example/ant/src/triangle/Triangle.java

    # 进入 build.xml 所在文件夹: 
     cd $MAJOR_HOME/example/ant
    # 执行命令编译源文件, 产生日志文件 mutants.log, 位于目录 MAJOR_PATH/example/ant 下:
     ant -DmutOp="=$MAJOR_HOME/mml/tutorial.mml.bin" clean compile
    # 执行命令编译测试文件:
     ant comple.tests
    # 执行命令进行变异测试
     ant mutation.test

    进入目录 MAJOR_PATH/example/ant, 执行以下命令可运行成功

    sh run.sh

    如果 Java 程序不位于根目录 MAJOR_PATH 下, 需修改 run.sh 中的 MAJOR_HOME :

    MAJOR_HOME="../../" 改为 MAJOR_HOME="MAJOR_PATH"

    还要修改 build.xml 文件中的 major 属性:

    <property name="major" value="../../bin/javac"/> 改为
    <property name="major" value="MAJOR_PATH/bin/javac"/>
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值