边界测试 checklist

系统化、可直接落地的《边界测试 Checklist》,覆盖 数值、字符串、时间、集合、状态、文件、网络、权限 等八大核心维度,适用于 Web、App、API、后端服务等各类软件系统。

使用建议

  • 作为需求评审、用例设计、代码审查的强制检查项
  • 结合具体业务规则填充“示例”列
  • 高风险模块(如支付、账户)必须 100% 覆盖

软件测试《边界测试 Checklist》

一、数值类边界(Number)

检查项说明示例
最小值 - 1低于允许最小值金额 = -0.01(若要求 ≥0)
最小值边界下限年龄 = 0(若允许新生儿)
最小值 + 1略高于下限数量 = 1(若最小起订量=1)
正常值典型业务值订单金额 = 99.9
最大值 - 1略低于上限文件大小 = 9.99MB(若限制 10MB)
最大值边界上限积分 = 999999(若上限 100万)
最大值 + 1超出上限手机号位数 = 12(标准 11 位)
特殊值0、负数、小数、极大数余额 = 0;折扣 = -10%;数量 = 999999999

💡 注意:浮点数需考虑精度问题(如 0.1 + 0.2 ≠ 0.3)


二、字符串类边界(String)

检查项说明示例
空字符串""用户名留空提交
仅空白字符空格、Tab、换行密码 = " "
最小长度 - 1低于最小字符数昵称 = “A”(若要求 ≥2 字)
最小长度边界下限验证码 = “1234”(4 位)
最大长度 - 1略低于上限评论 = 199 字(限制 200 字)
最大长度边界上限商品标题 = 60 字符
最大长度 + 1超出上限邮箱 = 255+1 字符(RFC5321 限制 254)
特殊字符SQL/JS/XSS 注入风险输入 <script>alert(1)</script>
多语言字符中文、Emoji、生僻字昵称 = “张🎉䶮”

⚠️ 安全重点:所有用户输入必须做 XSS/SQLi 过滤验证


三、时间与日期边界(Time/Date)

检查项说明示例
过去时间早于当前时间预约时间 = 昨天 10:00
当前时间精确到秒/毫秒创建订单时间 = now()
未来时间合理范围 vs 超远未来预约 = 100 年后?
时区边界跨时区处理UTC+8 与 UTC-5 的订单时间对齐
闰年/闰秒2月29日、夏令时2024-02-29 是否有效?
时间格式非法非标准格式输入 “2025/13/01”
时间戳溢出32 位系统 2038 问题Unix 时间戳 > 2147483647

四、集合与列表边界(Collection)

检查项说明示例
空集合无元素购物车商品列表为空
单元素最小非空收货地址仅 1 条
最大容量 - 1接近上限好友列表 = 4999(上限 5000)
最大容量边界上限微信群人数 = 500
最大容量 + 1超出限制上传 11 个文件(限制 10 个)
重复元素是否允许重复同一商品加入购物车多次
排序边界首/末条记录分页第一页最后一条 vs 第二页第一条

五、状态与流程边界(State/Workflow)

检查项说明示例
非法状态跳转跳过中间状态订单从“待支付”直接变“已完成”
重复操作多次点击同一按钮连续点击“支付”生成多个订单?
并发状态冲突多人同时操作A/B 同时审批同一申请
超时状态未在时限内操作验证码 5 分钟后失效
状态回滚撤销/取消逻辑取消订单后库存是否释放?

📌 关键:绘制状态机图,验证所有转移路径


六、文件与资源边界(File/Resource)

检查项说明示例
空文件0 字节文件上传空 .txt
超小文件1 字节1B 图片
最大允许大小系统限制上传 100MB 视频(限制 100MB)
超大文件超出限制上传 101MB 文件
非法格式非白名单类型上传 .exe 冒充 .jpg
损坏文件内容不完整ZIP 解压失败
资源耗尽磁盘满、内存溢出连续上传至磁盘空间不足

七、网络与外部依赖边界(Network/External)

检查项说明示例
网络中断请求中突然断网支付时拔网线
超时响应第三方服务慢银行接口 30s 无返回
错误响应码4xx/5xx 返回调用短信服务返回 500
数据格式异常JSON/XML 不合法第三方返回 { "code": }(缺值)
限流/熔断被拒绝访问短信接口返回 “Too Many Requests”

💡 工具建议:使用 Chaos Engineering 工具(如 Chaos Mesh)模拟


八、权限与安全边界(Permission/Security)

检查项说明示例
未登录访问匿名用户尝试敏感操作未登录查看他人订单
越权操作普通用户访问管理员接口user_id=123 → 尝试修改 user_id=124 数据
角色切换边界权限变更后缓存失效管理员降级后仍能删数据?
敏感操作无二次验证高危操作缺确认直接删除账户无密码验证

附:边界测试执行建议

✅ 优先级排序

风险等级覆盖要求
P0(资金/账户/安全)必须覆盖全部边界
P1(核心业务流程)覆盖数值、状态、集合边界
P2(普通功能)覆盖最小/最大值 + 空值

✅ 自动化策略

  • API 层:用 Postman / Pytest 参数化批量跑边界值
  • UI 层:对高频输入框(如金额、数量)做自动化边界测试
  • 数据层:直接写 SQL 验证数据库约束(如 CHECK、UNIQUE)

✅ 工具推荐

  • 等价类 & 边界值生成Boundary Value Analyzer
  • 模糊测试:OWASP ZAP(Web)、AFL(二进制)
  • 状态测试:GraphWalker(基于模型的测试)

结语:边界之外,皆是漏洞

80% 的严重缺陷,藏在边界条件里。
这份 Checklist 不是文档,而是质量防线

每次需求评审,问一句:

“这个字段的最小值、最大值、非法值,我们都测了吗?”

——守住边界,就是守住系统的底线。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值