等价类划分法
- 解决问题:设计少量测试数据覆盖全量数据测试的场景问题。
- 适用场景:针对表单类页面元素测试时使用。(输入框、单选框、下拉列表等)
- 说明:在所有测试数据中,将输入数据划分为“有效”和“无效”两类, 用代表性数据进行测试。
- 分类:
- 有效等价类:满足需求条件的数据集合 →(条件已满足。如:已注册正确账号)
- 无效等价类:不满足需求的数据集合 →(只要有一个条件不满足即可。如:未注册的账号)
- 步骤:
- 明确需求 → 搞清楚测试目的和条件
- 划分有效和无效等价类 → 有效 、 无效
- 提取数据设计测试点 → 选择不同类里面一组测试数据
-
测试条件:长度 类型 规则
-
注意事项
- 测试点有效:满足所有条件项(长度、类型、规则同时符合)
- 测试点无效:只要有其一(条件某项)不满足即可
- 等价类的划分:需要按照每个条件划分有效和无效
案例1:验证QQ登录功能
-
要求:
-
- 账号:6~10位自然数且已注册(非空)
-
- 密码:正确/错误/空
-
-
步骤:
-
1.测试目的:验证QQ能否登录成功
-
2.划分等价类:有效和无效→ 下图xmind
-
3.提取数据设计测试点:参见下图xmind
-
无效等价类的拆解思路:按照测试条件拆解:
- 长度:6~10位 ;类型:自然数 ;规则:已注册
-
-
等价类划分法测试用例组合规则
- 成功场景:选取各输入条件的有效等价类元素进行全组合,验证系统在完全符合规则时的功能正确性。
- 成功场景测试用例数量:各输入条件有效等价类数量的乘积即为有效场景的总覆盖数,单条件有效等价类的最大覆盖边界等同于总有效场景数。
- 失败场景:采用"单无效+多有效"的组合策略——每次仅选取一个输入条件的无效等价类元素,与其他所有输入条件的有效等价类元素组合,避免多无效等价类叠加。该策略可精准定位缺陷根因,排除多重无效条件的干扰。
- 测试用例数量为各条件无效等价类数量的累加和。
- 用例简化规则:失败场景测试用例中,默认省略对有效条件的描述,仅明确标注所引入的无效条件。
案例2:登录功能验证
- 需求:
-
- 账号:必填,已注册手机号或邮箱
-
- 密码:必填,已注册账号对应密码
-
- 验证码:必填,正确且未过期
-
案例3:微信注册的测试
- 需求:
- 1、手机号:合法(11位自然数)且未注册,不能为空
- 2、密码:8-16位英文字母、数字、特殊符号组合,不能是纯数字
- 3、协议:注册时必须勾选
- 4、暂不考虑昵称和头像
测试点设计逻辑:按「长度-类型-规则」三维度拆解
手机号维度测试用例:
- 有效等价类:需同时满足三维度约束——长度为11位、类型为自然数、规则为未注册状态,三者缺一不可。
- 无效等价类:
- 长度维度:包含短于11位、长于11位、空值/零长度(特殊长度场景);
- 类型维度:非自然数格式(含字母、特殊字符、混合格式等);
- 规则维度:已注册的手机号。
- 所有无效场景均遵循「单维度失效+其余维度有效」的组合原则,确保缺陷可精准定位。
边界值分析法
-
需求:计算器功能测试,如果输入的数字大于等于-99同时小于等于99整数时,求和成功;否则给出错误提示
-
分析:涉及到批量数据的测试
-
明确需求:
- ➢ 测试目的:验证两位数整数求和能否成功
- ➢ 测试条件:两个整数范围值
-
划分等价类
-
提取数据编写用例
-
-
适用场景: 针对有边界范围的测试数据输入场景时使用(边界值分析法重点在于边界,可以对等价类补充)
-
范围节点: 选取正好等于、刚好大于、刚好小于边界的值作为测试数据
- ➢ 上点:边界上的点(正好等于)
- ➢ 离点:距离上点最近的点(刚好大于、刚好小于)
- ➢ 内点:范围内的点(区间范围内的数据)
-
引例中范围节点如下
使用步骤
- 明确需求 → 测试目的 和 测试条件
- 划分等价类 → 有效 和 无效
| 有效 | 取值 | 无效 | 取值 |
|---|---|---|---|
| -99到99之间整数 | 50 | 小于-99 | -110 |
| 大于99 | 120 | ||
| 非整数 | 5a | ||
| 空 |
- 确定边界值 → 上点、离点、内点(和步骤2合并)
- 上点:-99,99
- 离点:-100,-98,98,100
- 内点:50(任意一组)
| 有效 | 取值 | 无效 | 取值 |
|---|---|---|---|
| -99到99之间整数 | 50 | 小于-99 | -100 |
| 整数99 | 99 | 大于99 | 100 |
| 整数-99 | -99 | 非整数 | 5a |
| 整数98 | 98 | 空 | |
| 整数-98 | -98 |
- 提取数据设计测试点 → 验证功能点(xmind)
案例 1:验证QQ登录功能
要求:通过边界值进行完善补充
-
账号:6~10位自然数且已注册(非空)
-
密码:正确/错误/空
1.明确需求:测试目的、测试条件
2.划分等价类:有效和无效→ xmind
3.确定边界值:上点离点内点→ xmind
4.提取数据设计测试点:参见xmind
- 测试条件: 长度:6~10位; 类型:自然数; 规则:已注册
-
注: QQ登录测试点→ QQ登录成功→ (......)省略号内容是:“账号是7位自然数且已注册,密码正确”;“账号是9位自然数且已注册,密码正确”
-
案例在原划分等价类→账号→有效 的基础上加了6、10、7、9位长度,原有6-10 位长度取边界值内点8位,五个长度数都是满足账号有效的测试点
-
账号→无效:小于6位取边界值离点5位,大于10位取边界值离点11位,对跟长度相关的两个无效测试点进行取值固定长度,数据补充完测试的完整性更高漏测概率更低,确保覆盖全面
-
案例 2:微信注册的测试
要求:使用边界值进行完善用例
1、手机号:合法(11位自然数)且未注册,不能为空
2、密码:8-16位英文字母、数字、特殊符号组合,不能是纯数字
3、协议:注册时必须勾选
4、暂不考虑昵称和头像
- 案例在原划分等价类→密码→有效 的基础上改了两个8-16位长度为8位、16位固定值(不需要新增),9、12、15也在8-16范围内,随机选三个取固定值(只控长度,类型随机一个,因为目标是测长度,不是测类型,类型还是覆盖得全),案例1“验证QQ登录功能”中 账号→有效 需要添加,因为它总共只有一个有效的,6-10位,改成取任意一个固定值其他的就测不了,所以不能通过改,只能添加。 密码→无效:小于8位取边界值离点7位,大于16位取边界值离点17位
边界值分析法范围优化(离点优化)
- 存在问题:引例中-98和98即属于离点又属于内点,那该如何处理呢?
- 结论:7个点优化为5个点
- ➢ 上点:必选(不考虑区间开闭)
- ➢ 内点:必选(建议选择中间范围)
- ➢ 离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)
- 说明:
-
➢ 开区间:不包含 → ( ) 表示
-
➢ 闭区间:包含 → [ ] 表示
-
➢ 示例:-99<a<=99 →使用开闭区间表示:(-99,99]
-
- 引例优化:
-
边界值分析的离点优化逻辑如下:
- 对于开区间,因不包含上点,以内点测试即可覆盖区间内场景,内点取上点与区间另一端点的中间值;
- 对于闭区间,需同时测试内点与上点以覆盖区间内部及边界场景,再补充区间外离点测试,实现全范围覆盖,避免漏测。其中上点为核心测试对象,上点若存在问题,将直接引发区间范围类严重缺陷。
-
当边界上点属于无效等价类时,选取有效域内的离点开展测试;当边界上点属于有效等价类时,选取无效域内的离点开展测试,以此实现对边界场景及域间差异的精准覆盖。
-
对于半开半闭区间,需区分区间属性针对性选取测试点:开区间侧选取其内部离点验证有效域逻辑,闭区间侧选取其外部离点验证边界外处理规则。
-
针对兼具内点与离点属性的有效等价类元素(如上例中的7、9),仅需选取其一开展内点测试(如上例中的8),无需重复测试同属有效域的离点(如上例中的7、9),重点补充外部离点测试即可实现覆盖(如上例中的5、11)。
- 对于闭区间[6,10],因区间包含边界值6和10,需覆盖内点、上点与外离点三类测试场景:内点选取区间内部典型值(如7、8、9)以验证有效域内逻辑;上点直接测试边界值6和10,确认边界场景的正确性;外离点选取区间外紧邻边界的点(如5、11),验证系统对超出范围值的处理逻辑。其中上点为核心测试对象,若边界值6或10存在异常,将直接导致区间范围类严重缺陷;对于兼具内点与离点属性的有效等价类元素(如7、9),仅需选取其一开展测试,无需重复验证同属有效域的离点,通过内点+上点+外离点的组合测试,可实现对闭区间[6,10]的全场景覆盖,避免漏测。
-
若是开区间(6,10),对于开区间(6,10),因区间本身不包含边界值6和10,测试小于6或大于10的外离点无覆盖价值,无需开展此类测试。
-
在边界值测试用例设计中,四个候选离点最终仅需保留两个;上点(边界点)与内点为必选测试点,需纳入用例集
等价类边界值xmind测试点案例
某用户名密码登录测试设计方法(要求以xmind形式输出测试点)
某理财系统注册功能测试用例设计(要求以xmind形式输出测试点)
> 需求:
> * 账号:11位自然数手机号
> * 密码提示:6\~16位字母、数字组合,也支持特殊符号
> * 图片验证码:正确未过期
> * 短信验证码:正确未过期,例如:666666
> * 邀请人:非必填,已注册的手机号
> * 协议:同意勾选
- 金融项目注册测试点目的是注册成功,所以有效是注册成功,无效是注册失败
测试点思路
- 变的写出来,不变的一句话来描述所有的就行了
- 在组合注册成功场景的测试点时,若某条件存在五个有效等价类,需全面覆盖这五类;对仅有一个有效等价类的条件,按常规列出;对于具有两个有效等价类的条件,则需将其与五类条件进行组合,且需随机变换组合方式,以确保测试的全面性。
某电商后台会员添加功能测试设计