首页/开发/软件测试速查/数值类型边界(溢出与精度)
用例设计方法62 条

数值类型边界(溢出与精度)

数值边界除业务范围外还涉及数据类型极限:int32/int64 溢出、浮点精度、负数与零、大数相加的进位。

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

数值边界是什么

数值边界测试在业务范围之外还要覆盖数据类型自身的极限:int32 到 2147483647 就溢出,int64 上限是 9223372036854775807,浮点无法精确表示多数十进制小数。业务上下限、类型极值与运算精度要分开列,三者出错方式不同:业务校验管不住类型溢出,类型校验也防不住精度误差。

基本信息

取值清单0、正负 1、业务上下限,两侧各取一档
类型极限int32:2147483647 / -2147483648;int64:9223372036854775807
浮点现象0.1 加 0.2 结果为 0.30000000000000004
断言方式边界附近用容差比较,避免等号断言
平台提醒Java、C 系语言会溢出;Python 整数不溢出,但跨语言或落库仍可能被截断

典型取值

典型取值
# 业务上下限两侧各取一档
-1、0、下限、上限、上限加一
# 类型极限(Java/C 系先溢出)
int32: 2147483647、-2147483648
int64: 9223372036854775807
# 浮点精度(0.1 加 0.2 现象)
0.30000000000000004 不等于 0.3

典型使用场景

  • 金额与计费:验证分币、折扣相乘后的舍入规则。
  • 跨语言对接:Java、C 与 Python 传输同一字段,验证极值不截断。
  • 计数器与序号:批量操作后主键、总数字段临近上限的行为。
  • 导入导出:Excel 与 CSV 中大数不被转成科学计数。
  • 查询边界:筛选条件取上下限时记录不遗漏、不重复。
  • 对账场景:累加大量小数后总额与明细对平。

三个层次分开测

层次关注点典型缺陷
业务范围上下限与超界校验超界数据被静默截断
类型极限溢出与最小值取负int32 溢出变负数,金额符号翻转
运算精度舍入与进位累加结果差一分钱,报表对不平
金额类计算不要用二进制浮点:用最小货币单位整数或十进制类型(Java BigDecimal、Python Decimal),测试用 0.01、0.005 验证舍入是否符合业务约定。
把边界取值固化成用例表:每条边界一行,注明来源(业务规则或类型极限)与预期结果,评审与回归都按表执行。
浮点比较不要用等号:边界附近用容差(如绝对误差小于 1e-9),否则精度误差会造成偶发失败。

易错点

  • 只按业务范围测而不测类型极限,跨语言对接时溢出
  • 浮点比较用等号断言,精度误差导致偶发失败
  • 边界只取上下限本身,漏掉下限减一与上限加一
  • 大数字段经 Excel 中转后精度丢失,导入侧未做校验
  • 断言只看接口返回,不校验落库后的真实数值

数据来源与参考

  • IEEE 754 浮点标准(公开资料)
  • 各语言数值类型文档(如 Python int 为任意精度)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌