前置知识: 软件测试

边界值分析

4 minIntermediate2026/6/14

边界值分析方法:边界条件识别、测试值选取、健壮性测试与实战应用详解。

1. 边界值分析原理

1.1 基本概念

边界值分析是基于”缺陷往往出现在输入边界”的经验,重点测试边界条件及其附近值。

1.2 为什么测试边界

大量缺陷发生在边界条件上:

  • 程序员使用 < 而非 <=
  • 数组索引从 0 还是 1 开始
  • 循环条件 off-by-one 错误

1.3 与等价划分的关系

边界值分析是等价划分的补充,在等价边界处选取测试值。

2. 边界值选取

2.1 基本边界值

对于范围 [a,b][a, b]

描述
a1a - 1刚好小于下界
aa下界
a+1a + 1刚好大于下界
正常值范围内任意值
b1b - 1刚好小于上界
bb上界
b+1b + 1刚好大于上界

2.2 示例:年龄 1-120

预期结果
0无效(小于下界)错误
1边界(下界)有效
2边界(下界+1)有效
60正常值有效
119边界(上界-1)有效
120边界(上界)有效
121无效(大于上界)错误

2.3 健壮性边界值

在基本边界值基础上增加越界值:

描述
a2a - 2远小于下界
a1a - 1刚小于下界
aa下界
a+1a + 1下界内侧
b1b - 1上界内侧
bb上界
b+1b + 1刚大于上界
b+2b + 2远大于上界

3. 边界值

3.1 数值边界

场景边界值
范围 [0, 100]-1, 0, 1, 99, 100, 101
整数范围INT_MIN, INT_MIN+1, INT_MAX-1, INT_MAX
浮点数0.0, 最小正值, 最大正值

3.2 字符串边界

场景边界值
长度 1-50"", “a”, “ab”, 49字符, 50字符, 51字符
空字符串""
仅空格” “

3.3 集合边界

场景边界值
列表索引0, 1, n-2, n-1
空列表[]
单元素[1]

3.4 时间边界

场景边界值
日期1月1日, 12月31日, 2月28/29日
时间00:00:00, 23:59:59
时区UTC-12, UTC+14

4. 边界值分析实例

4.1 实例1:密码强度

需求:密码长度 8-32,必须包含大小写字母和数字。

边界长度是否满足预期
7 字符7拒绝
8 字符8接受
9 字符9接受
31 字符31接受
32 字符32接受
33 字符33拒绝

4.2 实例2:文件上传

需求:文件大小 1KB-10MB,仅允许 jpg/png。

边界大小预期
0 KB拒绝
1 KB下界接受
10 MB上界接受
10MB+1KB超上界拒绝
.gif非法拒绝
.jpg合法接受

4.3 实例3:分页查询

需求:每页 10-100 条,页码 ≥ 1。

参数边界值预期
page=0无效错误
page=1有效第一页
page=2有效第二页
size=9无效错误
size=10有效10条
size=100有效100条
size=101无效错误

5. 内部边界

5.1 数据结构边界

场景边界
数组空数组、单元素、满容量
空栈、满栈、单元素
队列空队列、满队列
哈希表空表、冲突、扩容阈值

5.2 状态边界

场景边界
状态机初始状态、最终状态
计数器0、最大值、溢出
超时刚好超时、刚好未超时

6. 边界值分析最佳实践

实践描述
识别所有边界显式+隐式边界
测试两侧边界内外都测
特殊值0、空、null、负数
数据型边界INT_MAX、浮点精度
业务边界折扣阈值、等级分界
与等价结合先划分再取边界