TestMe:
Diffblue:
Squaretest:
randoop
工作方式
使用反馈导向的随机测试生成来生成单元测试。用伪随机的方式为被测类生成方法/构造函数调用序列。Randoop 执行它创建的序列,使用执行结果创建捕获程序行为的断言。Randoop 根据代码序列和断言生成测试。
测试生成+测试执行
作用
用法
1、检测到缺陷,修复缺陷直到没有发现错误
2、将测试用例归档为回归测试
3、程序改动,执行回归测试
4、测试用例执行失败,最小化测试集,排查问题
- 存在缺陷,修复缺陷
- 测试用例不够健壮(新旧值不一致,但是差异的产生是正常的),可以忽略此测试用例
排查完问题,如果有新增的测试代码或者有忽略的用例,需要重新运行 randoop 更新回归测试集
使用方式
安装
环境:Java 8 或 Java 11
下载并解压缩文件 randoop-4.3.1.zip
- 是否需要配置环境变量?
${RANDOOP_PATH} 解压缩存档的路径,${RANDOOP_JAR} 解压缩存档中 randoop-all-4.3.1.jar 的位置
运行
通过调用主类来运行
java randoop.main.Main command args...
commands
gentests 生成单测
java -Xmx3000m -classpath myclasspath :${RANDOOP_JAR} randoop.main.Main gentests --testclass=java.util.TreeSet --output-limit=100
minimize 最小化失败的测试集
java -cp ${RANDOOP_JAR} randoop.main.Main minimize --suitepath=ErrorTest0.java --suiteclasspath=myclasspath
help 打印用法信息
java -classpath ${RANDOOP_JAR} randoop.main.Main help
java -classpath ${RANDOOP_JAR} randoop.main.Main help gentests
java -classpath ${RANDOOP_JAR} randoop.main.Main help minimize
evosuite:
用法
覆盖率
扩展
对比