黑盒测试之因果图法

因果图产生的原因

        在一个功能或一个界面中,往往会有多个控件,这些控件一般会有一定的制约关系或组合关系,并且功能模块的输出会依赖于输入的条件。

        如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。

因果图的原理

         一些程序的功能可以用判定表(或称决策表)的形式来表示,并根据输入条件的组合情况规定相应的操作。。 定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

因果图基本符号

        左结点ci表示输入状态(或称原因),右结点ei表示输出状态(或称结果)。ci 与 ei 取值0或1,0表示某状态不出现,1则表示某状态出现。

因果图4种关系

恒等:若 c1 是1,则 e1 也为1,否则 e1 为0。

非:若 c1 是1,则 e1 为0,否则e1为1。

或:若 c1 或 c2 或 c3 是1,则 e1 为1,否则 e1 为0。

与:若 c1 和 c2 都是1,则 e1 为1,否则 e1 为0。

因果图中的约束

        在实际问题中输入状态相互之间、输出状态相互之间可能存在某些依赖关系,称为“约束”或“制约”。对于输入条件的约束有E、I、O、R四种约束,对于输出条件的约束只有M约束。

        E约束(异):a和b中最多只有一个为1,即a和b不能同时 为1。(如3个a、b、c则a、b、c最多只有一个1,或全0)

        I 约束(或):a、b、c中至少有一个必须为1,即 a、b、c不能同时为0。

         O约束(唯一):a和b必须有一个且仅有一个为1。

         R约束(要求):a是1时,b必须是1,即a为1时,b不能为0。

        M约束(强制):若结果a为0,则结果b强制为0。

因果图约束符号

 

因果图测试流程

        1.根据程序规格说明书描述,分析并确定因(输入条件)和果(输出结果或程序状态的改变),画出因果图。

        2.将得到的因果图转换为判定表。

        3.为判定表中每一列所表示的情况设计一个测试用例。

因果图测试案例

公交一卡通自动充值系统,其需求描述如下:

        系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。

        若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功。

        若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元。

        若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元。

        若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功。

        若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误。

        若选择充值按钮后不输入纸币,提示错误。

 (1)条件之间的制约及组合关系

根据上述描述,

输入条件(原因)为:

① 投币50元 ② 投币100元 ③ 选择充值50元 ④ 选择充值100元

输出(结果)有:

(a)完成充值、退卡 (b)提示充值成功 (c)找零 (d)提示错误

(2)明确所有条件之间的制约关系以及组合关系 条件之间的制约关系以及组合关系如图所示。

(3)画出因果图

         为了描述得更清楚,这里把每种情况单独画一个因果图出来。

        条件①和条件③可以组合,输出a和b的组合,也就是投币50元,充值50元,会输出完成充值、退卡,提示充值成功的结果。其因果图如图所示。

        条件①和条件④可以组合,输出c和d的组合,也就是投币50元,充值100元,会输出找零、提示错误的结果。其因果图如图所示。

 

         条件②和条件③可以组合,输出a、b、c的组合,也就是投币100元,充值50元,会输出找零、完成充值、提示充值成功的结果。其因果图如图所示。

        条件②和条件④可以组合,输出a和b的组合,也就是投币100元,充值100元,会输出完成充值、退卡,提示充值成功的结果。其因果图如图所示。        

         条件①、②、③、④均可以单独出现,其因果图如图所示。

 

(4)根据因果图,写出判定表 根据上面的因果图,写出对应的判定表。

 5)根据判定表,写出测试用例

根据上面的判定图,写出对应的测试用例

编号

用例说明

预期结果

1

投币50  选择充值50

正确充值50元,提示充值成功后退卡

2

投币50  选择充值100

系统提示错误并退回50

3

投币100  选择充值50

正确充值50元,提示充值成功后退卡,并找回50

4

投币100  选择充值100

正确充值100元,提示充值成功后退卡

5

投币50

系统提示错误并退回50

6

投币100

系统提示错误并退回100

7

选择充值50

系统提示错误

8

选择充值100

系统提示错误

  • 22
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值