用例设计方法62 条

特殊值分析

对空白、null、默认值、零值、极值与特殊字符等输入单独设计用例:它们常触发未处理分支与显示异常。

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

特殊值分析是什么

特殊值分析针对「边界之外仍然有代表性」的输入设计用例:空值、零、负数、最大值、刚好越界、超长字符串、特殊字符、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,断言写绝对相等会把正确实现判成失败。

易错点

  • 只测典型值:边界与特殊值留到线上被用户撞见
  • 特殊值只测单值不测组合:空值加边界、超长加元字符这类组合才是重灾区
  • 时间用例依赖本机时区:换台机器就挂,固定时区与时间源再测
  • 浮点断言用绝对相等:实现正确却常红,改用容差比较

数据来源与参考

  • OWASP WSTG(输入校验测试相关章节)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌