目录
前言:什么是测试用例
- 用例:用户使用的案例
- 测试用例:执行测试的文档(用户使用的案例)
- 考虑点:质量模型(功能、性能、兼容、易用、安全)
- 作用:防止漏测、实施测试标准
1、格式(八大要素):
- 用例编号:项目+模块+编号
- 用例标题:预期结果+操作步骤
- 模块/项目:所属项目或模块
- 前置条件:要执行此条用例,有哪些前置操作
- 优先级:表示用例的重要程度或者影响力P0 ~ P4(P0最高)
- 测试步骤:描述操作步骤
- 测试数据:操作的数据,没有的话可以为空
- 预期结果:期望达到的结果
2、针对穷举场景设计测试点
方法:等价类实现
- 分类:
有效等价类:所有有效数据集合,取一个即可。
无效等价类:所有无效数据集合,取一个即可。
- 步骤:
1、明确需求。
2、确定有效和无效等价类。
3、提取数据编写用例。
案例1:qq号6-10 位自然数
- 示例:
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
qq_001 | 合法(8位自然数) | 打开qq程序 | P0 | 1、输入qq号 2、点击验证 | 12345678 | 合法 | ||
qq_002 | 不合法(4位自然数) | 打开qq程序 | P0 | 1、输入qq号 2、点击验证 | 1234 | 不合法 | ||
qq_003 | 不合法(8位非自然数) | 打开qq程序 | P0 | 1、输入qq号 2、点击验证 | 1234567a | 不合法 |
案例2:电话号码
一、确认需求:
- 区号:空或者是三位数字。
- 前缀码:非“0”且非“1”开头的三位数字。
- 后缀码:四位数字
参数 | 类型 | 长度 | 规则 |
区号 | 数字 | 为空或 3位 | / |
前缀 | 数字 | 3位 | 非0且非1开头 |
后缀 | 数字 | 4位 | / |
二、确认有效等价和无效等价
参数 | 有效等价 | 无效等价 | |
区号 | 长度 | 为空 3位 | 1位 |
前缀 | 3位 | 2位 | |
后缀 | 4位 | 3位 | |
区号 | 类型 | 数字 | 非数字 |
前缀 | 数字 | 非数字 | |
后缀 | 数字 | 非数字 | |
区号 | 规则 | / | / |
前缀 | 非0且非1开头 | 0开头 1开头 | |
后缀 | / | / |
三、提取测试数据编写用例并执行
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
tel_001 | 合格(区号为空+3位数字前缀且非0非1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:234 3、后缀:4567 | 合格 | |
tel_002 | 合格(区号为3位数字+3位数字前缀且非0非1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:123 2、前缀:234 3、后缀:4567 | 合格 | |
tel_003 | 不合格(区号为1位数字+3位数字前缀且非0非1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:1 2、前缀:234 3、后缀:4567 | 不合格 | |
tel_004 | 不合格(区号为空+2位数字前缀且非0非1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:23 3、后缀:4567 | 不合格 | |
tel_005 | 不合格(区号为空+3位数字前缀且非0非1开头+3位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:234 3、后缀:456 | 不合格 | |
tel_006 | 不合格(区号为3位非数字+3位数字前缀且非0非1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:a12 2、前缀:234 3、后缀:4567 | 不合格 | |
tel_007 | 不合格(区号为空+3位非数字前缀且非0非1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:23a 3、后缀:4567 | 不合格 | |
tel_008 | 不合格(区号为空+3位数字前缀且非0非1开头+4位非数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:234 3、后缀:456a | 不合格 | |
tel_009 | 不合格(区号为空+3位数字前缀且0开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:023 3、后缀:4567 | 不合格 | |
tel_010 | 不合格(区号为空+3位数字前缀且1开头+4位数字后缀) | 电话 | / | P0 | 1、输入区号 2、输入前缀 3、输入后缀 | 1、区号:为空 2、前缀:134 3、后缀:4567 | 不合格 |
- 场景:
针对需要大量数据测试输入,但是没法穷尽测试的地方。
例如:输入框、下拉列表、单选复选框。
典型代表:页面级的输入框类测试。
3、针对限定边界规则设计测试点
方法:边界值设计方法
名词:
- 上点:边界上的点(绿色)
- 离点:离边界最近的点(黄色)
- 内点:范围内的点(蓝色)
案例:文章标题
一、明确需求
标题长度大于0,小于等于30个字符
二、确定有效等价和无效等价、确定边界范围值
有效边界值 | 无效边界值 |
大于0小于等于30 | 1、等于0 2、大于30 |
1个字符、29个字符、30个字符 | 0个字符、31个字符 |
三、编写用例
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
title_001 | 合格(1个字符) | 标题 | 打开工具 | P0 | 1、输入数据 2、点击确定 | a | 合格 | |
title_002 | 合格(29个字符) | 标题 | 打开工具 | P0 | 1、输入数据 2、点击确定 | 29个a | 合格 | |
title_003 | 合格(30个字符) | 标题 | 打开工具 | P0 | 1、输入数据 2、点击确定 | 30个b | 合格 | |
title_004 | 不合格(为空) | 标题 | 打开工具 | P1 | 1、输入数据 2、点击确定 | 空 | 不合格 | |
title_005 | 不合格(31个字符) | 标题 | 打开工具 | P1 | 1、输入数据 2、点击确定 | 31个c | 不合格 |
使用场景:
- 常见的词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
- 典型代表:有边界范围的输入框类测试
提示:边界值可以覆盖等价类的长度,但是无法覆盖类型。所以设计用例时必须两者结合。
4、对多条依赖关系进行设计测试点
方法:判定表
- 定义:是一种以表格形式表达多条件逻辑判断的工具
- 组成:
- 条件桩:列出问题中的所有条件,列出条件的次序无关紧要。
- 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束。
- 条件项:列出条件对应的取值,所有可能情况下的真假值。
- 动作项:列出条件的各种取值情况下应该采取的动作结果。
- 规则:
- 判定表中贯穿条件和动作项的一列就是一条规则。
- 假设有n个条件,每个条件的取值有两个(0,1),全组合有 2 的 n 次方种规则。
- 步骤:
- 明确需求
- 画出判定表
1)、列出条件桩和动作桩
2)、填写条件项,对条件进行全组合
3)、根据条件项的组合确定动作项
4)、简化、合并相似规则(有相同的动作)
3.根据规则编写测试用例
案例1:订单发货验证
一、明确需求:
1)、如果金额大于500元,又未过期,则发出批准单和提货单;
2)、如果金额大于500元,但过期了,则不发批准单与提货单;
3)、如果金额小于等于500元,则不论是否过期都发出批准单和提货单;
4)、在过期的情况下不论金额大小还需要发出通知单。
二、列出条件桩和动作桩
条件 | 大于500 | 是 | 是 | 否 | 否 |
未过期 | 是 | 否 | 是 | 否 | |
动作 | 批准单 | √ | × | √ | √ |
提货单 | √ | × | √ | √ | |
通知单 | × | √ | × | √ |
三、编写用例
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
order_001 | 发批准单和提货单(大于500、未过期) | 订单 | 软件打开 | P1 | 1、输入金额 2、查看是否过期 | 1、金额:501 2、未过期 | 发:批准单、提货单 不发:通知单 | |
order_002 | 发通知单(大于500、过期) | 订单 | 软件打开 | P1 | 1、输入金额 2、查看是否过期 | 1、金额:501 2、过期 | 不发:批准单、提货单 发:通知单 | |
order_003 | 发批准单和提货单(等于500、未过期) | 订单 | 软件打开 | P1 | 1、输入金额 2、查看是否过期 | 1、金额:500 2、未过期 | 发:批准单、提货单 不发:通知单 | |
order_004 | 发批准单和提货单、通知单(小于500、过期) | 订单 | 软件打开 | P1 | 1、输入金额 2、查看是否过期 | 1、金额:400 2、过期 | 发:批准单、提货单、通知单 |
案例2:字符与数字
一、明确需求:
二、列出条件桩和动作桩
条件 | 是A或B | 是 | 是 | 否 | 否 |
是数字 | 是 | 否 | 是 | 否 | |
动作 | L | × | × | √ | √ |
M | × | √ | × | √ | |
成功 | √ | × | × | × |
三、编写用例
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
file_001 | 修改成功(第一列为A或B,第二位数字) | 文件 | 软件打开 | P0 | 1、输入第一列 2、输入第二列 | 1、A 2、1 | 修改文件成功 | |
file_002 | 输出M(第一列为A或B,第二位非数字) | 订单 | 软件打开 | P1 | 1、输入第一列 2、输入第二列 | 1、A 2、A | 输出M | |
file_003 | 输出L(第一列非A或B,第二列是数字) | 订单 | 软件打开 | P1 | 1、输入第一列 2、输入第二列 | 1、C 2、1 | 输出L | |
file_004 | 输出M、L(第一列非A或B,第二列非数字) | 订单 | 软件打开 | P1 | 1、输入第一列 2、输入第二列 | 1、C 2、C | 输出M、L |
- 应用场景
- 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
- 判定表一般适用于条件组合数量较少的情况(比如4个条件以下)
提示:如果碰到项目中多条件组合大于4个相互依赖,可以使用正交表和因果图实现。
5、对项目业务进行设计用例
方法:使用流程图,测试业务
案例:ATM机
设计测试用例
用例编号 | 用例标题 | 项目/模块 | 前置条件 | 优先级 | 测试步骤 | 测试数据 | 预期结果 | 实际结果 |
ATM_001 | 取款成功 | ATM | 1、银行卡账户余额充足 2、ATM余额充足 | P0 | 1、插入卡 2、输入密码 3、输入取款金额 4、拿钱取卡 | 1、卡:银行卡 2、密码:正确密码 3、取款金额:1000 | 1、取款成功 2、账户余额扣款成功 3、退卡成功 | |
ATM_002 | 取款失败(非银行卡) | ATM | 1、银行卡账户余额充足 2、ATM余额充足 | P0 | 1、插入卡 2、输入密码 3、输入取款金额 4、拿钱取卡 | 1、卡:会员卡 2、密码: 3、取款金额: | 取款失败,提示:银行卡类型不对,并吐卡 | |
ATM_003 | 取款失败(密码错误3次) | ATM | 1、银行卡账户余额充足 2、ATM余额充足 | P0 | 1、插入卡 2、输入密码 3、输入取款金额 4、拿钱取卡 | 1、卡:银行卡 2、密码:错误密码3次 3、取款金额: | 取款失败,提示:密码错误超过3次,并吞卡成功。 | |
ATM_004 | 取款失败(余额不足) | ATM | 1、银行卡账户为0 2、ATM余额充足 | P0 | 1、插入卡 2、输入密码 3、输入取款金额 4、拿钱取卡 | 1、卡:银行卡 2、密码:正确密码 3、取款金额:1000 | 取款失败,提示:账户月不足。90秒后自动退卡 | |
ATM_005 | 取款失败(取款金额非100的整数) | ATM | 1、银行卡账户余额充足 2、ATM余额充足 | P0 | 1、插入卡 2、输入密码 3、输入取款金额 4、拿钱取卡 | 1、卡:银行卡 2、密码:正确密码 3、取款金额:130 | 1、取款失败,提示:取款金额必须为100的倍数,单次在20000内 | |
ATM_006 | 取款失败(ATM机余额不足) | ATM | 1、银行卡账户余额充足 2、ATM余额为200 | P0 | 1、插入卡 2、输入密码 3、输入取款金额 4、拿钱取卡 | 1、卡:银行卡 2、密码:正确密码 3、取款金额:1000 | 1、取款失败,提示:ATM故障。 |
-
错误推测法
- 定义:通过经验推测系统可能出现的问题。
- 思想:根据经验列举出可能出现问题的清单,根据清单分析问题可能原因推测并发现缺陷。
- 场景:时间紧任务量大时,根据之前项目类似的经验找出易出错的模块重点测试。时间宽裕时通过该方法列出之前问题出现较多的模块再次测试。