首页/开发/软件测试速查/日期与时间边界
用例设计方法62 条

日期与时间边界

日期时间边界密集:月末月初、年末年初、闰年 2 月 29 日、时区切换与跨天统计口径。

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

日期与时间边界是什么

日期时间边界密集:月末月初、年末年初、闰年 2 月 29 日、时区切换与跨天统计口径。时间类缺陷隐蔽性极强:平时不出现,跨日、跨年或时区切换时才爆发;把固定边界清单加入回归集,是成本最低的防御手段。

基本信息

固定清单月末、月初、年末、年初、闰年 2 月 29 日
闰年规则2024 是闰年;2100 不是;2000 是(百年只有被 400 整除才闰)
时区UTC 与东八区对同一时刻的归日可能不同
统计口径按用户本地时间还是 UTC 归日,需要业务先确认
特殊时刻23:59 与 00:00、涉及夏令时地区的切换日

取值清单

取值清单
# 月末与月初
1 月 31 日、2 月 28 或 29 日、3 月 1 日
# 闰年边界
2024-02-29、2100-02-28(2100 非闰年)
# 跨年与跨天
12-31 23:59 与 01-01 00:00
# 时区
同一时刻 UTC 与东八区归日不同

典型使用场景

  • 统计报表:跨天、跨月对账,验证归日口径一致。
  • 定时任务:月末与年末触发时间的正确性。
  • 有效期与过期:优惠券、令牌在边界时刻的行为。
  • 倒计时与日历:闰年与月末的天数计算。
  • 跨时区用户:同一时刻在不同时区看到的日期。
  • 回归固化:把闰年与月末用例加入固定回归集。

边界类型速览

边界取值典型缺陷
月末1 月 31 日、2 月 28 或 29 日跨月计算差一天
闰年2 月 29 日年度统计少一天或多一天
跨年12-31 与 01-01序号与账期断裂
时区UTC 与东八区归日不同、对账不平
统计类功能要明确口径:按用户本地时间还是 UTC 归日,测试需覆盖跨时区用户场景。
可注入时钟是首选:把「现在」固定住,断言才稳定;直接改机器时间会影响并行用例。
链路各层都可能做时间转换(数据库、应用、前端),按系统约定在端点用 UTC、显示层再转是常见做法,测试逐层核对。

易错点

  • 用固定日期做用例而忽略闰年与月末边界(闰年为必测)
  • 跨时区统计不测差异,报表在海外用户侧数字不符
  • 测试依赖运行机器的当前时区设置,CI 与本地结果不同
  • 涉及夏令时的地区按 24 小时假设做时间算术,任务实际提前或推迟
  • 日期字符串与时间戳混用比较,边界处相差一天

数据来源与参考

  • ISO 8601(日期时间表示标准)
  • IANA 时区数据库(公开资料)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌