测试策略是对“测什么、测到什么程度、在什么阶段用什么方式测、由谁负责、依据什么判断通过”的整体安排。它处在测试管理的方法层,向下约束测试计划和测试方案,向上承接产品目标与质量要求。本文说明测试策略的定义、内容边界、组成要素,并用一个中型版本迭代的例子展示策略如何落到取舍上;具体用例编写、自动化脚本和攻击技术不在本文范围内。
要点总览(TL;DR)
- 测试策略是对测什么、测到什么程度、在什么阶段用什么方式测、由谁负责、依据什么判断通过的整体安排,处在测试计划之上。
- 策略层的内容包括范围与优先级、测试类型与阶段组合、准入退出标准、环境数据原则、缺陷分级与风险应对、角色分工;具体用例、脚本和攻击技术属于执行层。
- 测试策略定原则与取舍,测试计划定时间与资源,测试方案定某个版本的具体执行设计,三者粒度依次变细。
- 策略文档随产品方向和质量目标变化修订,把用例清单或排期写进策略会让文档失去稳定性。
- 判断一份文档属于哪一层,看它是否在做取舍和定原则:做取舍的是策略,排资源的是计划,写具体测试设计的是方案。
测试策略的直接定义
测试策略可以这样表述:测试策略是针对特定产品或项目,对测试范围与优先级、测试类型与阶段的组合、进入与退出标准、环境与数据要求、缺陷处理与风险应对原则所做的整体安排,用来指导后续测试计划和测试方案的编制。
这个定义包含五类核心问题,回答清楚它们,策略才算成立:
- 范围:本轮测试覆盖哪些功能、模块、接口和非功能特性,哪些明确不测。
- 程度:每类对象测到什么深度,是主流程验证、边界与异常覆盖,还是包含性能、安全等专项验证。
- 方式:采用哪些测试类型,在哪些阶段执行,手工与自动化如何分工。
- 责任:谁制定策略、谁执行、谁判定结果、缺陷由谁确认关闭。
- 判定:依据什么标准判断测试可以开始、可以结束、版本可以发布。
在层级关系上,测试策略位于测试计划之上。策略回答“按什么原则测”,计划回答“什么时候、用多少人、做哪些任务”。策略相对稳定,计划随迭代节奏调整。策略缺失时,计划容易变成任务堆叠,范围与取舍缺少依据。
测试策略包括什么、不包括什么
判断一份文档是否属于策略层,可以看它是否在做取舍和定原则。策略层的内容会约束后续执行,执行层的内容则是在策略之下展开的具体安排。
| 类别 | 内容 | 判断依据 |
|---|---|---|
| 属于策略 | 测试范围与优先级划分 | 决定资源投向哪些对象 |
| 属于策略 | 测试类型与阶段的组合 | 决定单元、集成、系统、验收等环节如何取舍 |
| 属于策略 | 准入与退出标准 | 决定测试何时开始、何时结束 |
| 属于策略 | 环境、数据与工具的原则性要求 | 决定需要什么样的测试条件 |
| 属于策略 | 缺陷分级与风险应对原则 | 决定问题如何定级、如何处置 |
| 不属于策略 | 具体测试用例与自动化脚本 | 属于用例设计与执行层 |
| 不属于策略 | 攻击技术与源码分析 | 属于安全测试的专项执行方法 |
| 不属于策略 | 单份需求文档的质量评审 | 属于需求评审与确认的范畴 |
策略、测试方案、测试用例集三者粒度依次变细。策略给出原则和取舍;测试方案针对某个项目或版本,把策略转化为具体的测试设计、环境搭建和进度安排;测试用例集则是可执行的最小验证单元。把用例清单写进策略文档,会让策略失去稳定性,每次需求变化都要改策略,反而没人维护。
测试策略由哪些部分组成
一份完整的测试策略通常由六个部分组成,各部分之间存在约束关系,不能孤立填写。
测试范围与优先级
写清本轮覆盖的对象清单,并说明优先级划分依据。常见依据包括业务影响面、变更范围、历史缺陷密度、用户使用频率和合规要求。范围部分要同时写明明确不测的内容及原因,避免后续对“为什么没测”产生争议。
测试类型与阶段的组合
说明单元测试、集成测试、系统测试、验收测试各自承担什么验证目标,哪些环节必须执行,哪些按变更情况裁剪。组合方式受范围和优先级约束:核心交易链路通常要求单元与集成覆盖加系统回归,展示型页面可以只做系统验证。非功能测试如性能、兼容性、安全,需要写明触发条件,例如大促前或架构变更时执行。
准入与退出标准
准入标准规定测试启动的前提,例如需求与设计评审完成、开发自测通过、提测版本可部署、测试环境就绪。退出标准规定测试结束的条件,例如用例执行率达到约定比例、遗留缺陷等级与数量在可接受范围内、回归通过。标准要可核验,避免写成“质量达标”这类无法判断的表述。
环境、数据与工具的原则性要求
说明需要哪些测试环境、环境与生产环境的差异如何控制、测试数据如何准备与脱敏、工具链如何衔接需求、用例与缺陷。这一部分只定原则,具体搭建步骤放在测试方案中。
缺陷分级与风险应对原则
定义缺陷等级及对应的处理时限和升级路径,说明阻塞性问题的处置方式,以及高风险模块的加测、回滚和灰度策略。风险应对要指向具体动作,例如核心链路缺陷未关闭时不进入发布评审。
角色与职责分工
明确策略的制定者与审批者、各类测试的执行者、缺陷的确认与关闭责任人、发布判定的决策人。职责分工与准入退出标准配合使用,标准才有执行主体。
测试策略与测试计划、测试方案的区别
三个概念常被混用,主要差别在关注点、粒度和变更频率。策略定原则,计划定资源与时间,方案定具体执行设计。
| 维度 | 测试策略 | 测试计划 | 测试方案 |
|---|---|---|---|
| 关注点 | 测什么、测到什么程度、按什么原则判定 | 何时测、由谁测、需要多少资源 | 某个项目或版本具体怎么测 |
| 粒度 | 粗,覆盖产品线或项目整体 | 中,按迭代或版本编排任务 | 细,落到测试设计、环境与数据准备 |
| 变更频率 | 低,产品方向或质量目标变化时修订 | 较高,随迭代节奏调整 | 高,每个版本都可能重新编制 |
| 责任人 | 测试负责人主导,与产品、研发共同确认 | 测试负责人或项目经理 | 具体测试设计人员或模块负责人 |
三者的承接关系是:策略给出范围和判定原则,计划据此安排时间、人力和任务,方案再把计划中的任务展开为可执行的测试设计。策略变更会带动计划和方案调整;方案层面的调整通常不需要回改策略。
策略中的范围、准入退出标准和缺陷处理原则需要在实际协作中承载。以ONES为例,测试用例可与需求、任务关联,测试计划可与迭代关联,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,测试报告可自动生成并汇总项目缺陷分布。这些能力让策略确定的范围与判定标准有对应的记录和流转位置;策略文档本身仍需团队自行编写和维护。
一个具体例子:中型版本迭代的测试策略
以下为演示情景,用于说明策略如何落到取舍上,不作为真实案例引用。
背景与约束:某业务系统进行一次中型版本迭代,涉及订单结算流程改造、两个后台管理页面调整和一个报表导出功能。迭代周期四周,测试人力三人,其中一人同时负责另一个项目的维护。结算流程涉及资金,历史上缺陷较多;后台页面变更以展示和字段调整为主。
范围与优先级:结算流程列为最高优先级,要求单元测试与集成测试覆盖主要分支,系统测试覆盖正常流程、边界金额和异常回退;后台页面列为中优先级,执行主流程与关键字段校验;报表导出列为低优先级,验证导出成功与数据字段正确,大数据量场景按时间允许情况执行。本次不覆盖结算流程的跨境支付分支,原因是该分支本期未改动,列入下期回归。
类型与阶段组合:开发阶段要求结算模块提交单元测试结果;提测后执行集成测试,验证结算与订单、账户服务的交互;系统测试阶段执行功能回归和一轮接口异常场景;验收阶段由产品与业务方按核心场景验收。性能测试仅在结算流程接口响应时间超过约定阈值时触发。
准入与退出:准入条件为需求与设计评审完成、开发自测通过、提测版本可部署、测试环境与测试数据就绪。退出条件为核心用例全部执行通过、结算流程无未关闭的高等级缺陷、遗留中低等级缺陷有明确处理计划并经确认、回归测试通过。
风险应对:结算流程出现阻塞性缺陷时,暂停该模块后续测试并升级至开发负责人;发布前若高等级缺陷未关闭,不进入发布评审;上线采用灰度发布,先对小流量开放并观察关键指标。
这个例子体现的是取舍:人力有限时,把深度测试投向资金相关链路,对低风险页面做适度验证,并明确写出不测范围。策略的稳定性来自原则,而不是罗列每个用例。
常见误解
- 把策略写成用例清单:用例属于执行层,写进策略会让文档随需求频繁变动,失去指导作用。
- 把策略等同于计划排期:排期回答时间和人力,策略回答范围和判定原则,两者混在一起会导致标准随进度妥协。
- 策略一次写定不再更新:产品方向、架构或质量目标变化时,范围和退出标准需要同步修订,否则策略与实际脱节。
判断手上的文档属于哪一层,可以看它是否在做取舍和定原则:做取舍的是策略,排资源的是计划,写具体测试设计的是方案。
常见问题
测试策略需要多久修订一次,什么情况下必须改?
策略没有固定的修订周期,触发修订的通常是条件变化:产品方向或质量目标调整、系统架构发生较大变化、合规或行业标准提出新要求、线上出现暴露策略盲区的问题。这些情况下,范围划分、测试类型组合和退出标准都可能需要同步调整。
日常迭代中需求增减、排期变化,一般只调整测试计划和测试方案,不必回改策略。可以约定每次大版本规划时复核一次策略,确认范围和判定标准是否仍与当前业务匹配。
团队规模小、只有一两个人做测试,还需要单独写测试策略吗?
需要,但形式可以简化。策略的核心是范围和取舍,小团队同样要回答哪些模块重点测、哪些按变更情况裁剪、什么条件下允许发布。这些判断即使不写成正式文档,也会在实际工作中发生,写下来能减少口头约定带来的分歧。
小团队可以把策略压缩成一两页,重点写清优先级依据、准入退出条件和风险处置方式,测试计划和方案则合并到迭代任务中。随着团队和系统复杂度上升,再逐步细化。
策略里的准入退出标准怎么写才可核验?
可核验的标准指向可以观察和计数的事实。例如准入写成“需求与设计评审完成、开发自测通过、提测版本可部署、测试环境与测试数据就绪”,退出写成“核心用例全部执行通过、高等级缺陷无未关闭项、遗留缺陷有明确处理计划并经确认”。
“质量达标”“测试充分”这类表述无法判断是否满足,应替换为具体的执行比例、缺陷等级和确认动作。标准还要写明由谁判定,否则容易出现测试认为未达标、业务方认为可以发布的分歧。
策略中写明的“本次不测范围”,后续引发争议怎么处理?
不测范围要连同原因一起写,例如“该分支本期未改动,列入下期回归”“该场景使用频率极低,本期以监控告警覆盖”。原因写清楚,争议就从“为什么没测”转为“这个判断是否仍成立”,讨论有据可依。
如果业务方认为某项必须纳入,应回到范围和优先级层面重新评估资源,而不是在执行阶段临时加测。策略变更后同步更新计划和方案,避免文档之间不一致。
测试策略确定后,怎么让范围和判定标准在协作中真正被执行?
策略落地需要承载位置:范围对应到具体的需求、任务和用例,准入退出标准对应到测试计划的执行状态和缺陷处理记录,缺陷分级对应到缺陷任务的字段和流转规则。这些信息如果只存在于文档里,执行时容易脱节。
以 ONES 为例,测试用例可与需求、任务关联,测试计划可与迭代关联,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,测试报告可自动生成并汇总项目缺陷分布。策略文档本身仍需团队编写和维护,工具承担的是让范围和判定标准有对应的记录与流转位置。
