ubuntu20+VM 配置Defects4j+测试运行
目录
1.软件下载
1.1 ubuntu20
1.2 VM16.0
链接:https://pan.baidu.com/s/1Nz_EVHJQ9MbKO3xxEopneg
提取码:xuef
1.3 xfpt7
去官网申请学校免费版本,注意协议选择FTP,如果遇到文件无法上传的问题阅读参考2链接
1.4 jdk1.8
链接:https://pan.baidu.com/s/1FKNc4HrCb7OPs7qYy5iyjA
提取码:g7zp
1.5 defects4j
链接:https://pan.baidu.com/s/1GlsD8U6_WIgAFcPVUO1Ycw
提取码:fcow
GIT:https://github.com/rjust/defects4j
2.VM环境搭建
2.1 ubuntu的安装
B站上随便找一个视频,很简单的。
2.2 jdk1.8配置
切换到jdk的目录 执行以下代码
tar -xvf jdk-8u181-linux-x64.tar.gz (解压jdk)
sudo vi /etc/profile (切换到根目录下)
在profile配置文件中加入以下代码
export JAVA_HOME=/home/liufangzheng/桌面/liu/jdk1.8.0_161 (#改成自己的地址)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
配置完成后,打开终端输入
java -version
如果成功则会显示java版本号,如果失败可能是因为路径配置的问题。
3.配置Defects4J缺陷数据集
3.1 安装基础工具
安装前期需要的配置工具
sudo apt install git -y
sudo apt install subversion -y
sudo apt install curl -y (defects4j下载文件需要)
sudo apt install htop -y
sudo apt install make -y (cpan需要)
sudo apt install gcc -y (cpan需要,否则DBI模块无法下载)
3.2 配置Defects4J(自动,如果自动配置失败可以手动进行配置)
cd /defects4j (改成自己的defects4j目录 )
sudo apt install cpanminus
sudo cpanm --installdeps . (一定要sudo的,不然无法写入,等于没装)
./init.sh
然后修改 添加defects4j环境变量
sudo vi /etc/profile
在文件底部加入
export PATH=$PATH:/home/liufangzheng/桌面/liu/defects4j/framework/bin (这个也是自己的地址)
export DEFECTS4J_HOME=/home/liufangzheng/桌面/liu/defects4j-master
source /etc/profile (配置立刻生效)
由于自动下载会过慢,而导致部分文件下载失败,如果遇到此问题,应使用手动操作配置defects4j
3.3 配置Defects4J(手动)
手动下载如下压缩包:
4. https://defects4j.org/downloads/defects4j-repos.zip
5. https://mutation-testing.org/downloads/major-1.3.4_jre7.zip
6. https://github.com/EvoSuite/evosuite/releases/download/v1.1.0/evosuite-1.1.0.jar
7. https://github.com/EvoSuite/evosuite/releases/download/v1.1.0/evosuite-standalone-runtime-1.1.0.jar
8. https://github.com/randoop/randoop/releases/download/v4.2.5/randoop-4.2.5.zip
9. https://defects4j.org/downloads/defects4j-gradle-dists.zip
10. https://defects4j.org/downloads/defects4j-gradle-deps.zip
11. https://github.com/jose/build-analyzer/releases/download/v0.0.1/build-analyzer-0.0.1.jar
切换到defects4j目录下
mkdir manual_download (创建文件,将4-11文件放入其中)
在此文件夹中创建cp.sh脚本
vi cp.sh
将以下内容写入(第一行地址改为自己的地址)
BASE=/home/apr-demo/env/defects4j/
DIR_REPOS="$BASE/project_repos"
DIR_LIB_GEN="$BASE/framework/lib/test_generation/generation"
DIR_LIB_RT="$BASE/framework/lib/test_generation/runtime"
DIR_LIB_GRADLE="$BASE/framework/lib/build_systems/gradle"
cp defects4j-repos.zip $DIR_REPOS
cp major-1.3.4_jre7.zip $BASE
cp evosuite-1.1.0.jar $DIR_LIB_GEN
cp evosuite-standalone-runtime-1.1.0.jar $DIR_LIB_RT
cp randoop-4.2.5.zip $DIR_LIB_GEN
cp defects4j-gradle-deps.zip $DIR_LIB_GRADLE
cp defects4j-gradle-dists.zip $DIR_LIB_GRADLE
cp build-analyzer-0.0.1.jar $BASE/framework/lib
运行一下这个脚本(./cp.sh),然后再回到defects4j的主目录,注意:要相应改动init.sh文件中的内容,即禁止download_url函数。
3.4 Defect4J测试
defects4j checkout -p Lang -v 1b -w /tmp/lang_1_buggy
cd /tmp/lang_1_buggy
defects4j compile
defects4j test
参考
1.https://blog.csdn.net/weixin_39278265/article/details/115194261?spm=1001.2014.3001.5501.
2.https://blog.csdn.net/GUOQIANG01486/article/details/78646348