测试设计—黑盒测试—等价类划分法、边界值分析法

111 阅读10分钟
等价类划分法
  • 解决问题:设计少量测试数据覆盖全量数据测试的场景问题。
  • 适用场景:针对表单类页面元素测试时使用。(输入框、单选框、下拉列表等)
  • 说明:在所有测试数据中,将输入数据划分为“有效”和“无效”两类, 用代表性数据进行测试。
  • 分类:
    • 有效等价类:满足需求条件的数据集合 →(条件已满足。如:已注册正确账号)
    • 无效等价类:不满足需求的数据集合 →(只要有一个条件不满足即可。如:未注册的账号)
  • 步骤:
  1. 明确需求 → 搞清楚测试目的和条件
  2. 划分有效和无效等价类 → 有效 、 无效
  3. 提取数据设计测试点 → 选择不同类里面一组测试数据
  • 测试条件:长度 类型 规则

  • 注意事项

    • 测试点有效:满足所有条件项(长度、类型、规则同时符合)
    • 测试点无效:只要有其一(条件某项)不满足即可
    • 等价类的划分:需要按照每个条件划分有效和无效
案例1:验证QQ登录功能
  • 要求:

      1. 账号:6~10位自然数且已注册(非空)
      1. 密码:正确/错误/空
  • 步骤:

    • 1.测试目的:验证QQ能否登录成功

    • 2.划分等价类:有效和无效→ 下图xmind

    • 3.提取数据设计测试点:参见下图xmind

      • 无效等价类的拆解思路:按照测试条件拆解:

        • 长度:6~10位 ;类型:自然数 ;规则:已注册

微信图片_20260420085748_20_81.png

等价类划分法测试用例组合规则
  • 成功场景‌:选取各输入条件的有效等价类元素进行全组合,验证系统在完全符合规则时的功能正确性。
    • 成功场景测试用例数量:各输入条件有效等价类数量的乘积即为有效场景的总覆盖数,单条件有效等价类的最大覆盖边界等同于总有效场景数。
  • 失败场景‌:采用"单无效+多有效"的组合策略——每次仅选取一个输入条件的无效等价类元素,与其他所有输入条件的有效等价类元素组合,避免多无效等价类叠加。该策略可精准定位缺陷根因,排除多重无效条件的干扰。
    • 测试用例数量为各条件无效等价类数量的累加和。
  • 用例简化规则‌:失败场景测试用例中,默认省略对有效条件的描述,仅明确标注所引入的无效条件。
案例2:登录功能验证
  • 需求:
      1. 账号:必填,已注册手机号或邮箱
      1. 密码:必填,已注册账号对应密码
      1. 验证码:必填,正确且未过期

微信图片_20260420085546_19_81.png

案例3:微信注册的测试
  • 需求:
    • 1、手机号:合法(11位自然数)且未注册,不能为空
    • 2、密码:8-16位英文字母、数字、特殊符号组合,不能是纯数字
    • 3、协议:注册时必须勾选
    • 4、暂不考虑昵称和头像

微信图片_20260420085907_21_81.png

微信图片_20260420090003_22_81.png

测试点设计逻辑:按「长度-类型-规则」三维度拆解

手机号维度测试用例:

  • 有效等价类‌:需同时满足三维度约束——长度为11位、类型为自然数、规则为未注册状态,三者缺一不可。
  • 无效等价类‌:
    • 长度维度‌:包含短于11位、长于11位、空值/零长度(特殊长度场景);
    • 类型维度‌:非自然数格式(含字母、特殊字符、混合格式等);
    • 规则维度‌:已注册的手机号。
  • 所有无效场景均遵循「单维度失效+其余维度有效」的组合原则,确保缺陷可精准定位。
边界值分析法
  • 需求:计算器功能测试,如果输入的数字大于等于-99同时小于等于99整数时,求和成功;否则给出错误提示

  • 分析:涉及到批量数据的测试

    • 明确需求:

      • ➢ 测试目的:验证两位数整数求和能否成功
      • ➢ 测试条件:两个整数范围值
    • 划分等价类

    • 提取数据编写用例

  • 适用场景: 针对有边界范围的测试数据输入场景时使用(边界值分析法重点在于边界,可以对等价类补充)

  • 范围节点: 选取正好等于、刚好大于、刚好小于边界的值作为测试数据

    • ➢ 上点:边界上的点(正好等于)
    • ➢ 离点:距离上点最近的点(刚好大于、刚好小于)
    • ➢ 内点:范围内的点(区间范围内的数据)
  • 引例中范围节点如下

ScreenShot_2026-04-20_154957_306.png

使用步骤

  1. 明确需求 → 测试目的 和 测试条件
  2. 划分等价类 → 有效 和 无效
有效取值无效取值
-99到99之间整数50小于-99-110
大于99120
非整数5a
  1. 确定边界值 → 上点、离点、内点(和步骤2合并)
    • 上点:-99,99
    • 离点:-100,-98,98,100
    • 内点:50(任意一组)
有效取值无效取值
-99到99之间整数50小于-99-100
整数9999大于99100
整数-99-99非整数5a
整数9898
整数-98-98
  1. 提取数据设计测试点 → 验证功能点(xmind)
案例 1:验证QQ登录功能

要求:通过边界值进行完善补充

  1. 账号:6~10位自然数且已注册(非空)

  2. 密码:正确/错误/空

    1.明确需求:测试目的、测试条件

    2.划分等价类:有效和无效→ xmind

    3.确定边界值:上点离点内点→ xmind

    4.提取数据设计测试点:参见xmind

  • 测试条件: 长度:6~10位; 类型:自然数; 规则:已注册

ScreenShot_2026-04-21_125232_846.png

ScreenShot_2026-04-21_125350_263.png

  • 注: QQ登录测试点→ QQ登录成功→ (......)省略号内容是:“账号是7位自然数且已注册,密码正确”;“账号是9位自然数且已注册,密码正确”

    • 案例在原划分等价类→账号→有效 的基础上加了6、10、7、9位长度,原有6-10 位长度取边界值内点8位,五个长度数都是满足账号有效的测试点

    • 账号→无效:小于6位取边界值离点5位,大于10位取边界值离点11位,对跟长度相关的两个无效测试点进行取值固定长度,数据补充完测试的完整性更高漏测概率更低,确保覆盖全面

案例 2:微信注册的测试

要求:使用边界值进行完善用例

1、手机号:合法(11位自然数)且未注册,不能为空

2、密码:8-16位英文字母、数字、特殊符号组合,不能是纯数字

3、协议:注册时必须勾选

4、暂不考虑昵称和头像

ScreenShot_2026-04-21_130348_167.png

  • 案例在原划分等价类→密码→有效 的基础上改了两个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]

      ScreenShot_2026-04-20_163510_855.png

  • 引例优化:

1.png

ScreenShot_2026-04-20_163707_383.png

  1. 边界值分析的离点优化逻辑如下:

    1. 对于开区间,因不包含上点,以内点测试即可覆盖区间内场景,内点取上点与区间另一端点的中间值;
    2. 对于闭区间,需同时测试内点与上点以覆盖区间内部及边界场景,再补充区间外离点测试,实现全范围覆盖,避免漏测。其中上点为核心测试对象,上点若存在问题,将直接引发区间范围类严重缺陷。
  2. 当边界上点属于无效等价类时,选取有效域内的离点开展测试;当边界上点属于有效等价类时,选取无效域内的离点开展测试,以此实现对边界场景及域间差异的精准覆盖。

  3. 对于半开半闭区间,需区分区间属性针对性选取测试点:开区间侧选取其内部离点验证有效域逻辑,闭区间侧选取其外部离点验证边界外处理规则。

ScreenShot_2026-05-02_221640_120.png

  • 针对兼具内点与离点属性的有效等价类元素(如上例中的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形式输出测试点)

image-20250612233413191.png

ScreenShot_2026-04-21_231846_222.png

ScreenShot_2026-04-21_232311_813.png

ScreenShot_2026-04-21_232412_100.png


某理财系统注册功能测试用例设计(要求以xmind形式输出测试点)

> 需求:
> *   账号:11位自然数手机号
> *   密码提示:6\~16位字母、数字组合,也支持特殊符号
> *   图片验证码:正确未过期
> *   短信验证码:正确未过期,例如:666666
> *   邀请人:非必填,已注册的手机号
> *   协议:同意勾选
image-20250612232934107.png

ScreenShot_2026-04-22_072015_754.png

ScreenShot_2026-04-22_073344_047.png

ScreenShot_2026-04-22_080414_254.png

  • 金融项目注册测试点目的是注册成功,所以有效是注册成功,无效是注册失败
测试点思路
  • 变的写出来,不变的一句话来描述所有的就行了
  • 在组合注册成功场景的测试点时,若某条件存在五个有效等价类,需全面覆盖这五类;对仅有一个有效等价类的条件,按常规列出;对于具有两个有效等价类的条件,则需将其与五类条件进行组合,且需随机变换组合方式,以确保测试的全面性。

某电商后台会员添加功能测试设计

image-20250613172345931.png

ScreenShot_2026-04-23_125136_904.png

ScreenShot_2026-04-23_125836_424.png

ScreenShot_2026-04-23_131004_257.png