黑盒测试方法实例分析

一:三角形问题(等价类划分法)

例:输入三个整数为三角形的三条边的长度值,程序打印输出这个三角形为不等边的,等腰的,或是等边三角形。

分析:

设三边分别为A,B,C,如能构成三角形的三边,须:

●A>O,B>0,C>0,且A+B>C,B+C>A,A+C>B;

●如是等腰三角形,则要判断A=B||A=C;

●如是等边三角形,须判断是否A=B,且B=C,且A=C;

由此可得三角形等价类设计表:

输入条件有效等价类无效等价类
是否为三角形的三边A>0              (1)
B>0              (2)
C>0              (3)
A+B>C            (4)
B+C>A            (5)
A+C>B            (6)
A<=0              (7)
B<=0              (8)
C<=0              (9)
A+B<=C            (10)
B+C<=A            (11)
A+C<=B            (12)
是否为等腰三角形A=B              (13)
B=C              (14)
A=C              (15)
A≠B且B≠C且C≠A(16)
是否为等边三角形A=B且B=C且C=A  (17)A≠B              (18)
B≠C              (19)
C≠A              (20)

设计测试用例,输入顺序为A,B,C

序号“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“1,3,2”(12)
7“3,1,2”(11)
8“3,3,4”(1),(2),(3),(4),(5),(6),(13) 
  等腰三角形
9“3,4,4”(1),(2),(3),(4),(5),(6),(14)
10“3,4,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),(18) 
 非等边三角形
14“3,4,3”(1),(2),(3),(4),(5),(6),(19)
15“3,3,4”(1),(2),(3),(4),(5),(6),(20)

二:找零钱最佳组合(边界值分析法)

例:假设商店货品价格(R)皆不大于100元(且为整数),若顾客付款在100元内(P),求找给顾客最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种);

1:分析输入的情形

R:商店货品价格(R=<100且R为整数)     P:顾客付款金额(0<P<100)

●R > 100              (无效输出)(1)

●R <= 0               (无效输出)(2)

(1)(2)为R的无效输入

●P > 100(多付)      (无效输出)(3)

●0 < R < = 100

 P < R  (少给)      (无效输出)(4)

(3)(4)为P的无效输入

●R<= P <= 100                    (5)          

●0 < R < = 100                   (6)

(5)(6)同时满足,交易才能进行

2:分 析 输 出 情 形

设PR=P-R(即PR为找给顾客的余额)

●N50      N50 = 1     (PR>=50)       (7)

           N50 = 0     (PR<50)        (8)

●N10      4>=N10>=1    (40>=PR>=10)    (9)

           N10 = 0      (PR<10)         (10)

●N5       N5=1                         (11)

           N5 = 0      (PR减去个位上钱数能被10整除)(如14-4=10) (12)

●N1       4>=N1>=1                                (13)

           N1 = 0      (PR为5的倍数)            (14)

3:由上述输入/输出条件组合出可能的情形 。

●R > 100                                   (1)

●R <= 0                                    (2)

●0 < R <= 100, P > 100                     (3)

●0 < R <= 100, P < R                       (4)

●0 < R <= 100, R <= P <= 100, RR = 50      (5)(6)(7)

●0 < R <= 100, R <= P <= 100, RR = 49      (5)(6)(8)(9)(11)

●0 < R <= 100, R <= P <= 100, RR = 10      (5)(6)(9)

●0 < R <= 100, R <= P <= 100, RR = 9       (5)(6)(10)(11)(13)

●0 < R <= 100, R <= P <= 100, RR = 5      (5)(6)(11)

●0 < R <= 100, R <= P <= 100, RR = 4      (5)(6)(13)

●0 < R <= 100, R <= P <= 100, RR = 1      (5)(6)(13)

●0 < R <= 100, R <= P <= 100, RR = 0      (5)(6)(14)

4、 为 满 足 以 上 之 各 种 情 形 , 测 试 资 料 设 计 如 下 :

1).  货品价格 = 101

2).  货品价格 = 0

3).  货品价格 = -1

4).  货品价格 = 100,  付款金额 = 101

5).  货品价格 = 100,  付款金额 = 99

6).  货品价格 = 50,   付款金额 = 100

7).  货品价格 = 51,   付款金额 = 100

8).  货品价格 = 90,   付款金额 = 100

9).  货品价格 = 91,   付款金额 = 100

10). 货品价格 = 95,   付款金额 = 100

11). 货品价格 = 96,   付款金额 = 100

12). 货品价格 = 99,   付款金额 = 100

13). 货品价格 = 100,  付款金额 = 100

三:NextDate问题设计(决策表法实例分析)

例:NextDate (int month, int day, int year)函数规定:输入三个整数:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。

步骤如下:

1)构造决策表

●M1={月份:30天/月},

M2={月份: 31天/月,12月除外},

M3={月份: 12月},M4={月份: 2月}

●D1={日期:1<=日<=27},

D2={日期:日=28},

D3={日期:日=29} ,

D4={日期:日=30},

D5={日期:日=31}

●Y1={年:闰年},Y2={年:平年}

  注:二月:平年28天,闰年29天

条件桩:

●C1:月份在{M1,M2,M3,M4}中之一

●C2:日期在{D1,D2,D3,D4 ,D5}中之一

●C3:年在{Y1,Y2}中之一

动作桩:

●A1:不可能

●A2:日期增1

●A3:日期复位(置1)

●A4:月份增1

●A5:月份复位(置1)

●A6:年增1

 C1:月C2:日C3:年A1:不可能A2:日期+1A3:日期复位
  (置1)
A4:月份+1A5:月份复位
   (置1 )
A6:年+1
1M1D1      
2M1D2      
3M1D3      
4M1D4     
5M1D5      
6M2D1      
7M2D2      
8M2D3      
9M2D4      
10M2D5     
11M3D1      
12M3D2      
13M3D3      
14M3D4      
15M3D5    
16M4D1      
17M4D2Y1     
18M4D2Y2    
19M4D3Y1    
20M4D3Y2     
21M4D4      
21M4D5      

2)由决策表设计测试用例,得测试用例表

用例编号预期输出
1--3412/28/2920012001年4月13/29/30日
443020012001年5月1日
54312001不可能
6--9115/28/29/3020012001年1月16/29/30/31日
1013120012001年2月1日
11-141215/28/29/3020012001年12月16/29/30/31日
15123120012002年1月1日
1621520012001年2月16日
1722820042004年2月29日
1822820012001年3月1日
1922920052005年3月1日
202292001不可能
21,22230/312001不可能

 

四:工资发放问题(因果图)

例:某厂工资发放,分析测试需求,列出输入和输出条件,情况描述如下:

●工资分年薪制a1,月薪制a2;

●错误程度分普通a3,严重a4;

●工资为a1的员工范普通错误时扣工资1%(b1),犯严重错误时扣工资2%(b2);

●工资为a2的员工范普通错误时扣工资2%(b3),犯严重错误时扣工资4%(b4);

其中a1与a2互斥,b1,b2与b3,b4互斥;a3和a4可同时兼备。

分析:(因果图)-转化成->(判定表)-转换成->(测试用例表)

 判定表:

输入 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a1TTTTFFFF
a2FFFFTTTT
a3TFTFTFTF
a4FTTFFTTF
输出        
b1× ×     
b2 ××     
b3    × × 
b4     ×× 

可得测试用例表如下:

  测试用例编号    输入数值   预期输出
1工资为a1的员工,犯普通错误      b1
2工资为a1的员工,犯严重错误      b2
3工资为a1的员工,同时犯严重错误和普通错误      b1+b2
4工资为a1的员工,没犯错误       0
5工资为a2的员工,犯普通错误      b3
6工资为a2的员工,犯严重错误      b4
7工资为a2的员工,同时犯严重错误和普通错误      b3+b4
8工资为a2的员工,没犯错误      0
  • 9
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值