6.0、软件测试——判定表法
判定表定义及组成部分:
定义:是一种以表格形式表达多条件逻辑判断的工具
使用场景:
1. 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系;
2. 判定表一般适用于条件组合数量较少的情况(比如4条件以下);3. 如果条件超过4个,就不适合覆盖所有条件,应采用(正交法)来解决;
组成:
> 条件桩:列出问题中的所有条件,列出条件的次序无关紧要;
> 动作桩:列出问题中的可能采取的操作,操作的排列顺序没有约束;
> 条件项:列出条件对应的取值,所有可能情况下的真假值;
> 动作项:列出条件项、各种取值情况下应该采取的动作结果;
条件之间必须要有相互依赖的关系才能用判定表法,例如 学号和姓名没有依赖关系所以不能用判定表法
下面来看一个案例:
案例:“验证若用户欠费或者关机,则不允许主被叫”功能的测试;
说明:等价类边界值分析法主要关注单个输入类条件的测试;
并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试;
判定表法设计用例步骤
1. 明确需求
2.画出判定表:
(1) 列出条件桩和动作桩
(2) 填写条件项、对条件进行全组合
(3) 根据条件项的组合确定动作项
(4) 简化、合并相似规则(有相同的动作)
3. 根据规则编写测试用例
条件 | 是否欠费【条件桩】 | 是【条件项】 | 是【条件项】 | 否【条件项】 | 否【条件项】 |
是否关机【条件桩】 | 是【条件项】 | 否【条件项】 | 是【条件项】 | 否【条件项】 | |
操作 | 是否允许主被叫【动作桩】 | 否【动作项】 | 是【动作项】 | 否【动作项】 | 是【动作项】 |
规则:
> 判定表中贯穿条件项和动作项的一列就是一条规则;
> 假设有 n 个条件,每个条件的取值有两个 ( 0 , 1 ),全组合有 2 的 n 次方规则;
接下来我们再来看一个较为复杂的用例:
(1) 如果金额大于500元,又未过期,则发出批准单和提货单;
(2) 如果金额大于500元,但过期了,责任不发批准单和提货单;
(3) 如果金额小于等于500元,则不论是否过期都发出批准单和提货单;
(4) 在过期的情况下不论金额大小还需要发出通知单;
第一步:编写判定表:
第二步:编写测试用例:
练习3 -> 文件修改规则:
(1) 输入的第一列字符必须是A或B;
(2) 第二列字符必须是一个数字;
(3) 如果第一列字符不正确,则给出信息 L;
(4) 如果第二列字符不正确,则给出信息 M;
(5) 如果两列字符输入正确,则修改文件成功;