软件测试范围界定不是把所有功能都点一遍,而是根据风险、作用、合规和成本做裁剪:该测的必须包括风险,不该测的要写明理由并接受风险,测到什么程度由出口标准决定。
一、什么该测?
判断标准:错了会不会造成不可接受的业务、资金、安全、合规或用户体验损失?如果会,就该测。
优先纳入范围的内容包括:
业务途径:注册登录、下单支付、退款、审批、数据同步等端到端主流程。
高风险或复杂思路:金额计算、库存扣减、状态机、并发、幂等、权限、算法。
变更影响范围:新功能、修改模块、依赖接口、公共组件、回归热点。
接口和集成:API、消息队列、数据库、缓存、第三方服务、回调、对账。
异常和边界:空值、极值、超时、重复提交、失败重试、回滚、断网、降级。
非功能质量:性能、安全、兼容性、可靠性、可恢复性、可观测性、可访问性。
合规和合同要求:隐私、审计、行业规范、SLA、验收标准。
数据相关:迁移、清洗、一致性、隐私脱敏、备份恢复。
用户场景:跨角色、跨设备、跨地域、弱网、低配环境。
二、什么不该测或可暂不测?
不测不等于忽略而是排除并记录理由,用其他手段控制风险。
常见可排除项:
确定不在本期范围、已废弃、未来需求。
第三方内部实现,如支付页面内部 UI、云服务内部思路;但接口契约、回调、超时、对账仍要测。
编程语言、框架、操作系统、标准库内部实现,除非项目修改了它们。
低风险且测试成本很高、无业务影响的场景。
不可观测、不可控的真实环境,如银行重要内部处理。
无确定验收标准的主观偏好,如看起来更舒服。
重复包括:底层单元已充分包括,上层只做少量集成证实。
非目的平台、设备或浏览器。
排除时必须写清:不测什么、为什么、风险谁接受、替代措施是什么。替代措施可以是监控、灰度、供应商 SLA、静态检查、代码评审。
三、测到什么程度?
按风险分级决定深度。
高风险:全面功能测试、异常测试、非功能测试、回归测试、安全测试。需求尽量全包括,分支和边界要包括。出口一般是严重缺陷为零,性能和安全达标。
中风险:功能、主要异常、接口测试、回归测试。主要需求包括,重点接口包括。出口一般是高优先级缺陷关闭,回归通过。
低风险:冒烟测试、自动化测试、监控。主流程通过即可。出口一般是无阻塞问题,风险可接受。
包括不是越高越好。代码包括率是参考,不是KPI。应注意需求包括、场景包括、接口包括、数据边界包括、环境包括。
出口标准一般包括:
P0 和 P1 用例全部通过。
严重和高危缺陷清零,剩余缺陷有确定处理计划。
非功能标准达标。
回归范围通过。
需求变更已考虑。
剩余风险被业务、产品或合规方接受。
停止测试的条件:达到出口标准;继续测试的边际收益低于成本;剩余风险可接受;时间或预算约束下完成风险裁剪并签字确定。
四、范围界定流程
收集输入:需求、设计、合同、法规、历史缺陷、变更记录。
识别测试项:功能、接口、数据、非功能、用户场景。
风险考虑:发生概率、影响、可检测性。
定优先级:P0 必测,P1 应测,P2 可裁剪,P3 不测并记录。
确定范围矩阵:测什么、不测什么、测多深、在什么环境、用什么数据。
评审并基线化:产品、开发、测试、运维、合规共同确定。
动态调整:需求变更、缺陷趋势、线上反馈后更新范围。
一句话该测的是可能造成不可接受损失的变更和场景;不该测的是低风险、高成本、无验收标准且可替代控制的内容;测到什么程度是把风险降到可接受并满足出口标准,不追求100%包括。