测试工具的使用:JUnit、PICT、AllPairs
目录
- JUnit----------------------------------------------------------------------------------------------------1
1.1 Junit导入-------------------------------------------------------------------------------------------
1.2 使用方法--------------------------------------------------------------------------------------------
1.2.1 编写测试类--------------------------------------------------------------------------------------
1.2.2 运行测试类--------------------------------------------------------------------------------------
1.3 测试结果分析------------------------------------------------------------------------------------
1.4 源代码----------------------------------------------------------------------------------------------
1.5 测试用例代码--------------------------------------------------------------------------------------
1.6 改进------------------------------------------------------------------------------------------------
1.7 总结------------------------------------------------------------------------------------------------10
2 PICT----------------------------------------------------------------------------------------------11
2.1 PICT 下载---------------------------------------------------------------------------------------
2.2 PICT安装----------------------------------------------------------------------------------------
2.3 测试用例---------------------------------------------------------------------------------------
2.4 在PICT安装目录下创建参数MyTest.txt文件(注意都要使用英文符号)。
2.5 测试结果----------------------------------------------------------------------------------------13
3 .Allpairs
3.1下载解压-------------------------------------------------------------------------------------------14
3.2使用-----------------------------------------------------------------------------------------------
3.3制作数据并保存-------------------------------------------------------------------------------
3.4运行-----------------------------------------------------------------------------------------------
3.5结果-----------------------------------------------------------------------------------------------
1.1 导入Junit4
1.2JUnit使用
1.2.1 编写测试类
1.2.2 运行测试类
1.3 . 测试结果分析
1). Runs:表示总共有几个测试方法,已经运行了几个;
2). Errors:表示抛出异常的测试方法的个数;
3). Failures:表示失败的测试方法的个数;
4). 打钩:表示通过测试方法。
5). 另外有个绿色的进度条表示测试成功,红色的进度条则表示测试失败。
demo的结构:
1.4源代码
以三角形的代码为例:
Triangle.java
package com.hyc;
public class Triangle {
protected long lborderA = 0;
protected long lborderB = 0;
protected long lborderC = 0;
// Constructor
public Triangle(long lborderA, long lborderB, long lborderC) {
this.lborderA = lborderA;
this.lborderB = lborderB;
this.lborderC = lborderC;
}
/**
* check if it is a triangle
*
* @return true for triangle and false not
*/
public boolean isTriangle(Triangle triangle) {
boolean isTriangle = false;
// check boundary
if ((triangle.lborderA > 0 && triangle.lborderA <= Long.MAX_VALUE)
&& (triangle.lborderB > 0 && triangle.lborderB <= Long.MAX_VALUE)
&& (triangle.lborderC > 0 && triangle.lborderC <= Long.MAX_VALUE)) {
// check if subtraction of two border larger than the third
if (diffOfBorders(triangle.lborderA, triangle.lborderB) < triangle.lborderC
&& diffOfBorders(triangle.lborderB, triangle.lborderC) < triangle.lborderA
&& diffOfBorders(triangle.lborderC, triangle.lborderA) < triangle.lborderB) {
isTriangle = true;
}
}
return isTriangle;
}
/**
* Check the type of triangle
*
* Consists of "Illegal", "Regular", "Scalene", "Isosceles"
*/
public String getType(Triangle triangle) {
String strType = "Illegal";
if (isTriangle(triangle)) {
// Is Regular
if (triangle.lborderA == triangle.lborderB
&& triangle.lborderB == triangle.lborderC) {
strType = "Regular";
}
// If scalene
else if ((triangle.lborderA != triangle.lborderB)
&& (triangle.lborderB != triangle.lborderC)
&& (triangle.lborderA != triangle.lborderC)) {
strType = "Scalene";
}
// if isosceles
else {
strType = "Isosceles";
}
}
return strType;
}
/**
* calculate the diff between borders
*
* */
public long diffOfBorders(long a, long b) {
return (a > b) ? (a - b) : (b - a);
}
/**
* get length of borders
*/
public long[] getBorders() {
long[] borders = new long[3];
borders[0] = this.lborderA;
borders[1] = this.lborderB;
borders[2] = this.lborderC;
return borders;
}
}
1.5测试用例
TriangleTest.java
package com.hyc;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class TriangleTest {
}
1.6改进
若是需要的测试方法过多,不想一个测试,则:
- 选择要测试的方法,New --> 选择other选择Junit Test Case
创建结果
在此基础上修改测试类
1.Failure 一般由测试单元使用断言方法判断失败引起的,这个报错,说明测试点发现了问题,即程序输出的结果和我们预期的不一样
2.error 是由代码异常引起的,它可以产生代码本身的错误,也可以是测试代码中的一个隐藏bug,测试用例不是用来证明你是对的,而是用来证明你没错
关于JUnit运行流程
}
1.7总结
@BeforeClass
修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件(针对所有测试,只执行一次 )
@AfterClass
所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )
@Before和@After 会在每个测试方法前后各执行一次
@Test:测试方法,在这里可以测试期望异常和超时时间
@Ignore:忽略的测试方法
2 PICT
2.1.pict33: http://pairwise.org/tools.asp
2.2.安装
一路Next----->
2.3 测试用例
账户名:空/不存在/超长/超短/正常 (5种)
密码:空/不匹配/超长/超短/正常 (5种)
验证码:空/不匹配/超长/超短/正常 (5种)
会话保存:保存一个月/保存三个月/保存一年/保存三年/保存十年(4种)
按钮:确定/取消
分析:
此测试用例会产生5*5*5*5*2=1250种组合情况,用例开销过大,采用PICT成对组合覆盖会减少测试用例数量,同时可以保证覆盖率。
2.4 在PICT安装目录下创建参数MyTest.txt文件(注意都要使用英文符号)。
1).打开cmd,输入命令,进入PICT文件夹,然后pict MyTest.txt产生了 34种测试用例
1.1 产生的结果测试用例也可以保存在excel文件中方便查看使用。首先在PICT目录下新建xls文件Mytest.xls,然后输入命令:pict Mytest.txt>Mytest.xls。就会将结果存入该excel文件中
3 .Allpairs
3.1下载解压
3.2使用
3.3找个组合测试用例,制作取值表
3.4复制取值表的 数据保存到txt文档中,table.txt
3.4 allpairs.exe table.txt > output.txt
3.5 结果
一共10条测试用例