大家好,又见面了,我是你们的朋友全栈君。
因果图:
一、应用场合
在一个界面中,有多个控件,测试的时候要考虑控件的组合关系,不同的控件组合会产生不同的输出结果的组合,为了弄清什么样的输入组合会产生什么样的输出组合,使用因果图法。
二、因果图核心
1、因—-原因,输入条件
2、果—-结果,输出结果
使用图形的方式,分析软件输入和输出的对应关系。
三、图形符号
1、基本图形
表示输入和输出的对应关系
(1)恒等(–)Ⓐ(输入、因) Ⓑ(输出、果)
若a=1,则b=1
若a=0,则b=0
(2)非(~)Ⓐ(输入、因) Ⓑ(输出、果)
若a=1,则b=0
若a=0,则b=1
(3)或(V)
若a=1,或b=1,或c=1,则d=1
若a=b=c=0,则d=0
(4)与(^)
若a=b=c=1,则d=1
若a=0或b=0或c=0,则d=0
2、约束(限制条件)图形
要不然单独限制输入,要不然单独限制输出
(1)互斥(E)
a、b、c不同时为1,则a,b,c中至多只有一个1
(2)包含(I)
a、b、c至少有一个1,则a,b,c中不能同时为0
(3)唯一(O)
a、b、c中必须有一个成立,且仅有一个成立(有且只有一个1)
说明:
唯一(O)的情况是有一个默认值;而互斥(E)没有默认值
(4)要求(R)
若a=1,则b必须为1。即不可能a=1且b=0
(5)屏蔽(M)
若a=1,则b必须为0;而当a为0时,b的值不定
四、使用因果图法分析程序
例子:
交通一卡通自动充值软件系统需求
系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元。 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功; 若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元; 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元; 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功; 若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;
若选择充值按钮后不输入纸币,提示错误
1、找出所有的原因(输入),编号
(1)投币50元
(2)投币100元
(3)充值50元
(4)充值100元
2、找出所有的结果(输出),编号
A、充值成功并退卡
B、提示充值成功
C、找零
D、提示错误
步骤1、2就是初步分析需求。
3、在步骤1的基础上,找到输入的限制关系和组合关系
(1)、限制关系(哪些输入不能组合)
1)输入(1)和(2)不能(互斥)
2)输入(3)和(4)不能(互斥)
画出限制关系因果图
因
(2)、组合关系(决定测试用例的数量)
1)输入(1)和(3)组合
2)输入(1)和(4)组合
3)输入(2)和(3)组合
4)输入(2)和(4)组合
5)输入(1)单独
6)输入(2)单独
7)输入(3)单独
8)输入(4)单独
4、在步骤2的基础上,找到输出的限制关系和组合关系
(1)限制关系
1)输出A和D不能(互斥)
2)输出B和D不能(互斥)
画出限制关系因果图
(2)组合关系
1)输出A和B必须组合
2)输出A、B、C组合
3)输出C和D组合
4)输出D单独
步骤3、4是深入分析需求的过程
5、找到输入组合和输出组合的对应关系(什么样的输入组合会产生什么样的输出组合)—–依据步骤3(2)和4(2)
情况1:
输入(1)和(3)组合
会产生:
输出A和B的组合
画出因果图:
==========================================================
情况2:
输入(1)和(4)组合
会产生:
输出C和D的组合
画出因果图:
==========================================================
情况3:
输入(2)和(3)组合
会产生:
输出A和B和C的组合
画出因果图:
==========================================================
情况4
输入(2)和(4)组合
会产生:
输出A和B的组合
画出因果图:
==========================================================
情况5:
输入(1)单独
会产生:
输出C和D的组合
画出因果图:
==========================================================
情况6:
输入(2)单独
会产生:
输出C和D的组合
画出因果图:
==========================================================
情况7:
输入(3)单独
会产生:
输出D
画出因果图:
==========================================================
情况8:
输入(4)单独
会产生:
输出D
画出因果图:
6、根据因果图,画出判定表
7、根据判定表编写用例
把判定表的一列转换成一条用例
五、因果图法的局限性
每个控件的条件(或取值)最好为2个或3个,比如:按钮按下或不按下;复选框选择还是不选择;单选按钮选还是不选;有三个选项的下拉列表。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170412.html原文链接:https://javaforall.cn