测试用例设计方法2
一、判定表
1. 使用场景:
当多个输入条件之间存在逻辑关系,需要组合测试时,使用判定表法进行分析
2. 相关概念
(1) 条件桩:输入条件,如工资薪制,错误程度
(2) 条件项:输入条件的取值,如年薪制、月薪制
(3) 动作桩:输出结果项,如扣款比例,扣款金额,实发工资
(4) 动作项:输出每个项的具体值
3. 使用步骤
(1) 需求分析,得到条件桩和条件项,以及动作桩
(2) 确定组合数量(条件项乘积)
(3) 得到判定表
(4) 导出测试用例,原则,一列是一条测试用例
案例:
工资发放系统
条件桩:
工资薪制
条件项:
年薪制,月薪制,季薪制
案例
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;
若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
条件桩:
零钱:有零钱,无零钱
投币:不投,投5毛,投1元,投1.5
按饮料:不按,按橙汁,按啤酒,按橙汁+啤酒
二、 因果图
1. 使用场景:
与判定表方法使用场景相同
2. 使用步骤
(1) 需求分析,得到原因(条件桩,条件项)和结果(动作桩)
(2) 画出因果图
(3) 根据因果图得到判定表
(4) 根据判定表,导出测试用例
3. 原因与结果之间的关系
(1) 恒等:如果天晴,则户外活动, 天晴与户外活动属于恒等关系
(2) 非:如果下雨,则不户外活动, 下雨与户外活动属于非关系
(3) 或:如果下雨,或下雪,或下冰雹,则室内活动, 下雨、下雪、下冰雹与室内活动属于或关系
(4) 与:如果有时间且有钱,则去旅游 有时间 、 有钱与旅游属于与关系
4. 条件项之间的约束(输入状态之间的约束)
(1) E约束(异):a和b之间至多有一个为1,即a和b不能同时为1
(2) I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
(3) O约束(唯一):a和b必须有一个,且仅有1个为1
(4) R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。
三、 正交试验
1. 使用场景:
当多个输入条件需要组合测试,且组合数量很多时(超过三四十)考虑使用正交试验,减少组合数量,得到最优组合。
2. 相关概念
(1) 因子数(相当于条件桩):输入条件的个数
(2) 水平数/状态数(相当于条件项):每个因子的取值个数
3. 使用步骤
(1) 需求分析,确定因子数和状态数(取最大值)
(2) 选择合适的正交表,选取的原则如下:
a) 正交表的列数大于等于因子数
b) 正交表的每列的状态大于等于确定的状态数,若有多张正交表符合条件,则选择行数最少的正交表
(3) 复制选中的正交表到excel文件,进行修改调整
a) 根据实际因子数,删除多余的列
b) 根据每列的实际状态数,删除多余的状态(补充多余的状态)
c) 使用现有的状态替补空白单元格(尽量使每列中每一种状态出现的次数相同)
(4) 将修改后的正交表中的代号替换为具有实际含义的因子名和状态名称
(5) 导出测试用例,原则:一行即为一条用例。
四、 流程分析法(场景法)业务流程法
1. 使用场景:
任何一个功能操作,均需要考虑使用流程分析法,进行测试点分析,尤其是对于业务流程复杂的系统
2. 考虑思路
(1) 谁可以进入被测页面?(用户权限问题)
(2) 在满足什么前置条件下可进入被测页面(前置条件问题)
(3) 通过什么路径可进入被测页面(路径方式问题)
五、 测试用例设计方法小结:
等价类划分
边界值分析
经验法
错误猜测法
判定表
因果图
正交试验
流程分析法
(1) 用流程分析法,对被测页面进行分析,考虑谁可以操作?在什么前置条件可以操作?可以通过什么路径方式去操作?分析用户的各种场景
(2) 针对被测页面中的元素进行测试点分析,若元素之间不需要组合测试,则使用等价类划分、边界值分析法、经验法、错误猜测法分析每个元素的有效和无效测试点
(3) 若元素之间需要组合测试,则使用判定表法进行分析,若组合数量大时,则使用正交试验法,减少组合数量,得到最优组合。