码迷,mamicode.com
首页 > 其他好文 > 详细

黑盒测试:测试用例的设计方法

时间:2016-05-07 10:21:15      阅读:551      评论:0      收藏:0      [点我收藏+]

标签:

黑盒测试常用的方法:等价类、边界值、因果图、判定表、正交实验、场景法、状态转换,还有错误猜测法等。


等价类

所谓等价类划分就是把程序的输入域划分成若干部分,然后从每部分选取少量的具有代表性的数据作为测试用例。通过划分等价类可以大幅度的减少测试工作量。

六条确定等价类的原则:

1.       在输入条件规定了输入值的范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。

2.       在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

3.       在输入条件是一个布尔量的时候,可确定一个有效等价类和一个无效等价类。

4.       在规定了输入数据的一组值(n个),并且程序要对每个输入值分别处理的情况下,可以确定n个有效等价类和一个无效等价类。

5.       在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

6.       在确知已划分的等价类中,各元素在程序中的处理方式不同的情况下,则应再将该等价类划分为更小的等价类。

在确定测试用例时有个原则要注意:一条测试用例尽量覆盖所有的有效等价类,一个无效等价类对应一条测试用例。

 我们假设三条边是:A、B、C。如果构成三角形应该满足下面的条件:

              A>0,B>0,C>0 并且A+B>C,A+C>B,B+C>A

              等腰的还要满足A=B或A=C或B+C

              等边的要满足A=B且A=C且B=C

根据这些条件我们来列出等价类表

输入条件

有效等价类

无效等价类

是否构成三角形

A>0                   (1)

A<=0                  (7)

B>0                   (2)

B<=0                  (8)

C>0                   (3)

C<=0                  (9)

A+B>C                 (4)

A+B<=C               (10)

A+C>B                 (5)

A+C<=B               (11)

B+C>A                 (6)

B+C<=A               (12)

是否等腰三角形

A=B                  (13)

A!=B and A!=C and B!=C  (16)

A=C                  (14)

B=C                  (15)

是否等边三角形

A=B and A=C and B=c    (17)

A!=B                 (18)

A!=C                 (19)

B!=C                 (20)

根据这个表我们就可以确定测试用例了

序号

(A B C)

覆盖的等价类

输出

1

3 4 5

1,2,3,4,5,6

一般三角形

2

0 1 2

7

不构成三角形

3

1 0 2

8

4

1 2 0

9

5

1 2 3

10

6

3 5 2

11

7

3 1 2

12

8

3 3 4

1,2,3,4,5,6,13

是等腰三角形

9

3 4 3

1,2,3,4,5,6,14

10

4 3 3

1,2,3,4,5,6,15

11

3 4 5

1,2,3,4,5,6,16

不是等腰三角形

12

3 3 3

1,2,3,4,5,6,17

是等边三角形

13

3 4 4

1,2,3,4,5,6,15,18

不是等边三角形

14

3 3 4

1,2,3,4,5,6,13,19

15

3 4 3

1,2,3,4,5,6,14,20



边界值

边界值分析法选择测试用例的原则:

1.如果输入条件规定了值得范围,则应取上点、离点和内点作为输入数据(内点:区域内的点;上点:无论开区间还是闭区间,都是边界上的点;离点:开区间的离点就是区域内离上点最近的点,闭区间的离点就是区间外离上点最近的点)

2<=X<=6: 测试用例为1,2,4,6,7

2<X<6:测试用例为2,3,4,5,6(2、6是上点,3、5是离点,4是内点)

2.如果输入条件规定了值得个数,则用最大个数,最小个数,比最大格式多1和比最小个数少1作为测试用例

3.将1、2用于输入条件

4.若输出域或者输出域是有序集合,选择第一个元素和最后一个元素作为测试用例

5.若使用了内部数据结构,选择内部数据结构边界值作为测试用例


因果图和判定表

判定表法可以略过因果图的绘制,直接列出所有组合进行筛选。

在实际测试中,许多操作时具有相互联系的,只有执行A动作才会产生B结果,像这种测试我们就需使用因果图。

现在地铁一卡通充值,窗口越来越少了,都推荐自动充值机充值了,我们把它简化一下,只能投入50和100的人民币,相应的也只能充值50和100元。

技术分享技术分享

根据因果图填判定表:

技术分享

技术分享

技术分享技术分享

技术分享技术分享技术分享


正交实验法

正交实验法主要适用于一些配置功能的界面和兼容性测试,其他需要组合的界面。正交实验法也是针对有效等价类的。

有一款打印软件,打印范围分为全部、当前幻灯片、给定范围,共三种情况;打印内容分为幻灯片、讲义、备注页、大纲视图,共四种方式;打印颜色/灰度分为颜色、灰度、黑白,共三种设置;打印效果分为幻灯片加框和幻灯片不加框两种方式。如果要将这些情况全部都覆盖测试,应该是3*4*3*2=72种情况。这些用例太多,全部测试任务量太多。

       这种情况我们就可以使用正交试验法来减少测试用例数。首先看一下关于正交试验的一些基本概念和术语。因素:凡欲考察的变量称为因素,这里就是4个,打印范围、打印内容、打印颜色/灰度、打印效果。水平就是变量的取值,这里打印范围的水平是3(有3种情况),打印内容是4种,打印颜色/灰度是3种,打印效果是2种。接下来我们就需要找适合的正交表。这里最大的水平是4,因素是4,所以4的4次幂的正交表就符合我们的要求。

技术分享



场景法

场景法最主要的就是能够分析出基本流和备选流。场景法主要适用于安装程序、向导类功能和多界面切换完成的功能。

基本流就是按照正确的事件流来实现的流程。备选流就是出现故障或缺陷的过程。场景就是若干事件流首尾拼接构成一个测试场景。来看一个场景图:

技术分享

每个场景对应一个测试用例,对每个用例进行评审,删掉重复的就可以了。

状态迁移法

被测系统的功能依赖于数据的状态,像常见的工作流系统(OA),对于这类软件状态迁移法就在合适不过了。

案例研究1:某航空公司的订票系统

 

 

 

 

 

 

 

 

 

 

客户提供机票信息,订票系统根据这些信息订票,将订单状态标记为Made

 

 

 

 

 

 

 

同时订票系统启动计时器,要求客户在指定时间内必须付费

 

 

 

 

 

 

 

 

 

计时器超时前,客户付费,订单状态标记为Paid

 

 

 

 

 

 

 

 

 

 

客户可以打印处于Paid状态的订单机票,订单系统将为用户出票,订单状态标记为Ticketed

 

 

 

 

 

 

客户使用机票登机后,订单状态标记为Used(结束订单)

 

 

 

 

 

 

 

 

 

订票系统计时器超时后客户未付费,订票系统将取消本次机票预订,订单状态为CanceledNonPay

 

 

 

 

 

若在计时器超时之前,客户要求取消本次订票,订票系统将取消本次机票预订,订单状态为CanceledByCustomer

 

 

 

 

若客户在付费后取消订票,订单状态标记为CanceledByCustomer,但需要将相关的机票款项按规定退还给客户

 

 

 

 

若客户在拿到机票后取消订票,订单状态标记为CanceledByCustomer,客户需要将机票退回航空公司,航空公司收到退票后将相关的机票款项按规定退还给客户

 

 

 

 

 

 

 

 

 

 

 

 

 

电子机票的状态

 

事件

 

 

 

 

 

 

 

 

 

 

Made初始创建

 

提交订单

 

 

 

 

 

 

 

 

 

 

Paid已付费

 

客户付费

 

 

 

 

 

 

 

 

 

 

Ticketed已出票

 

打印机票

 

 

 

 

 

 

 

 

 

 

Used已使用

 

登机使用

 

 

 

 

 

 

 

 

 

 

CanceledNonPay超时取消

 

计时器超时未付费

 

 

 

 

 

 

 

 

 

CanceledByCustomer用户取消

客户取消

 

 

 

 

 

 

 

 

 

 

 

 

客户已付费取消

 

 

 

 

 

 

 

 

 

 

 

拿到机票后取消

 

 

 

 

 

 

 

 

 

将这些状态和事件状态图表示

技术分享

在形成测试用例的时候有几个准则:

(1)至少覆盖所有状态一次啊

(2)至少覆盖所有事件一次

(3)至少覆盖所有转换一次

(4)至少覆盖所有路径一次


黑盒测试:测试用例的设计方法

标签:

原文地址:http://blog.csdn.net/iamxiaoguizi/article/details/51329310

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!