大家好,又见面了,我是你们的朋友全栈君。
一、应用场合
在一个界面中,有多个控件,测试的时候要考虑控件的组合关系,不同的控件组合会产生不同的输出结果的组合,为了弄清什么样的输入组合会产生什么样的输出组合,使用因果图法。
二、因果图核心
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中不能同时为(有个默认选择,其他自己选)
(3)唯一(O)
(4)要求(R)
若a=1,则b必须为1.即不可能a=1且b=0(例如:要自动登录必须记住密码)
(5)屏蔽(M)
r若a=1,则b必须为0;而当a=0时,则b的值不定
四、使用因果图分析程序
例题:
分析步骤如下:
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个,比如:按钮按下或不按下,复选框选择还是不选择,单选按钮选还是不选,有3个选项的下拉列表
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170418.html原文链接:https://javaforall.cn