软件测试用例设计方法
测试用例的设计方法
等价类法(解决穷举类):
- 有效等价:在有效的数据集合里取其一
- 无效等价:在无效的数据集合里取其一
具体工作流程:
- 明确需求
- 确定有效和无效等价类
- 提取数据编写用例
具体操作举例
一个密码需要6-10位自然数:
- 明确需求:密码为6-10位的自然数
- 有效类:6-10位的自然数;无效类:6-10位的非自然数、不是6-10位的自然数;
- 有效类中提取8位自然数;无效类中提取8位非自然数、5位自然数。
| 用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
|---|---|---|---|---|---|---|---|---|
| pwd_001 | 合法(8位自然数) | 登录 | 打开程序 | P0 | 1.输入密码 2.点击验证 |
12345678 | 合法 | 合法 |
| pwd_002 | 不合法(5位自然数) | 登录 | 打开程序 | P0 | 1.输入密码 2.点击验证 |
12345 | 不合法 | 不合法 |
| pwd_003 | 不合法(8位非自然数) | 登录 | 打开程序 | P0 | 1.输入密码 2.点击验证 |
a1234567 | 不合法 | 不合法 |
边界值法(解决有限定规则类):
边界范围节点:
- 要选取刚好等于,刚好大于,刚好小于边界的值作为测试的数据
- 上点:边界上的点,刚好等于的点
- 离点:距离点上最近的点,就是刚好大于,刚好小于的点
- 内点:范围内的点,区间范围内的数据
具体工作流程:
- 明确需求
- 确定有效和无效等价类
- 确定边界范围值
- 提取数据编写用例
具体操作举例
密码长度大于8,小于等于25个字符:
-
明确需求:密码长度大于8,小于等于25个字符
-
确定有效和无效等价类:有效:8-25个字符;无效:不是8-25个字符,小于等于8/大于25
-
边界为8-25:
上点取数据8和25;离点取7、9、24、26;内点取8-25的中间点17
-
提取数据编写用例:8、25、7、9、24、26、17
有效 无效 9 7 17 8 24 26 25 用例编号 用例标题 项目/模块 前置条件 优先级 测试步骤 测试数据 预期结果 实际结果 pwd_001 合法(9位字符) 登录 打开程序 P0 1.输入密码
2.点击验证9个a 合法 合法 pwd_002 合法(17位字符) 登录 打开程序 P0 1.输入密码
2.点击验证17个a 合法 合法 pwd_003 合法(24位字符) 登录 打开程序 P0 1.输入密码
2.点击验证24个a 合法 合法 pwd_004 合法(25位字符) 登录 打开程序 P0 1.输入密码
2.点击验证25个a 合法 合法 pwd_005 不合法(7位字符) 登录 打开程序 P0 1.输入密码
2.点击验证7个a 不合法 不合法 pwd_006 不合法(8位字符) 登录 打开程序 P0 1.输入密码
2.点击验证8个a 不合法 不合法 pwd_007 不合法(26位字符) 登录 打开程序 P0 1.输入密码
2.点击验证26个a 不合法 不合法
优化边界值离店只用选四个中的两个:上点内点必须取,离点选择开内闭外(开区间选内部的点,闭区间选外部的点)
判定表法(解决多条件依赖(重要的是需要满足多条件和依赖两个条件))
解决多个条件以及条件和结果之间有制约关系的测试(也叫决策表)
由4个部分组成
- 条件桩:所有条件的名称,先后顺序没有约束
- 动作桩:指所以可能采取的操作,顺序没有约束
- 条件项:条件桩中条件所有可能的取值
- 动作项:与条件项密切相关,列出在条件项下的各组取值情况下应该采取的动作
规则:
- 判定表中贯穿条件项和动作项的一列就是一条规则
- 假如有n个条件,每个条件的取值有a个,则全组合有a^n种规则
具体工作流程:
- 明确需求(需求分析)
- 画出判定表
- 列出所有的条件桩和条件项
- 列出所有的动作桩和动作项
- 根据规则,确定动作项设计初始判定表
- 简化判定表,合并相似规则,设计测试用例
- 根据规则编写测试用例
具体操作举例
超市产品销售:
超市中如果某产品的销售好且库存低,则继续销售并添加该产品的进货;如果该产品销售好,但库存不低,则继续销售;如果该产品销售不好,但库存低,则下架该产品;如果该产品销售不好,且库存量不低,如果有空货架则继续销售,如果没有空货架,则下架该产品
(销售量大于等于1000为销售好,库存低于100则库存低)
- 明确需求
| 条件桩 | 动作桩 |
|---|---|
| 销售好 | 继续销售 |
| 库存低 | 增加进货 |
| 有空货架 |
2.判定表制作:
此为方便操作添加的编号
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|
| 条件 | 销售好 | T | T | T | T | F | F | F | F |
|---|---|---|---|---|---|---|---|---|---|
| 条件 | 库存低 | T | F | T | F | F | T | F | T |
| 条件 | 有空货架 | T | T | F | F | F | F | T | T |
| 动作 | 继续销售 | 是 | 是 | 是 | 是 | 是 | |||
| 动作 | 增加进货 | 是 | 是 | ||||||
| 动作 | 产品下架 | 是 | 是 | 是 |
测试时,其中相似动作的可以合并为一个测试测试结果,所以只需要测试合并前的其中一个数据即可:
- 如1可以和3合并
- 2可以和4合并
- 5可以和6合并
3.编写测试用例
| 用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
|---|---|---|---|---|---|---|---|---|
| market_001 | 继续销售,增加进货(销售量大于等于1000,库存小于100,有空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量2000,库存量50,有空货架 | 继续销售,增加进货 | 继续销售,增加进货 |
| market_002 | 继续销售(销售量大于等于1000,库存大于100,有空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量1100,库存量110,有空货架 | 继续销售 | 继续销售 |
| market_003 | 继续销售,增加进货(销售量大于等于1000,库存小于100,无空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量3100,库存量50,无空货架 | 继续销售,增加进货 | 继续销售,增加进货 |
| market_004 | 继续销售(销售量大于等于1000,库存大于100,无空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量3100,库存量150,无空货架 | 继续销售 | 继续销售 |
| market_005 | 产品下架(销售量小于1000,库存小于100,无空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量800,库存量50,无空货架 | 产品下架 | 产品下架 |
| market_006 | 产品下架(销售量小于1000,库存大于等于100,无空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量800,库存量150,无空货架 | 产品下架 | 产品下架 |
| market_007 | 继续销售(销售量小于1000,库存量大于等于100,有空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量800,库存量150,有空货架 | 继续销售 | 继续销售 |
| market_008 | 产品下架(销售量小于1000,库存量小于100,有空货架) | 超市 | 打开软件 | P1 | 1.填写销量 2.填写库存量 3.查看有无空货架 4.点击验证 |
销售量800,库存量50,有空货架 | 产品下架 | 产品下架 |
场景法(流程图法)
主要是模拟真实使用场景来进行测试。通过执行和设计各种场景来模拟用户的操作行为
具体工作流程:
- 需求分析
- 根据基本流和各项备选流来生成不同场景
- 编写测试用例
具体操作举例:
图书管理系统测试:
图书卡办理人员在注册界面录入读者登记信息,系统验证录入信息是否有效,并验证此信息是否被录入过,如果有效且唯一,办理人员录入图书卡卡号收取押金,系统将读者信息增加到读者信息表,并将卡号与读者绑定,办理人员将图书卡和押金收据交于读者。
(ps:读者信息为4位字符,卡号为6位数字)
- 需求分析
基本流:
-
开始
-
办理人员录入读者信息
-
系统验证有效
-
系统验证读者信息没有被注册
-
办理人员录入图书卡卡号
-
办理人员收取押金
-
系统将读者信息增加到读者信息表
-
系统将卡号与读者绑定
-
办理人员将图书卡和押金收据交于读者
-
结束
备选流:
3a. 系统验证无效
4a.系统验证读者信息被注册
6a.办理人员收取押金失败
-
根据基本流和各项备选流来生成不同场景
根据基本流和备选流画出流程图
-
编写测试用例:
用例编号 用例标题 项目/模块 前置条件 优先级 测试步骤 测试数据 预期结果 实际结果 library_001 注册成功 图书管理系统 打开程序 P0 1. 录入信息
2.录入卡号
3.收取押金
4.把卡号和押金条给读者读者信息:abcd
卡号123456
押金收取成功注册成功 注册成功 library_002 注册失败(信息无效) 图书管理系统 打开程序 P0 1. 录入信息
2.录入卡号
3.收取押金
4.把卡号和押金条给读者读者信息:abc 注册失败 注册失败 library_003 注册失败(信息不唯一) 图书管理系统 打开程序 P0 1. 录入信息
2.录入卡号
3.收取押金
4.把卡号和押金条给读者读者信息:abcd 注册失败 注册失败 library_004 注册失败(押金未收取) 图书管理系统 打开程序 P0 1. 录入信息
2.录入卡号
3.收取押金
4.把卡号和押金条给读者读者信息:ASDF
卡号123459
押金收取失败注册失败 注册失败

浙公网安备 33010602011771号