首页/开发/软件测试速查/边界值分析(Boundary Value Analysis)
用例设计方法62 条

边界值分析(Boundary Value Analysis)

缺陷常出现在区间端点与临界点:取端点及其相邻值设计用例;边界值分析与等价类划分是互补的组合。

软件测试速查开发更新于 2026-10-13

边界值分析是什么

边界值分析基于一个经验事实:缺陷高度集中在区间端点与临界点——差一错误、大于与大于等于写反、舍入与截断误差都在边界附近暴露。方法是从每个边界的取值清单出发设计用例:端点本身、端点相邻的内部点、端点相邻的外部点各取一个。它与等价类划分互补:等价类收敛输入空间,边界值保证切分线上不藏错;两者组合是最常用的黑盒用例设计起点。工程上还要提前考虑边界数据的可测性:如果区间上限来自配置或数据库字段,测试环境应能便捷修改边界值本身,否则很多边界路径根本走不进去。

基本信息

方法类别黑盒用例设计,针对边界与临界点
取值清单端点、内邻、外邻各取一个,结合等价类合并
适用范围数值区间、集合规模、字符串长度、日期区间、时间窗口
记录方式用例标注每个值对应的边界含义
与等价类关系先划分等价类,再单独补边界与邻点

典型使用场景

  • 分页参数:page 为 0、1 与最后一页的翻页行为
  • 字符串长度限制:空串、1 个字符、长度上限与超限
  • 集合规模:空集合、单元素、满额集合下的处理逻辑
  • 日期区间:起始日与截止日当天、前一天、后一天
  • 金额与数量:最小值减一、最小值、最大值、最大值加一
  • 输出边界:返回条数上限、金额舍入规则、分页总数的表现
  • 重试与超时:重试次数上限的最后一跳行为

示例:购买数量 1 到 99

示例:购买数量 1 到 99
# 规则:购买数量 1 ≤ qty ≤ 99
# 下界外 0:应拒绝,探测下侧差一缺陷
# 下界 1:最小值应接受
# 下界内邻 2:区分 > 与 >= 的实现口径
# 上界内邻 98:确认上界比较方向
# 上界 99:最大值应接受
# 上界外 100:应拒绝,探测上侧差一缺陷

常见边界类型

数据类型下边界示例上边界示例
数值范围最小允许值最大允许值
集合空集合额度满的集合
字符串空串长度上限
日期区间起始日区间截止日
时间窗口窗口起点时刻窗口终点时刻
ISTQB 口径的 3 值边界测试取:边界本身、边界内侧相邻值、边界外侧相邻值;只取边界本身的 2 值做法无法区分大于与大于等于之类的实现错误。
连续量(时间、浮点金额)的边界要加精度考量:断言浮点结果应使用误差容限(如绝对误差小于一分钱)而不是精确相等;若业务口径是四舍五入到分,先把舍入规则写成用例再谈实现。
边界不止一条:多参数系统里两个边界同时取极值的组合是缺陷高发区,必要时用正交或配对方法补充组合用例(见 pairwise-testing 条目)。
边界用例最好以数据驱动方式维护:把「边界值、边界含义、预期结果」整理成表格逐行执行,新增边界只是加一行,而不是复制一段测试代码。
组合边界的典型例子:连续失败三次锁定账户,其边界是第三次尝试——需要验证第 2 次失败后仍可重试、第 3 次失败立即锁定、锁定状态下正确凭证也按规则拒绝。

易错点

  • 只测边界值不测相邻内部点:区分大于与大于等于的错误需要内邻值
  • 把整数边界套用到连续量上,忽略精度与舍入行为
  • 只做输入边界不做输出边界:返回数量上限与舍入规则长期无人验证
  • 两个参数的边界从不同时取极值,组合型缺陷长期漏检
  • 边界用例不写清对应规则,失败时看不出是哪一个边界被破坏
  • 边界值与等价类代表值混在一张表里不复核:用例数看着很多,边界清单却缺项

数据来源与参考

  • ISTQB CTFL 4.0 大纲(边界值分析)
  • Myers《The Art of Software Testing》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌