一.因果图分析法的由来和介绍:
1.因果图分析法又叫鱼骨图分析法,由日本管理大师石川馨先生所发明,它是对问题的 根因 进行分析的方法,透过现象看本质的方法:
2.什么是因果图:
在软件设计中,因果图用于 输入与输出、输入与输出 存在依赖与约束关系的被测对象。因果图是一种利用图解法分析输入的各种组合情况,从而进行测试用例设计。
等价类和边界值分析法同样是对输入条件的测试分析,但其输入条件之间并不存在任何关联或约束,且必须相互独立(等价类的原则之一)。
二.因果图的关系:
1.在进行因果图图解之前,需要先了解因果图特有的术语和语法(关系图):
2.因果关系:
2.1. 恒等(是1则1):
若原因出现,则结果出现;若原因不出现,则结果也不出现。若C1是1,则E1也是1;若C1是0,则E1也是0;商场购物,买单后才会打印凭条,没有买单是不会打印的。
2.2.非~(是1则0):
若原因出现,则结果不出现;若原因不出现,则结果出现。若C2是1,则E2是0;若C2是0,则E2是1。例:用手机逛淘宝,如果有网络,则不提示网络异常;如果没有网络,则提示网络异常。
2.3. 或 U(其中一个是1则为1):
若原因中的一个有出现,则结果出现,若所有原因都不出现,则结果不出现,若 C3 或 C4 或 C5 是1,则E3是1;若 C3 和 C4 和 C5 是0,则E3是0。 例:手机、平板、电脑、电视,拥有其中之一就可以看视频,如果都没有则无法看视频。
2.4. 与 ^(全部为1才是1):
若所有原因都出现,则结果出现;若原因中的一个不出现,则结果不出现。若 C3 和 C4 和 C5 是1,则 E4 是1;若 C3 或 C4 或 C5 是0,则 E4 是0。例:手机要有电、有网络信号,才能上网。没电或没网络信号,则不能上网。
3.条件约束:
3.1.异或/互斥(Exclusive):
C1/C2/C3中至多为1。例:你要赶赴约会地点,只能选择步行、自行车、打车、坐地铁、开车中的一个。也可以用都不选择,猫在家里爽约。
3.2. 或(Inclusive):
C1、C2中至少一个必须是1。例:你和女朋友想在家里看电影,手机、平板、电脑都可以是选择,但是必须选择至少其中一个。
3.3.唯一(Only):
C1和C2必须有且只有一个是1。 例:想进入地铁站闸口,那你必须从 交通卡、微信支付、临时票中选择其中一个。
3.4.要求(Require):
C1出现时,C2必出现。C1不出现时,C2不确定。例:在篮球场上打球,如果出手投篮(C1),则必然拥有球权(C2)。如果没有出手投篮,也无法确定是否拥有球权。
3.5.强制(Force):
C1出现时,C2必不出现。C1不出现时,C2不确定。例:如果你在公司了,则你必定不在家。如果你不在公司,你也未必在家。
三.分析步骤:
1.分析被测对象的规格,找出原因与结果;
2.确定因果关系,画出因果图;
3.确定因果图中的约束,并做好标记;
4.把因果图转换为判定表;
5.用判定表设计测试用例。
四.实例:
1.在自助机器进行地铁卡的充值:
要求:自助机器只接收50元或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元。
1.1 .分析对象的原因和结果:
1.2 .画出因果图:C1和C2或关系,C3和C4是或关系:
1.3 .因果图增加约束:C1和C2 只能出现一个,C3 和C4 只能出现一个:
1.4. 转换成判定表,并通过约束去除无效用例:
1.5. 根据判定表生成测试用例。
五.小结:
因果图分析是为有效测试分析的辅助工具,通过因果图分析可以得到判定表。判定表根据约束进行用例的有效分析,最终输出测试用例。但是很多时候,绘制因果图是非常麻烦,非常影响效率,所以在熟练之后,可以直接写判定表,进行编写测试用例。