大家好,又见面了,我是你们的朋友全栈君。
因果图法
一、应用场合
界面中有多个控件,控件之间有组合或者限制关系,为了弄清楚不同的输入组合会对应怎样不同的输出结果,可以使用因果图或判定表法。
【说明】因果图/判定表法比较适合测试组合数量少(一般指20种以下)的情况(如果组合数量大可以选择使用正交排列法效率会更高)
二、因果图法
2.1 解析因果图法
因(原因):输入条件
果(结果):输出结果
因果图:通过画图的方式说明输入条件和输出结果之间的关系。
2.2 图形符号
(1)基本图形符合——表达的是因和果之间的关系
- 恒等 如果 a = 1,那么 b = 1 如果 a = 0,那么 b = 0
- 与 【说明】只有所有条件都成立时,结果成立,有任何一个条件不成立(或者所有条件都不成立)时,结果不成立。 简化:全1为1,有0为0 分析过程如下图:
与的图形符号:
- 或 【说明】只有所有条件都为0时,结果为0,有任何1个条件为1(或者所有条件为1)时,结果为1 简化:全0为0,有1为1 分析过程如下图:
或的图形符号:
- 非(了解) 【说明】取反 如果 a = 1,取反后变成 a = 0; 如果 a = 0,取反后变成 a = 1;
(2)限制图形符合——表达的是因之间和果之间的限制关系
- 互斥(E-exclude) 特点:如果选只能选择1个,但是可以不选
- 唯一(O-only) 特点:智能选一个(不能不选) 唯一和互斥的区别:唯一和互斥都是单选,但是唯一必选要选一个,而互斥可以不选,如果选智能选一个。
- 包含(I-include) 特点:至少要选择一个(可以多选,不能不选)
- 要求(R-required) 特点:如果 a = 1,那么要求 b 必须是1,反之如果 a = 0,那么b的值无所谓。
- 屏蔽(M-masked)
特点:当 a=1时,b=0;当 a=0,b的值可能为1也可能是0
三、因果图法的详细操作步骤
案例:一卡通自动充值模拟系统
步骤1:熟悉需求,找出所有的输入条件(因)。
- 投币50元
- 投币100元
- 充值50元
- 充值100元
步骤2:找出所有的输出结果(果)。
- 充值成功并退卡
- 找零
- 错误提示并退卡
将找出的因和果填入到《判定表》中
步骤3:找出输入条件中的组合和限制关系。
步骤4:明确不同的输入组合会产生的不同的输出结果,画因果图,填判定表(在实际工作中可以只填判定表,不画因果图)
步骤5:编写测试用例
判定表中每一列是一个组合,编写一条测试用例。
【说明】
(1)画因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表,再通过判定表编写测试用例。但是有时画因果图非常麻烦,影响效率,所以在实际应用中,可以直接写判定表,不画因果图。
(2)判定表的缺点:限制关系在判定表中不好体现
解决办法:可以在判定表中附加备注信息,将限制关系填写在备注中。
编写测试用例能参考什么? |
---|
①需求 ②设计(开发)文档【有可能没有】 ③已经开发出来的被测程序 |
④通过跟开发人员、产品部门的人员、客户等沟通、讨论 |
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170408.html原文链接:https://javaforall.cn