现在的位置: 首页 > 综合 > 正文

黑盒测试

2018年06月07日 ⁄ 综合 ⁄ 共 4391字 ⁄ 字号 评论关闭

1       等价类划分法举例

1.1   判断三角形的类型

等价类划分步骤:

划分等价类并编号形成等价类表——>选择覆盖等价类的测试用例形成测试用例表

某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型(非三角形、一般三角形、等腰三角形及等边三角形)。用等价类划分方法为该程序进行测试用例设计。

 

三角形问题的复杂之处在于输入与输出之间的关系比较复杂。分析题目中给出和隐含的对输入条件的要求:

(1)      整数   

(2)      三个数

(3)      非零数   

(4)      正数  

(5)      任意两边之和大于第三边     

(6)      等腰     

(7)      等边

     如果a 、 b 、c 满足条件(1)~ (4),则输出下列四种情况之一:

1.        如果不满足条件(5),则程序输出为 " 非三角形 " 。

2.        如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。

3.        如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。

4.        如果三条边都不相等,则程序输出为 " 一般三角形 " 。

 

  列出等价类表并编号,形成等价类表

输入条件

有效等价类

编码

无效等价类

编码

整数

均为整数

(1)       

a为非整数

(10)   

b为非整数

(11)   

c为非整数

(12)   

a、b为非整数

(13)   

b、c为非整数

(14)   

a、c为非整数

(15)   

a、b、c均为非整数

(16)   

三个数值

输入a、b、c三个数值

(2)       

只输入a

(17)   

只输入b

(18)   

只输入c

(19)   

只输入a、b

(20)   

只输入b、c

(21)   

只输入a、c

(22)   

输入三个以上的数

(23)   

非零数

都不为零

(3)       

a为0

(24)   

b为0

(25)   

c为0

(26)   

a、b为0

(27)   

b、c为0

(28)   

a、c为0

(29)   

a、b、c均为0

(30)   

正数

都是正数

(4)       

a小于0

(31)   

b小于0

(32)   

c小于0

(33)   

a、b小于0

(34)   

b、c小于0

(35)   

a、c小于0

(36)   

a、b、c均小于0

(37)   

两边之和大于第三边

a+b大于c

b+c大于a

c+a大于b

(5)       

a+b小于c

(38)   

a+b等于c

(39)   

b+c小于a

(40)   

b+c等于a

(41)   

c+a小于b

(42)   

c+a等于b

(43)   

其中两边相等

a=b

(6)       

 

 

b=c

(7)       

 

 

c=a

(8)       

 

 

三边都相等

a=b=c

(9)       

 

 

 

 

  覆盖有效等价类的测试用例:

编号

测试用例

覆盖的等价类

预期结果

a      b      c

1

3      4      5

(1)--(5)

 

2

4      4      5

(1)--(5),(6)

 

3

4      5      5

(1)--(5),(7)

 

4

5      4      5

(1)--(5),(8)

 

5

4      4      4

(1)--(5),(9)

 

 

  覆盖无效等价类的测试用例:

编号

测试用例

覆盖的等价类

预期结果

a      b      c

6       

 

(10)   

 

7       

 

(11)   

 

8       

 

(12)   

 

       

类似的题目,增加三角形的类型判断,增加直角三角形,锐角三角形,钝角三角形,等腰直角三角形。

1.2  年龄日期检查功能

某企业招工,要求报名者出生日期在1970年1月~1990年12月,公司人事管理系统规定日期由8位数字字符组成,前4位表示年,接下来2位表示月,最后2位表示日。现用等价类划分法设计测试用例,来测试该程序的“年龄检查功能”。

1.        划分等价类,编号,建立等价类表

 

输入条件             

    有效等价类       

      无效等价类 

日期的类型及长度

(1)8位数字字符

(6)有非数字字符

(7)少于8位数字字符

(8)多于8位数字字符

年份范围

(2)在1970~1990之间 

(9)小于1970

(10)大于1990

月份范围

(3)在01~12之间       

(11)小于01

(12)大于12

日范围

(4)在01-31之间

(13)小于01

(14)大于31

年月日组合合法

(5)组合合法

(15)组合非法

2.        设计测试用例,

a)        设计测试用力,尽可能覆盖所有的有效等价类

编号

测试用例

覆盖的等价类

期望结果

1

  19801211    

(1)(2)(3)(4)(5)

输入有效 

     

b)       为每一个无效等价类设计一个测试用例,设计结果如下:

编号

测试用例

覆盖的等价类

期望结果

1

 

(6)

输入有效 

2

 

(7)

无效输入    

3

 

(8)

无效输入 

4

 

(9)

无效输入 

5

 

(10)

无效输入 

6

 

(11)

无效输入 

7

 

(12)

无效输入 

8

 

(13)

无效输入 

9

 

(14)

 

10

 

(15)

 

 

 

 

2      边界值分析法

NexDate函数包含三个变量:month 、 day 和 year ,函数输出输入日期后一天的日期。

NextDate函数的边界值分析测试用例。

NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,

时间的取值范围为[1970.1.1~2038.1.18] 或者[1900.1.1~2099.12.31],以后者为例

 

测试用例

mouth

day

year

预期输出

Test1

Test2

Test3

Test4

Test5

Test6

Test7

6

6

6

6

6

6

6

15

15

15

15

15

15

15

1899

1900

1901

2010

2098

2099

2100

Year超出[1900…2099]

1900.6.16

1901.6.16

2010.6.16

2098.6.16

2099.6.16

Year超出[1900…2099]

Test8

Test9

Test10

Test11

Test12

Test13

7

7

7

7

7

7

0

1

2

30

31

32

2001

2001

2001

2001

2001

2001

day超出[1…31]

2001.7.2

2001.7.3

2001.7.33

2001.8.1

day超出[1…31]

Test14

Test15

Test16

Test17

Test18

Test19

0

1

2

11

12

13

15

15

15

15

15

15

2001

2001

2001

2001

2001

2001

Mouth超出[1…12]

2001.1.16

2001.2.16

2001.11.16

2001.12.16

Mouth超出[1…12]

Test20

12

31

1989

1900.1.1或者

Year超出[1900…2099]

或者时间超出范围

Test21

1

1

1900

1900.1.2

Test22

12

30

2099

2099.12.31

Test23

12

31

2099

2100.1.1

或者时间超出范围

Test24

1

1

2100

时间超出范围或者

Year超出[1900…2099]

Test25

11

31

2010

合理但是不合法的时间,提示输入错误,或者不存在

……

 

 

 

 

 

 

3       因果图分析法举例

3.1   题目一

某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。

解答:

1.        根据需求,分析出原因和结果如下:

       原因:

            1——第一列字符是A;

            2——第一列字符是B;

            3——第二列字符是一数字。

       结果:

            21——修改文件;

              22 ——给出信息L;

            23——给出信息M。

中间状态

      11——第一列字符已输入

约束条件

1、2互斥

2.        其对应的因果图如下: 

3.        根据因果图建立判定表。

4       场景法设计测试用例

4.1  ATM机操作

分析基本流和备选流

 

基本流

ATM 处于准备就绪状态。

步骤1:准备提款 - 客户将银行卡插入 ATM 机。

步骤2:验证银行卡 - ATM 机从银行卡的磁条中读取帐户信息,并检查它是否属于可以接收的银行卡。

步骤3:输入密码

步骤4:ATM 选项 - ATM 显示在本机上可用的各种选项。在此事件流中,客户选择“取款”。

步骤5:输入金额 – 输入要从 ATM 中提取的金额。对于此事件流,客户可以选择预设的金额(100、200、500、800)也可以输入金额。

步骤6:授权-ATM 通过将卡ID、金额以及帐户信息作为一笔交易发送给银行系统来启动验证过程。对于此事件流,银行系统处于联机状态,而且对授权请求给予答复,批准完成取款过程,并且更新帐户信息。

步骤7:出钞 - 提供现金。

步骤8:打印凭条

步骤9:退卡。ATM 还相应地更新内部记录。

用例结束时 ATM 又回到准备就绪状态。

 

备选流 1 – ATM机故障

ATM机故障,需要提示暂停服务

备选流 2 - 银行卡无效

在基本流步骤 2 中 - 验证银行卡,如果卡是无效的,则卡被退回,同时会提示相关消息。

备选流 3 - 帐户不存在

在基本流步骤 2 中 - 验证帐户,如果银行系统返回的代码表明找不到该帐户或禁止从该帐户中提款,则 ATM 显示适当的消息同时 ATM 返回到准备就绪状态。

备选流 4 – 密码错误

在基本流步骤 3中,密码错误

备选流 4x – 密码错误多次

在基本流步骤 3中,密码错误3次,吞卡

备选流 5- ATM 内没有现金

在基本流步骤 4 中 - ATM 选项,如果 ATM 内没有现金,则“取款”选项将无法使用。

备选流 5x - ATM 内现金不足

在基本流步骤 5 中- 输入金额,如果 ATM 机内金额少于请求提取的金额,则将显示一则适当的消息,并且在步骤5 - 输入金额处重新加入基本流。

备选流 6 – 账户金额不足

在基本流步骤5 - 输入金额大于账户金额,则 ATM 显示适当的消息并且在步骤 5 - 输入金额处重新加入基本流。

备选流 7 -达到每日最大的提款金额

ATM 显示适当的消息并在步骤5 - 输入金额上重新加入基本流。

备选流8

在基本流步骤6中,例如网络问题,导致记录不能更新,则取款失败,提示相应信息。

备选流9- 出钞错误

在基本流步骤7中 – 出钞错误

备选流10- 打印错误

在基本流步骤9中 – 打印错误

备选流 11 - 退出

退出操作是否在基本流步骤中间任意环节可以激活,激活后是否影响正常操作

备选流 12 - “翘起”

ATM 包含大量的传感器,用以监控各种功能,如电源检测器、不同的门和出入口处的测压器以及动作检测器等。如果某个传感器被激活,则警报信号将发送给警方而且 ATM 进入“安全模式”,在此模式下所有功能都暂停使用,直到采取适当的重启/重新初始化的措施。

 

设计测试场景

 

场景 1 - 成功的提款

基本流

场景 2 - ATM 机故障

基本流 备选流 1

场景 3 – 银行卡无效

基本流 备选流 2

抱歉!评论已关闭.