特殊值分析是什么
特殊值分析针对「边界之外仍然有代表性」的输入设计用例:空值、零、负数、最大值、刚好越界、超长字符串、特殊字符、Unicode、时区日期、浮点精度。它不是随机取边界,而是按数据类型与业务语义挑选最容易出错的钉子户值,用最少用例覆盖最高风险的输入域。
基本信息
| 数值类 | 0、负一、正负最大值、越界一档、小数精度场景 |
|---|---|
| 字符串类 | 空串、纯空格、超长、元字符(引号/斜杠/尖括号)、emoji |
| 时间类 | 月初月末、闰年 2 月 29 日、时区边界、跨年跨日 |
| 集合类 | 空列表、单元素、重复元素、超大批量 |
| 组合 | 两个特殊值叠加最具杀伤力:空值加边界、超长加元字符 |
| 来源 | 接口类型约束、领域规则、历史缺陷库 |
取值清单示意
取值清单示意
数值:0 / -1 / 2147483647 / 上限加一档 / 0.1 类小数精度场景
字符串:空串 / 空格 / 超长 / 引号与尖括号 / emoji
时间:闰年 2 月 29 日 / 23:59:59 / 夏令时切换日 / 跨年边界
集合:空列表 / 一个元素 / 重复元素 / 批量上限加一档典型使用场景
- 新接口字段校验:按类型给每个字段过一遍特殊值
- 金额与数量计算:负数、精度、溢出三个方向都要测
- 导入导出:空文件、超大文件、特殊字符路径
- 日期功能:闰日、时区、跨天边界
- 安全类输入过滤:元字符在可控环境验证转义与拦截
类型与关注点
| 类型 | 特殊值 | 预期关注 |
|---|---|---|
| 数值 | 0、-1、最大、越界一档 | 校验提示与计算正确性 |
| 字符串 | 空、超长、元字符 | 截断策略与转义 |
| 时间 | 闰日、时区边界 | 计算与展示一致性 |
| 集合 | 空、单元素、超批量 | 分页与性能表现 |
特殊值的预期行为以需求为准:不是所有字段都该接受负数或 emoji,先对表再设计断言。
元字符输入在可控环境验证:别对生产库直接打注入串,用校验与转义结果做断言。
浮点比较用容差:0.1 加 0.2 不等于 0.3,断言写绝对相等会把正确实现判成失败。