测试策略制定和测试计划编制不是一回事。测试策略回答“测什么、为什么测、按什么原则取舍风险”,产出是相对稳定的测试策略;测试计划回答“谁在什么时间、用什么资源、按什么步骤把策略落地”,产出是可执行、随迭代更新的安排。两者上下承接,策略定方向,计划定排期与分工。本文按这两个层次拆解各自的核心活动,并用一个版本迭代的例子说明它们如何配合;文中也会提到 ONES 在策略文档与计划文档承载上的适用位置。
要点总览(TL;DR)
- 测试策略制定和测试计划编制不是一回事:策略回答“测什么、为什么测、按什么原则取舍风险”,计划回答“谁在什么时间、用什么资源、按什么步骤落地”。
- 测试策略的核心活动包括划定测试范围与不测范围、选择测试类型与层次、识别并排序风险、确定准入准出原则、对环境数据工具做原则性约定,以及组织评审确认。
- 测试计划把策略细化为任务分解、排期、人员分工、环境与数据准备、里程碑和变更处理,计划中的测试类型与准出条件应能追溯到策略条目。
- 策略相对稳定、颗粒度偏方向性;计划随迭代滚动更新、具体到任务和人。执行中的偏差先回流到计划,偏差足够大时再触发策略修订。
- 写了计划不等于定了策略,策略文档写完也不等于一劳永逸;小项目可以简化策略篇幅,但“测什么、不测什么、什么算通过”的判断仍需存在。
一句话结论:策略定方向,计划定安排
把两者放在同一个项目里看,测试策略制定解决的是方向性问题:本次或本阶段测试覆盖哪些范围、哪些范围明确不测、重点验证哪些质量属性、风险如何排序和取舍、达到什么条件才算通过。测试计划编制解决的是安排性问题:在上述方向下,拆出哪些任务、由谁负责、什么时候开始和结束、需要哪些环境和数据、交付哪些产物。
可以用一句话区分:策略是“为什么这样测”的判断依据,计划是“按这个依据怎么排”的执行安排。策略相对稳定,通常在项目或产品阶段层面确定,版本迭代中只在范围或风险发生实质变化时调整;计划颗粒度更细,跟随每个迭代滚动编制和修订。
两者是上下承接关系,不能互相替代。只有策略没有计划,方向清楚但没人知道什么时候做、谁来做;只有计划没有策略,排期看起来很满,却说不清为什么测这些、为什么可以不测那些,遇到资源压缩时也缺少取舍依据。
测试策略制定包括哪些核心活动
测试策略的产出是一组判断和原则,而不是一张时间表。它的核心活动围绕“范围、取舍、风险、标准”展开,通常包括以下内容:
- 划定测试范围与不测范围。明确本次测试覆盖哪些功能、模块、接口和业务场景,同时写明哪些内容不在本次范围内,以及不测的理由(例如依赖系统未就绪、风险已由其他手段覆盖)。不测范围写清楚,比只写测什么更能减少后续争议。
- 选择测试类型与测试层次。根据产品特征和风险,决定功能、性能、兼容性、安全、易用性等测试类型中哪些需要做、做到什么深度;决定单元、接口、系统、验收等层次如何分配验证责任。选择依据应来自业务重要性和失效后果,而非习惯性全选。
- 识别风险并排序。列出可能导致业务损失、用户投诉或上线失败的风险点,按发生可能性和影响程度排序,并把测试资源向高风险项倾斜。风险清单是策略中最能指导后续取舍的部分。
- 确定准入准出原则与质量门禁。约定什么条件下可以开始测试(如构建可部署、冒烟通过),什么条件下可以结束测试或允许发布(如遗留缺陷等级与数量限制、关键场景全部通过)。这些原则是后续判断“能不能发”的共同依据。
- 对环境、数据和工具做原则性约定。说明需要几套环境、环境之间如何隔离、测试数据从哪里来、敏感数据如何处理、自动化工具和缺陷管理工具的使用边界。这里定的是原则,具体搭建安排在计划中落实。
- 组织策略评审与确认。策略涉及范围取舍和资源投入,需要开发、产品、测试共同确认,避免测试单方面划定范围后无人认可。评审通过后形成可追溯的版本,作为后续计划的输入。
需要说明的是,策略的详略应与项目风险匹配。高风险、强监管或跨团队协作多的项目,策略需要写得更完整并正式评审;小型内部工具可以简化为一页纸的范围与风险说明,但“测什么、不测什么、什么算通过”这几个判断仍然需要存在。
测试计划编制包括哪些内容
测试计划是把策略转化为可执行安排的过程,产出应能直接指导团队每天的工作。一份可用的测试计划通常包含以下要素:
- 范围与目标的细化。把策略中的范围落到具体功能点、需求条目和版本内容上,明确本次计划对应哪个版本、哪些需求,目标用可核验的表述写清楚。
- 任务分解与排期。把测试工作拆成用例设计与评审、环境准备、执行、回归、报告等任务,估算工作量,排出起止时间和前后依赖。排期要与开发提测时间、上线窗口对齐。
- 人员分工与职责。明确每类任务的责任人、协作人和确认人,跨团队依赖时写清对接人。分工颗粒度以“出了问题能找到人”为准。
- 环境与数据准备安排。按策略中的原则,落实环境申请时间、搭建责任人和验证方式,准备测试数据并安排数据刷新,避免执行阶段因环境不可用而空转。
- 进度里程碑与交付物。设定提测、用例评审完成、测试执行完成、回归通过、测试报告输出等关键节点,并明确每个节点需要提交什么产物。
- 风险应对与变更处理。列出计划层面的风险(如提测延期、环境冲突、人员请假),给出应对方式和触发条件;约定需求变更时计划如何调整、由谁确认。
- 与策略的对应关系。计划中的测试类型、深度和准出条件应能追溯到策略条目。若计划中出现了策略未覆盖的内容,应回头补充策略;若计划因资源限制无法执行策略要求,应显式记录偏差并确认风险接受方。
策略、策略文档、计划、执行四者的区别
日常讨论中容易把这四个词混用。它们分别指向思路、载体、安排和动作,时间跨度与稳定性也不同。下表按同一口径对照:
| 概念 | 回答的问题 | 典型产物 | 时间跨度与稳定性 | 颗粒度 |
|---|---|---|---|---|
| 测试策略 | 测什么、为什么测、按什么原则取舍 | 范围与风险判断、测试类型选择、准出原则 | 项目或产品阶段层面,相对稳定 | 方向性,允许留白 |
| 策略文档 | 策略写在哪里、给谁看、如何评审和留版 | 策略文档及其评审记录、版本历史 | 随策略调整而更新版本 | 载体,本身不产生判断 |
| 测试计划 | 谁在什么时间、用什么资源、按什么步骤做 | 任务清单、排期表、分工表、里程碑 | 按迭代滚动,更新频繁 | 具体到任务和人 |
| 测试执行 | 实际做了什么、结果如何 | 用例执行记录、缺陷单、测试报告 | 按天或按轮次推进 | 具体到步骤和结果 |
四者的关系是先后衔接加反馈回流:先有策略判断,再有策略文档作为共识载体;计划依据策略编制;执行按计划推进并产生结果。执行中发现的偏差——例如某模块缺陷密度远高于预期、某类环境问题反复阻塞——应回流到计划调整排期和资源,偏差足够大时再回流到策略,修正风险排序或范围判断。策略文档写完不等于策略生效,只有被计划引用、被执行验证,策略才真正发挥作用。
一个具体例子:同一项目里的策略与计划
以下为演示情景,用于说明分工方式,不代表特定项目的真实数据。某团队准备发布一个涉及支付流程调整的版本迭代,同时包含若干界面文案修改。
策略层面的判断。支付流程涉及资金和用户信任,失效后果严重,因此确定为重点测试对象,功能测试之外增加异常场景和并发场景验证,并安排一轮回归覆盖历史支付路径;界面文案修改影响面小,采用抽查方式验证,不安排全量回归。兼容性方面,只覆盖近两个主流系统版本,旧版本依据用户占比数据明确不测并记录理由。准出原则定为:支付主路径全部通过,遗留缺陷中无高等级问题,异常场景验证结果经产品确认。这些判断形成策略文档,经开发、产品、测试共同评审后留存。
计划层面的安排。依据上述策略,计划中拆出用例设计与评审、支付异常场景环境准备、两轮功能执行、一轮回归、兼容性抽查、测试报告输出等任务;指定支付模块由两名测试人员负责,兼容性抽查由一人兼任;排期与开发提测时间对齐,预留两天回归窗口;环境方面提前一周申请独立的支付测试环境并准备脱敏数据;里程碑设为提测、用例评审完成、执行完成、回归通过四个节点。
执行阶段的偏差回流。执行第一轮时发现支付回调在弱网条件下失败率偏高,缺陷密度超出预期。团队据此调整计划:增加弱网场景的专项验证任务,从兼容性抽查中抽调人力支援,回归窗口顺延一天。由于该风险在策略中未被识别,团队同时补充策略文档中的风险清单,并在后续版本的策略中把弱网场景列为常规验证项。这个例子说明:计划可以快速调整,策略调整需要评审确认,两者通过偏差反馈保持同步。
常见误解与边界说明
围绕两者关系,有几种说法经常出现,需要逐一澄清:
- 误解一:写了计划就等于定了策略。计划中的任务列表看起来覆盖了很多内容,但它回答的是“做什么、谁来做”,并未说明为什么选这些、为什么可以不选那些。缺少策略依据的计划,在资源被压缩时无法判断该砍哪部分,也无法向相关方解释取舍理由。
- 误解二:策略文档写完就一劳永逸。策略相对稳定,但并非不变。业务模式调整、架构变化、线上事故暴露新风险、监管要求更新,都可能需要修订策略。合理的做法是设定触发条件,例如重大架构变更或高等级线上问题发生后重新评审策略,而不是按固定周期机械重写。
- 误解三:小项目不需要策略。小项目可以简化策略的篇幅和评审形式,但“测什么、不测什么、什么算通过”的判断依然存在,只是可能只写在几行文字或一次口头共识里。把判断显式写出来,能减少后续对“为什么这个没测”的反复解释。
本文的讨论边界限于概念界定与分工方式,不涉及具体测试脚本编写与自动化代码实现,不涉及攻击技术与源码分析;单份需求文档本身的质量评审属于需求评审与确认的范畴,不在本文展开。具体工具的产品能力、兼容版本、价格与认证信息,需以对应产品的官方说明为准。
策略与计划在协作工具中如何承载
策略与计划确定之后,需要落到团队日常协作的载体上,才能被引用、评审和追踪。这一层的管理动作包括:策略文档与计划文档的编写、评审与版本留存;测试任务和用例与计划排期的关联;任务状态流转与变更记录。
在 ONES 中,这类内容可以通过文档与工作项的组合来承载。策略文档和计划文档在文档模块中编写,评审意见和确认结论随文档留存,修订后形成新的版本记录,便于回溯某次范围取舍是在什么背景下做出的。计划中的测试任务可以建立为工作项,关联对应的需求、用例和负责人,排期字段直接体现时间安排;任务从待开始、进行中到完成的状态流转被记录下来,需求变更或排期调整时,变更痕迹保留在工作项上,执行阶段发现的偏差也能通过缺陷或任务回流到计划,必要时再触发策略文档的修订。
这种承载方式适合策略需要跨角色确认、计划需要与需求和用例保持对应关系的团队。若团队规模较小、协作集中在单一沟通渠道,也可以先用轻量文档记录策略要点,待协作复杂度上升后再引入工作项关联。工具承载的是管理动作的留痕与衔接,策略判断和计划取舍仍需由团队自己完成。
常见问题
测试策略和测试计划应该由谁编写、由谁确认?
通常由测试负责人或测试架构角色主导编写测试策略,因为它涉及范围取舍、风险排序和资源投入,需要开发、产品、测试共同评审确认,避免测试单方面划定范围后无人认可。测试计划一般由具体项目的测试负责人或测试组长编制,确认方包括项目经理、开发负责人和测试执行人员,重点确认排期、分工和依赖是否可行。
角色划分可以随团队规模调整:小团队里同一个人既写策略又编计划是常见做法,但建议把两份内容分开记录,评审时也分开确认,这样策略的取舍依据和计划的排期安排各有出处,后续追溯更清楚。
策略和计划发生冲突时,应该先改哪一个?
先判断冲突的性质。如果是资源、时间或人员安排上的冲突,例如提测延期导致回归窗口不够,属于计划层面的问题,优先调整计划中的排期、分工和任务优先级,并在计划中记录偏差及风险接受方。如果是范围、风险判断或准出标准上的冲突,例如执行中发现某类高风险场景策略里没有覆盖,则属于策略层面的问题,需要补充或修订策略,再据此调整计划。
一个实用的判断方法是看改动是否影响“为什么测这些、什么算通过”。影响这两点的改动走策略评审,只影响“谁在何时做”的改动走计划调整。
敏捷迭代节奏很快,还需要单独写测试策略吗?
需要保留策略判断,但形式可以简化。敏捷团队通常不需要每个迭代写一份完整策略文档,可以在产品阶段或季度层面确定一份相对稳定的策略,写清测试范围、风险排序、测试类型选择和准出原则;每个迭代的计划直接引用这份策略,只对本次迭代的范围和风险做增量说明。
当出现重大架构变更、高等级线上问题或监管要求更新时,再触发策略的重新评审。这样既保持迭代速度,又让计划中的取舍有据可依,资源被压缩时也能说清该砍哪部分。
测试计划中的准出条件应该照搬策略里的原则吗?
计划中的准出条件应当能追溯到策略原则,但可以结合本次版本的具体情况细化。例如策略规定“遗留缺陷中无高等级问题”,计划中可以进一步写明高等级缺陷的判定口径、由谁确认、确认时间点。若因资源或时间限制无法满足策略要求,应在计划中显式记录偏差,并明确由谁接受该风险,而不是悄悄降低标准。
执行结束后,如果发现准出条件反复需要临时放宽,说明策略中的原则可能不适用于当前业务节奏,应回到策略层面重新评审,而不是每次在计划里打补丁。
策略文档和计划文档在协作工具中如何保持对应关系?
常见做法是让计划中的测试任务关联对应的需求、用例和负责人,并在计划文档中引用策略文档的版本或条目编号,使测试类型、深度和准出条件可以回溯到策略依据。执行阶段发现的偏差通过缺陷或任务记录回流到计划,偏差足够大时再触发策略文档修订并形成新版本。
在 ONES 中,策略文档和计划文档可以在文档模块中编写并留存评审意见与版本记录,计划中的测试任务可以建立为工作项,关联需求、用例和负责人,状态流转与变更痕迹保留在工作项上。这种承载方式适合策略需要跨角色确认、计划需要与需求和用例保持对应关系的团队;协作集中在单一渠道的小团队也可以先用轻量文档记录策略要点。
