因果图法设计测试用例

等价类划分法、边界值分析法及错误推断法在对输入条件的考虑中并未重视输入条件的组合。事实上,当输入条件存在若干种可能的组合时,必须对这些组合加以考虑,以证实测试程序在某种输入组合的情况下恩能否完成规格说明书中预先规定的功能,否则所做的测试是不充分的。

因果图(Cuase-effect Graph)是一种描述输入条件的组合及每种组合对应的输出的图形化工具。在因果图的基础上可以设计测试用例。

因果图的画法:

 

(a)恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。

(b)非。若原因出现,则结果不出现;若原因不出现,则结果出现。

(c)或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。

(d)与。若几个原因都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。

为了表示因果图中的约束条件,可用一些符号在因果图中加以标识。

从原因方面考虑主要有4种约束条件:

(a)E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。

(b)I(包含、或)。a、b、c三个原因至少有一个出现。

(c)O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。

(d)R(需求)。a出现时b必定出现。

从结果方面考虑主要有1种约束条件:

(a)M(屏蔽)。a出现时,b必定不出现;a不出现时,b则不确定。

利用因果图设计测试用例应遵循的步骤:

1)分析程序的规格说明书中哪些事原因,哪些是结果。所谓原因,是指输入条件或输入条件的等价类,而结果是指输出条件。

  给每一个原因和结果赋一个标识符。

2)分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。

3)由于语法环境的限制,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。

4)将因果图转化为判定表。

5)根据判定表的没一列设计测试用例。

当然,若能直接得到判定表,可以直接根据判定表设计测试用例。

因果图法设计测试用例举例:

有一个单价为五角钱的饮料自动售货机软件,对其采用因果图方法设计测试用例。需求如下:

1)若售货机没有零钱找,则一个现实“零钱找完”的红灯亮,以提示顾客在此情况下不要投入1元钱,否则此红灯不亮。

2)顾客投入5角硬币,然后按下“橙汁”或“啤酒”按钮,则相应的饮料被送出。

3)顾客投入1元硬币并按下“橙汁”或“啤酒”按钮后,若售货机没有零钱找,则显示“零钱找完”的红灯亮,1元硬币被退出,且无饮料送出;若有零钱找,则五角硬币被退出且饮料被送出。

列出原因

编号原因
1售货机有零钱找
2投入1元硬币
3投入五角硬币
4按“橙汁”按钮
5按“啤酒”按钮

 

列出结果:

编号结果
21售货机“零钱找完”灯亮
22退还1元硬币
23退还五角硬币
24送出橙汁饮料
25送出啤酒饮料

根据需求说明设置中间节点:

序号中间节点
11投入1元硬币且按饮料按钮
12按“橙汁”或“啤酒”按钮
13退还五角零钱且售货机有零钱找
14钱已付清

 

根据列出的原因、结果、中间节点花出因果图:

2、3号原因不能同时出现,4、5号原因不能同时出现。

将因果图转换为判断表:

在构成的判定表中,个原因、中间节点、结果的取值为0表示其代表的状态不出现;为1表示状态出现。

中间节点与结果没有值为因违反约束不会出现的情况,16、32列没有做任何操作。8、12、24、28列不符合常理(投币却没有选择饮料)为无效列。

根据剩下的列设计测试用例。

用例编号有无零钱投入金额饮料预期结果
C01有  1元橙汁退回五角、送出橙汁
C021元啤酒退回五角、送出啤酒
C035角橙汁送出橙汁
C045角啤酒送出啤酒
C051元橙汁灯亮、退出1元
C061元啤酒灯亮,退出1元
C075角橙汁灯亮,送出橙汁
C085角啤酒灯亮、送出啤酒

 

这个例子中,事实上在分析问题时进行了一些简化,主要有一下几点:

1)判定表中8,12,24,28列不符合常理(投币却没选饮料),但却是可能发生的。可以考虑对需求做一下完善:若投币N秒后仍没有选择饮料,售货机上“请选择饮料”灯亮。进而根据需求规格说明改进因果图和判断表。

2)判断表中14,15,30,31列表示只选择饮料却没投币。可以对需求做以下完善:只选择饮料却没有投币时,自动售货机上“请投币”的等亮。进而根据需求规格说明改进因果图和判断表。

3)26、27表示在自动售货机没零钱找的情况下投入五角钱,此时自动售货机进入有零钱找状态,由于需求说明没有考虑这一特殊状态,故判定表中第26、27列的21号结果没有从1变成0实际上是不正确的。在需求规格说明书中应对此种情况加以考虑,进而改进因果图和判断表。

4)6、7列对应的是自动售货机在有零钱的情况下找了5角钱,此刻自动售货机有可能进入无零钱找的状态,由于需求说明没有考虑这一特殊状态,故判定表中第6、7列的21号结果没有从1变成0实际上是不一定正确的。在需求规格说明书中应对此种情况加以考虑,进而改进因果图和判断表。

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值