目录
流程图法(场景法)
业务流程
流程图
流程图法设计测试用例
案例-退款泳道图
案例-刷视频流程
等价类划分法
等价类
等价类设计测试用例
案例1-验证电话号码
案例2-验证邮箱格式
边界值分析法
测试数据的选取
边界值法设计测试用例
案例-验证标题的合法性
判定表法
判定表
判定表设计测试用例
案例1-文件修改规则
案例2-维修处理规则
正交分析法
正交表
正交表设计测试用例
正交工具的使用(allpairs)
正交工具的安装和使用(正交设计助手)
正交设计助手-安装
正交设计助手-使用
错误推测法
其他方法(如:因果图法)
用例测试方法总结
案例1-保险保费
案例2-购物车页面
案例3-登录页面
流程图法(场景法)
流程图法:通过流程图可以用来表示一个具体的业务流程场景,可以通过覆盖流程图的路径来设计测试用例。
流程图法的适用场景:在业务场景中涉及多功能的组合逻辑。
业务流程
业务流程:客户使用软件的过程中,为了达成自身的所想要的目的,按照指定的顺序去操作软件的功能,这样的操作过程叫业务流程。
业务流程的来源:一般产品经理提供的需求文档中会有说明和绘制。在特殊情况下,测试人员也可以自己分析软件的业务流程和绘制流程图。
业务流程的测试方法:通过借助流程图来进行业务流程分析和测试。
注意:注册/登录这种会作为单模块,而不是业务流程。
流程图
流程图:可用来表示一个具体的业务流程场景,通过覆盖流程图的路径来设计测试用例。
流程图中的重要符号说明:
符号 | 名称 | 解释 |
开始/结束 | 表示整个流程的开始/结束 | |
路径 | 表示流程进行的方向 | |
执行/处理节点 | 表示执行或处理某工作 | |
判定节点 | 表示对某个条件做判断 |
流程图示例:
流程图法设计测试用例
用流程图法设计测试用例-步骤:
- 根据流程图找出所有路径(从开始到结束为一条路径,路径数=判定节点数+1)
注意:还要看看有没有回溯的路径,如果有1条回溯,路径数=判定节点数+1+1
- 根据路径编写测试用例(有多少条路径就有多少条测试用例)
注意:什么是回溯路径?如下图,红框圈起来的就是回溯路径
注意:使用流程图法测试业务场景的过程中,不需要深入功能内部详细测试,关注点在于所有的流程环节是否能够验证通过。
示例:
业务场景:餐饮行业的结账业务流程。
流程图中的路径数:4=1+3,一共对应4条测试用例
编写测试用例:
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
结账系统-SA-001 | 结账-支付成功 | 结账 | P0 | 选择桌台成功 |
|
| 支付成功,打印支付小票 |
结账系统-SA-002 | 结账-登录失败 | 结账 | P1 | 进入登录页面 | 输入登录信息 | 登录信息:xxxxxx | 登录失败 |
结账系统-SA-003 | 结账-选择桌台失败 | 结账 | P1 | 登录成功 | 输入桌台编号或扫码 | 输入桌台编号:xx | 选择桌台失败,提示:请选择坐台 |
结账系统-SA-004 | 结账-支付失败 | 结账 | P1 | 选择桌台成功 |
|
输入支付金额:xxxx | 支付失败,提示:支付失败,请重试 |
案例-退款泳道图
根据下面的退款泳道图,编写测试用例
流程图中所有路径:4+1=5,一共5条路径
5条路径对应5条测试用例,如下:
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
refund_001 | 全额退款成功-商家退款 | 退款 | P0 | 用户登录平台 |
| 用户名:xxxxx 登录密码:xxxxxx | 用户账户到账全款 |
refund_002 | 退款失败-用户确认售后 | 退款 | P1 | 用户登录平台 |
| 用户名:xxxxx 登录密码:xxxxxx | 售后完成 |
refund_003 | 退款成功-平台全额退款 | 退款 | P0 | 用户登录平台 |
| 用户名:xxxxx 登录密码:xxxxxx | 用户账户到账全款 |
refund_004 | 退款成功-平台部分退款 | 退款 | P0 | 用户登录平台 |
| 用户名:xxxxx 登录密码:xxxxxx | 用户账户到账部分退款 |
refund_005 | 退款失败-平台拒绝退款 | 退款 | P1 | 用户登录平台 |
| 用户名:xxxxx 登录密码:xxxxxx | 退款失败 |
案例-刷视频流程
一共有4个判定节点,路径数=4+1=5
思维导图分析测试点
5条路径对应5条测试用例,测试用例如下:
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
video_001 | 用户对视频不敢兴趣 | 刷视频 | P1 | 用户登录平台 |
| 播放下一条视频 | |
video_002 | 用户对视频不进行转发 | 刷视频 | P1 | 用户登录平台 |
| 该视频循环播放 | |
video_003 | 用户对视频进行转发 | 刷视频 | P0 | 用户登录平台 |
| 提示:分享成功; 好友聊天记录可以看见分享视频 | |
video_004 | 用户对视频进行评论 | 刷视频 | P0 | 用户登录平台 |
| 评论区出现用户评论的信息; 评论数+1 | |
video_005 | 用户对视频进行点赞 | 刷视频 | P0 | 用户登录平台 |
| 视频右边,大拇指变红; 点赞数+1 |
等价类划分法
等价类划分法:对测试数据进行合理划分,从而选择有代表性的数据进行测试。
等价类划分法的应用场景:用来解决测试数据集合过大的问题,我们无法将测试数据进行穷举的情况,这时候,我们就可以对测试数据进行合理分类。如:输入框,下拉列表,单选复选框。
等价类
等价类:在所有测试数据中,具有某种共同特征的数据集合。
等价类分类:
- 有效等价类:满足需求的数据集合。
- 无效等价类:不满足需求的数据集合。
等价类的特点:
- 划分出来的有效和无效等价类是没有交集
- 所有的有效和无效等价类完整的构成了测试数据集合
等价类划分案例:
需求:在手机验证码输入框中,可输入长度为4位的数字
有效等价类:4位数字
无效等价类:4位非数字、大于4位数字、小于4位数字
等价类设计测试用例
使用等价类完成测试用例的设计步骤:
- 分析需求,找出所有的输入条件
- 根据输入条件划分等价类,绘制等价类表
- 设计测试用例:根据等价类表转换测试用例;设计一个新的测试用例,要尽可能多的覆盖尚未被覆盖的有效等价类;针对每一个无效等价类都要设计一条测试用例进行覆盖。
等价类表:
输入条件 | 有效等价类 | 测试数据 | 编号 | 无效等价类 | 测试数据 | 编号 |
等价类的划分-可以根据3个维度划分:
- 长度(空)
- 类型
- 规则
注意:针对空这种情况要单独划分一个等价类
案例:
需求:验证qq账号的合法性(账号要求:6~10位自然数)
1.输入条件:qq账号
2.等价类表
输入条件 | 有效等价类 | 测试数据 | 编号 | 无效等价类 | 测试数据 | 编号 |
qq账号 | 6~10位自然数 | 12345678 | 1 | 大于10位自然数 | 01234567890 | 2 |
小于6位自然数 | 12 | 3 | ||||
空 | 空 | 4 | ||||
6~10位非自然数 | abdk%(* | 5 |
3.转换为测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
qq_001 | 验证qq账号合法-6~10位自然数 | qq账号 | P2 | 进入qq账号验证页 | 输入qq账号 | 123456 | 验证通过 |
qq_002 | 验证qq账号非法-大于10位自然数 | qq账号 | P3 | 进入qq账号验证页 | 输入qq账号 | 01234567890 | 验证失败,提示qq账号不合法 |
qq_003 | 验证qq账号非法-小于6位自然数 | qq账号 | P3 | 进入qq账号验证页 | 输入qq账号 | 01234 | 验证失败,提示qq账号不合法 |
qq_004 | 验证qq账号非法-为空 | qq账号 | P3 | 进入qq账号验证页 | 不输入qq账号 | 空 | 验证失败,提示qq账号不合法 |
qq_005 | 验证qq账号非法-6~10非自然数 | qq账号 | P3 | 进入qq账号验证页 | 输入qq账号 | abdk%(* | 验证失败,提示qq账号不合法 |
案例1-验证电话号码
需求:
验证某城市电话号码的正确性
区号:空或者三位数字
电话:七位数字
输入条件:
- 区号
- 电话
等价类表
输入条件 | 有效等价类 | 测试数据 | 编号 | 无效等价类 | 测试数据 | 编号 |
区号 | 三位数字 | 010 | 1 | 大于3位数字 | 01234 | 3 |
小于3位数字 | 01 | 4 | ||||
空 | 空 | 2 | 3位非数字 | L%$ | 5 | |
电话 | 7位数字 | 1234567 | 6 | 大于7位数字 | 12345678 | 7 |
小于7位数字 | 12345 | 8 | ||||
空 | 空 | 9 | ||||
7位非数字 | ¥ghnow^ | 10 |
转换为测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
tel_001 | 验证电话号码合法-区号3位数字+电话7位数字 | 电话号码 | P2 | 进入电话号码验证页 |
| 区号:010 电话:1234567 | 电话号码验证通过 |
tel_002 | 验证电话号码合法-区号为空+电话7位数字 | 电话号码 | P2 | 进入电话号码验证页 |
| 区号:空 电话:1234567 | 电话号码验证通过 |
tel_003 | 验证电话号码非法-区号大于3位+电话7位数字 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:01234 电话:1234567 | 电话号码验证失败,提示:号码非法 |
tel_004 | 验证电话号码非法-区号小于3位+电话7位数字 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:01 电话:1234567 | 电话号码验证失败,提示:号码非法 |
tel_005 | 验证电话号码非法-区号为3位非数字+电话7位数字 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:&*J 电话:1234567 | 电话号码验证失败,提示:号码非法 |
tel_006 | 验证电话号码非法-区号为3位+电话大于7位数字 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:010 电话:12345678 | 电话号码验证失败,提示:号码非法 |
tel_007 | 验证电话号码非法-区号为空+电话小于7位数字 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:010 电话:123456 | 电话号码验证失败,提示:号码非法 |
tel_008 | 验证电话号码非法-区号为空+电话为空 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:010 电话:空 | 电话号码验证失败,提示:号码非法 |
tel_009 | 验证电话号码非法-区号为空+电话7位非数字 | 电话号码 | P3 | 进入电话号码验证页 |
| 区号:010 电话:Jhuidh* | 电话号码验证失败,提示:号码非法 |
注意:tel_001测试用例覆盖了编号为1和6的等价类
案例2-验证邮箱格式
需求:邮箱的验证
- 6~18位字符
- 包含数字,字母和下划线
- 必须以字母开头
注意:下面使用了等价类划分法,未使用边界值分析法
输入条件:邮箱
等价类表
输入条件 | 有效等价类 | 测试数据 | 编号 | 无效等价类 | 测试数据 | 编号 |
邮箱 | 6~18位字符,包含数字,字母,下划线,必须以字母开头 | 7位合法数据:hyh_1226 | 1 | 长度大于18位 | 19位: hyh_012345678901234 | 2 |
长度小于6位 | 5位:hyh_01 | 3 | ||||
空 | 空 | 4 | ||||
包含非数字,字母,下划线 | %** | 5 | ||||
以数字开头 | 1226_hyh | 6 | ||||
以下划线 | _hyh1226 | 7 |
转换为测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
mail_001 | 验证邮箱合法-6~18位字符,包含数字,字母,下划线,必须以字母开头 | 邮箱 | P2 | 进入邮箱验证页 |
| 7位合法数据:hyh_1226 | 邮箱验证通过 |
mail_002 | 验证邮箱非法-长度大于18位 | 邮箱 | P3 | 进入邮箱验证页 |
| 19位: hyh_012345678901234 | 邮箱验证不通过,提示:邮箱非法 |
mail_003 | 验证邮箱非法-长度小于6位 | 邮箱 | P3 | 进入邮箱验证页 |
| 5位:hyh_01 | 邮箱验证不通过,提示:邮箱非法 |
mail_004 | 验证邮箱非法-空 | 邮箱 | P3 | 进入邮箱验证页 |
| 空 | 邮箱验证不通过,提示:邮箱非法 |
mail_005 | 验证邮箱非法-包含非数字,字母,下划线 | 邮箱 | P3 | 进入邮箱验证页 |
| %** | 邮箱验证不通过,提示:邮箱非法 |
mail_006 | 验证邮箱非法-以数字开头 | 邮箱 | P3 | 进入邮箱验证页 |
| 1226_hyh | 邮箱验证不通过,提示:邮箱非法 |
mail_007 | 验证邮箱非法-以下划线开头 | 邮箱 | P3 | 进入邮箱验证页 |
| _hyh1226 | 邮箱验证不通过,提示:邮箱非法 |
边界值分析法
边界值分析法是对等价类划分的一种补充。
边界值分析法:就是对输入或输出的边界值进行测试,边界值分析法可以优化测试数据的选择。
边界值分析法的使用场景:
- 是在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)的上应用的方法,用于测试数据的选取
- 常见的词汇:大小,尺寸,重量,最小,最小,至多,至少等修饰词
- 典型代表:有边界值范围的输入框类测试
测试数据的选取
测试数据的选取(一共5个点):
- 上点:边界上的点(正好等于边界)-2个点
- 离点:距离上点最近的点(刚好大于边界,刚好小于边界)-2个点
注意:遵循开内闭外原则(开区间选择内部离点,闭区间选择外部离点)
- 内点:范围内的点(区间范围内的数据)-1个点
注意:紫色为上点,绿色为离点,黄色为内点
边界值法设计测试用例
边界值法设计测试用例步骤:
- 明确需求,找出所有的输入条件
- 依据输入条件,确定有效和无效等价类,绘制等价类表
- 确定边界值范围,选取测试数据
- 根据等价类表转换测试用例;设计一个新的测试用例,要尽可能多的覆盖尚未被覆盖的有效等价类;针对每一个无效等价类都要设计一条测试用例进行覆盖。
案例:
需求:验证qq账号的合法性(账号要求:6~10位自然数)
输入条件:qq账号
等价类表
输入条件 | 有效等价类 | 测试数据 | 编号 | 无效等价类 | 测试数据 | 编号 |
qq账号 | 6~10位自然数 | 6位自然数(上点) 10位自然数(上点)8位自然数(内点) | 1 | 大于10位自然数 | 11位自然数(离点) | 2 |
小于6位自然数 | 5位自然数(离点) | 3 | ||||
空 | 空 | 4 | ||||
6~10位非自然数 | abdk%&** | 5 |
转换为测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
qq_001 | 验证qq账号合法-6~10位自然数 | qq账号 | P2 | 进入qq账号验证页 | 输入qq账号 | 123456 1234567890 12345678 | 验证通过 |
qq_002 | 验证qq账号非法-大于10位自然数 | qq账号 | P3 | 进入qq账号验证页 | 输入qq账号 | 12345678900 | 验证失败,提示qq账号不合法 |
qq_003 | 验证qq账号非法-小于6位自然数 | qq账号 | P3 | 进入qq账号验证页 | 输入qq账号 | 12345 | 验证失败,提示qq账号不合法 |
qq_004 | 验证qq账号非法-为空 | qq账号 | P3 | 进入qq账号验证页 | 不输入qq账号 | 空 | 验证失败,提示qq账号不合法 |
qq_005 | 验证qq账号非法-6~10非自然数 | qq账号 | P3 | 进入qq账号验证页 | 输入qq账号 | abdk%&** | 验证失败,提示qq账号不合法 |
案例-验证标题的合法性
需求:验证标题的合法性
标题长度大于3,小于等于10个字符
输入条件:标题
输入条件 | 有效等价类 | 测试数据 | 编号 | 无效等价类 | 测试数据 | 编号 |
标题 | (3,10]个字符 | 10个字符(上点) 4个字符(离点) 7个字符(内点) | 1 | 大于10个字符 | 11个字符(离点) | 2 |
小于等于3个字符 | 3个字符(上点) | 3 | ||||
空 | 空 | 4 |
转换为测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
title_001 | 验证标题合法-(3,10]个字符 | 标题 | P2 | 进入标题验证页面 |
| 1234567890 1234 1234567 | 验证通过 |
title_002 | 验证标题非法-大于10个字符 | 标题 | P3 | 进入标题验证页面 |
| 12345678900 | 验证不通过,提示标题非法 |
title_003 | 验证标题非法-小于等于3个字符 | 标题 | P3 | 进入标题验证页面 |
| 123 | 验证不通过,提示标题非法 |
title_004 | 验证标题非法-为空 | 标题 | P3 | 进入标题验证页面 |
| 空 | 验证不通过,提示标题非法 |
判定表法
等价类法和边界值分析法的局限性:只关注于单个输入条件的测试,未考虑输入条件之间的组合关系。
判定表法:是一种以表格形式表达多条件逻辑判定的方法。
判定表的应用场景:有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系。
判定表
判定表的作用:可以通过判定表将条件的所有组合对应的结果都分析到,以防止遗漏的情况。
判定表的适用情况:适用于条件组合数量比较少的情况(如:4个条件以下,条件太多,会造成判定表非常庞大,会有一定出现错误的几率)
判定表的组成:
- 条件桩:列出问题中的所有条件,列出条件的次序无关紧要
- 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
- 条件项:列出条件对应的取值,所有可能情况下的真假值
- 动作项:列出条件项的、各种取值情况下应该采取的动作结果
注意:
- 判定表中贯穿条件项和动作项的一列就是一个组合,一个组合对应条测试用例
- 假设有n个条件,每个条件的取值有两个(即:真和假),那么全组合有2n种组合
判定表设计测试用例
判定表法设计测试用例步骤:
- 明确需求,找出条件和动作
- 绘制判定表
- 列出条件桩和动作桩
- 填写条件项,对条件进行全组合
- 根据条件项的组合确定动作项
- 简化判定表:动作一样的情况下,合并相似的组合
- 编写测试用例(每个组合就是一条测试用例)
示例:
需求:订购单检查
1)如果金额大于500元,又未过期,则发出批准单和提货单;
2)如果金额大于500元,但过期了,则不发批准单与提货单;
3)如果金额小于等于500元,则不论是否过期都发出批准单和提货单;
4)在过期的情况下不论金额大小还需要发出通知单
条件2个:金额是否大于500,订单是否过期
动作3个:发出批准单,发出提货单,发出通知单
判定表(一共有2个条件,条件的取值有2个(Y/N),组合数:22=4)
条件桩 | 金额是否大于500 | Y | Y | N | N |
订单是否过期 | Y | N | Y | N | |
动作桩 | 批准单 | P | P | P | |
提货单 | P | P | P | ||
通知单 | P | P |
优化判定表(动作一样的情况下,合并相似的组合),简化后,一共有3种组合
条件桩 | 金额是否大于500 | Y | Y/N | N |
订单是否过期 | Y | N | Y | |
动作桩 | 批准单 | P | P | |
提货单 | P | P | ||
通知单 | P | P |
一共有3种组合,对应3条测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
order_001 | 发出通知单-金额大于500且订单过期 | 订购单 | P2 | 打开订购单检查页 |
| 金额:501 状态:过期 | 发出通知单 |
order_002 | 发出批准单和提货单-订单未过期 | 订购单 | P2 | 打开订购单检查页 |
| 状态:未过期 | 发出批准单和提货单 |
order_003 | 发出批准单和提货单,通知单-金额小于等于500且订单过期 | 订购单 | P2 | 打开订购单检查页 |
| 金额:500 状态:过期 | 发出批准单和提货单,通知单 |
案例1-文件修改规则
文件修改规则:
- 输入的第一列字符必须是A或B,第二列字符必须是一个数字
- 如果第一列字符不正确,则给出信息L
- 如果第二列字符不正确,则给出信息M
- 如果两列字符输入正确,则修改文件成功
条件2个:第一列的字符是否是A或B,第二列的字符是否是一个数字
动作3个:给出信息L,给出信息M,修改文件成功
判定表(一共有2个条件,条件的取值有2个(Y/N),组合数:22=4)
条件桩 | 第一列的字符是否是A或B | Y | Y | N | N |
第二列的字符是否是一个数字 | Y | N | Y | N | |
动作桩 | 给出信息L | P | P | ||
给出信息M | P | P | |||
修改文件成功 | P |
该判定表已经是最简了(因为动作组合都不同,无法合并)
一共有4种组合,对应4条测试用例
用例编号 | 用例标题 | 模块 | 优先级 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 |
file_001 | 修改文件成功-第一列字符为A或B且第二列字符为数字 | 文件修改 | P2 | 打开文件修改程序 |
| 第一列:A第二列:2 | 文件修改成功 |
file_001 | 修改文件失败-第一列字符为A或B且第二列字符为非数字 | 文件修改 | P3 | 打开文件修改程序 |
| 第一列:A第二列:* | 文件修改失败,提示信息M |
file_001 | 修改文件失败-第一列字符不是A或B且第二列字符为数字 | 文件修改 | P3 | 打开文件修改程序 |
| 第一列:C第二列:2 | 文件修改失败,提示信息L |
file_001 | 修改文件失败-第一列字符不是A或B且第二列字符为非数字 | 文件修改 | P3 | 打开文件修改程序 |
| 第一列:C第二列:& | 文件修改失败,提示信息M和信息L |
案例2-维修处理规则
维修处理规则:
- 已运行10年以上应给予优先的维修处理
- 维修记录不全并且功率大于50马力优先处理。
- 不满足上述两条描述的给予常规维修处理
条件3个:是否运行10年以上,维修记录是否不全,是否功率大于50马力
动作2个:优先维修处理,常规维修处理
判定表(一共3个条件,条件有2种取值(Y/N),组合数=23=8)
条件桩 | 是否运行10年以上 | Y | Y | Y | Y | N | N | N | N |
维修记录是否不全 | Y | Y | N | N | Y | Y | N | N | |
功率是否大于50马力 | Y | N | Y | N | Y | N | Y | N | |
动作桩 | 优先维修处理 | P | P | P | P | P | |||
常规维修处理 | P | P | P |
合并相似组合
条件桩 | 是否运行10年以上 | Y | N | N | N |
维修记录是否不全 | Y/N | Y | Y | N | |
功率是否大于50马力 | Y/N | Y | N | Y/N | |
动作桩 | 优先维修处理 | P | P | ||
常规维修处理 | P | P |
测试用例省略...
正交分析法
正交分析法:通过正交表选择部分有代表性的组合进行测试,从而降低测试成本。
正交分析法应用场景:输入条件比较多,对应的组合情况比较庞大。
正交表
因素:输入条件(类似于条件桩)
因素数:输入条件的个数
水平:输入条件的取值(比如:真/假,1或2等)
水平数:条件取值的个数
正交表的表示:
注意:
- N(正交表的行数):指的是正交表有多少行,每一行就对应一种组合情况,有几行就对应几个测试用例。
- S(正交表的列数):指的是正交表有多少列,即指的是输入条件的个数,每一列就对应一个条件。
- q(条件的取值个数)
如下面表示的正交表:
是一个3因素2水平的正交表(3个条件,条件的取值是2个),一共有4种组合情况。
正交表绘制如下:
正交表设计测试用例
正交表设计测试用例的步骤:
- 分析需求,确定因素(条件)和水平(条件取值)
- 选择合适的正交表进行问题的映射
常用的正交表:support.sas.com/techsup/technote/ts723_Designs.txt或常用正交表(可直接复制)以及混合正交表的使用-CSDN博客
- 根据正交表设计测试用例,正交表的一行对应一条测试用例
- 根据需求补充测试用例,看看有没有遗漏常用的组合情况
示例如下:
需求:车票查询
因素(条件)3个:出发地,目的地,出发日期
水平(条件取值)2个:填写和不填写
选择如下正交表进行问题的映射
正交表的列名用因素替换(出发地,目的地,出发日期)
正交表的每一列的取值用水平取值替换(填写和不填写)
替换后,如下:
实验号 | 列 | ||
出发地 | 目的地 | 出发日期 | |
1 | 填写 | 填写 | 填写 |
2 | 填写 | 不填写 | 不填写 |
3 | 不填写 | 填写 | 不填写 |
4 | 不填写 | 不填写 | 填写 |
转换测试用例省略(正交表的一行对应一条测试用例)
正交工具的使用(allpairs)
allpairs工具可以帮助我们更快速的生成正交表的结果。
allpairs工具的使用:
- 在excel表格中录入因素和水平
- 新建txt文件,将表格中的内容复制到xxx.txt文件
- 将txt文件放到allpairs文件夹下
- 打开dos命令窗口,切换到allpairs文件夹,输入:allpairs.exe xxx.txt>case.txt
使用allpairs完成如下案例正交表的设计:
需求:车票查询
在excel表格中录入因素和水平
在allpairs文件夹下,新建txt文件:test.txt,然后将表格中的内容复制到该文件中
打开dos命令窗口,切换到allpairs文件夹,输入:allpairs.exe test.txt>case.txt
生成的case.txt文件中,即是生成正交表
正交工具的安装和使用(正交设计助手)
正交设计助手-安装
双击exe文件
点击下一步
点击【浏览】,更改软件安装路径
点击下一步
点击下一步
点击完成
正交设计助手-使用
使用正交设计助手完成如下案例正交表的设计:
需求:车票查询
打开正交设计助手
点击【文件】>【新建工程】
点击【未命名工程】>右键>【修改工程】>修改工程名为Test>点击OK
选中Test>点击【实验】>【新建实验】
【实验说明】
【实验名称】填写:
设计正交表>车票查询-搜索条件
【简要描述】填写:
搜索条件:出发地,目的地,出发日期
出发地(填写,不填写)
目的地(填写,不填写)
出发日期(填写,不填写)
点击【选择正交表】
选择3因素2水平的正交表
点击【因素与水平】
填写表格如下:
点击确定
发现正交表已经设计完成,如下:
3因素2水平的正交表,一共有4种组合形式,对应4条测试用例
注意:如果要保存结果,记住要保存项目(正交设计助手不会提醒你保存)
错误推测法
错误推测法:根据测试工程师的经验推测系统可能出现的问题,是作为测试用例的一种补充手段。
错误推测法的应用场景:
- 时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试
- 时间宽裕通过该方法,列出之前出现问题较多的模块再次测试
错误推测法的使用:根据经验列举出可能出现问题的清单,根据清单分析问题可能原因, 推测发现缺陷。
其他方法(如:因果图法)
因果图法
参考:
因果图法-CSDN博客
完美诠释因果图与判定表法 - 知乎 (zhihu.com)
因果图法:因果图是用图解的方法表示输入的各种组合关系,依据因果图写出判定表,从而设计相应的测试用例。
因果图法应用场景:有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系。(是判定表法的前置处理方法,适用场景和判定表的场景一致)
用例测试方法总结
用例设计方法总结:
- 流程图法:业务场景测试
- 等价类:针对穷举测试
- 边界值:针对边界测试
- 因果图:针对条件约束,多条件组合测试(是判定表法的前置处理方法)
- 判定表:针对条件约束,多条件组合测试
- 正交法:针对多条件组合测试
- 错误推测法:根据经验对可能错误测试
案例1-保险保费
某保险公司的人寿保险保费计算方式为:投保额*保险费
保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;点数是由投保人的年龄、性别、婚姻状况和抚养人数来决定(点数相加),具体规则如下:
待解决...
案例2-购物车页面
画出思维导图,对测试点进行梳理
案例3-登录页面
画出思维导图,梳理测试点
测试用例如下: