软件测试系列(二)——黑盒测试的例子

一、判断读入的3个整数能否构成三角形?并判断所构成的三角形的形状

测试场景:

一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是一般三角形、是等腰的、还是等边的。 

请用判定表或因果图法完成该程序的测试用例设计。

解答:

使用判定表法

1.设读入三个数分别记为A、B、C

A>0&B>0&C>0

T

T

T

T

T

T

T

T

F

F

F

F

F

F

F

F

A+B>C&B+C>A&

A+C>B

T

T

T

T

F

F

F

F

T

T

T

T

F

F

F

F

A=B|B=C|A=C

T

T

F

F

T

T

F

F

T

T

F

F

T

T

F

F

A=B&B=C

T

F

T

F

T

F

T

F

T

F

T

F

T

F

T

F

不是三角形

 

 

X

 

X

X

X

X

X

X

X

X

X

X

X

X

等边三角形

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

等腰三角形

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一般三角形

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

(注:应删除

  1. 满足“A=B&B=C”但不满足“A=B|B=C|A=C”
  2. 满足“A=B&B=C”“A=B|B=C|A=C”但不满足“A+B>C&B+C>A&A+C>B”
  3. 满足“A=B|B=C|A=C”但不满足“A+B>C&B+C>A&A+C>B”
  4. 满足“A+B>C&B+C>A&A+C>B”但不满足“A>0&B>0&C>0”

等显然矛盾的情况)

删除条件矛盾的规则后:

A>0&B>0&C>0

T

T

T

T

F

F

F

A+B>C&B+C>A&

A+C>B

T

T

T

F

F

F

F

A=B|B=C|A=C

T

T

F

F

T

T

F

A=B&B=C

T

F

F

F

T

F

F

不是三角形

 

 

 

X

X

X

X

等边三角形

X

 

 

 

 

 

 

等腰三角形

 

X

 

 

 

 

 

一般三角形

 

 

X

 

 

 

 

 

 

2.合并判定表:

A>0&B>0&C>0

T

T

T

F

A+B>C&B+C>A&

A+C>B

T

T

T

F

F

A=B|B=C|A=C

T

T

F

F

T

A=B&B=C

T

F

F

F

不是三角形

 

 

 

X

X

等边三角形

X

 

 

 

 

等腰三角形

 

X

 

 

 

一般三角形

 

 

X

 

 

 

 

3.依据简化后的判定表的每一条规则,编写测试用例:

序号

[A,B,C]

覆盖的条件桩

输出的动作项

1

[6,6,6]

(1)T(2)T(3)T(4)T

等边三角形

2

[5,5,6]

(1)T(2)T(3)T(4)F

等腰三角形

3

[3,4,5]

(1)T(2)T(3)F(4)F

一般三角形

4

[1,2,3]

(1)T(2)F(3)F(4)F

非三角形

5

[0,1,2]

(1)F(2)F(3)F(4)F

非三角形

6

[-1,3,3]

(1)F(2)F(3)T(4)F

非三角形

 

 

二、用场景法完成ATM的取款功能的测试用例设计

问题

用场景法完成ATM的取款功能的测试用例设计

 

解答:

1.分析需求,整理出业务流程,列出基本流和备选流

基本流事件(取款成功的业务过程):

  1. 用户将银行卡插入ATM机卡槽,若该银行卡合法,ATM机提醒用户输入密码
  2. 用户输入正确密码,ATM机与后台服务器连接,验证密码的正确性,若密码正确,用户可以选择所需业务
  3. 用户点击“取款”功能,选择“取款金额”;后台服务器将校验取款金额是否在合法范围内,若金额处于合法范围,ATM提示用户点击“确认”按钮
  4. 用户确认取款,ATM吐钞并提示用户取钱,同时,后台服务器将更改用户账户的余额
  5. 用户取走现金,并结束交易,ATM吐出银行卡,用户取走银行卡

 

备选流(取款过程中可能会遇到的各种意外情况):

  1. 银行卡不合法,ATM验证卡不通过,提示用户该银行卡无效并自动退卡
  2. 用户输入错误密码,ATM提醒用户密码错误,重新输入密码
  3. 用户取消登陆,ATM退卡
  4. 用户连续三次输入错误密码,ATM将吞卡并提醒用户到柜台办理相关手续
  5. 用户输入的取款金额大于存款金额,ATM提示用户无法取款
  6. 用户取款金额已大于单次取款上限,ATM提示用户无法取款
  7. 用户取款金额已大于当日取款上限,ATM提示用户无法取款
  8. ATM机余额不足
  9. 用户输入合法金额后,取消取款,ATM结束该次业务
  10. 用户忘记取走现金,ATM发出报警信号
  11. 用户忘记取走银行卡,ATM发出报警信号

 

 

 

 

软件测试系列(二)——黑盒测试的例子

 

 

 

 

 

 

 

 

 

 

2.根据上述的事件流,编写测试用例

场景编号

事件流

测试用例

001

基本流

用户插入有效银行卡,第一次输入正确密码,取款金额合法,ATM吐钱,用户取款,取卡

002

基本流,备选流(1)

用户插入无效银行卡

003

基本流,备选流(4)

用户插入有效银行卡,连续三次输入错误密码,无法取回银行卡

004

基本流,备选流(2)(5)

用户插入有效银行卡,第一输入错误密码后,再次输入正确密码,点击“取款”功能后,输入的取款金额大于存款金额,ATM提示用户再次输入取款金额。用户输入合法金额后,取款成功,并取回银行卡,结束业务

005

基本流,备选流(8)

用户插入有效银行卡,输入正确密码,取款金额大于ATM机现有金额,无法取款。用户修改取款金额后,取款成功,用户取回银行卡,交易结束

006

基本流,备选流(2)(3)

用户插入有效银行卡,输入两次错误密码后,自己结束业务,取回银行卡

007

基本流,备选流(6)

用户插入有效银行卡,首次输入密码正确,但是输入的取款金额大于单笔取款金额的上限,修改取款金额后,取款成功

008

基本流,备选流(7)

用户插入有效银行卡,首次输入密码正确,但是输入的取款金额大于当天取款金额的上限,修改取款金额后,取款成功

009

基本流,备选流(9)

用户插入有效银行卡,首次输入密码正确,但是在确认取款时取消业务

010

基本流,备选流(10)

用户插入有效银行卡,首次输入密码正确,取款金额合法,确认取款,但是长时间没有取走钱,ATM发出报警信号

011

基本流,备选流(11)

用户插入有效银行卡,首次输入密码正确,取款金额合法,确认取款,取走现金后长时间没有取走银行卡,ATM发出报警信号