2

测试工具的使用:JUnit、PICT、AllPairs

目录

 

  1. 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改进

若是需要的测试方法过多,不想一个测试,则:

  1. 选择要测试的方法,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条测试用例

 

 

 

 

 

 

 

 

 

posted @ 2020-05-27 23:10  风吟令  阅读(502)  评论(0编辑  收藏  举报