
很多团队的三份产出最后互不搭界:测试计划躺在文档里,排期挂在日历上,回归范围留在某个人的经验里。更常见的问题是顺序反了:范围还没定,排期先按发布日期倒排出来;范围一变,排期作废,回归退化成把主要功能再点一遍。
可执行的做法是把它们当成一条决策链:先定测什么,再定什么时候能测完,最后定每次改动要重跑多少。顺序对了,后面每一步都有依据。
在软件测试管理平台里,这三点上的每个决定都可以留下记录。多数团队用它记了用例和执行结果,却没有把用例、构建(每次提测的版本包)和Bug关联起来,于是每次发布前仍要重新确认一遍范围。
一、测试计划怎么定:四个问题写清楚
测试计划最容易走偏的地方是照模板填空:背景、目的、范围、策略、资源、风险一项不落,可真到执行时,没人说得清这次测到什么程度算够。国际标准ISO/IEC/IEEE 29119的第3部分专门规定测试文档,测试计划是其中的正式输出之一,它规定的是文档需要覆盖哪些信息,而不是要求写多长。
一份能用的测试计划,至少要回答下面四个问题。
下表把四个问题与写不清时的后果对应起来,可以用来自查一份计划是否只完成了格式。
|
要回答的问题 |
需要写到什么程度 |
写不清时的典型后果 |
|---|---|---|
|
测什么,不测什么 |
具体到模块与业务场景,并写明排除项 |
验收时对范围各说各话 |
|
测到什么程度 |
明确关键模块的测试类型与深度 |
高风险模块只做了主流程验证 |
|
什么时候算通过 |
准入准出条件可判断,不写笼统的测试通过 |
带条件上线,问题后置 |
|
谁负责、谁拍板 |
明确测试负责人与冲突时的决策人 |
环境、数据卡住时无人推动 |
四个问题里,测试范围与准入准出最容易被写虚。准入准出指进入测试的条件与测试完成的标准,范围只写覆盖核心功能、准入准出只写测试通过时,到版本验收就没有可对照的口径。
让范围能对应到具体的模块和用例,是计划真正发挥作用的前提。用哪几个模块的哪些业务场景必须通过、哪些部分本轮不覆盖这样的方式写下来,后续需求变更时才能快速判断要补哪些用例。
测到什么程度,可以按风险定深度:高风险模块覆盖主流程、异常分支与边界值,一般模块覆盖主流程即可。判断标准写进计划,执行时不必临时商量。谁拍板同样要落到具体的人,并在提测标准里写清谁有权拒绝提测,只写角色不写人,遇到争议时依然会停下来等。

二、测试排期怎么排:从执行量倒推
排期的起点不是发布日期,而是执行量。粗算方式是把范围内的用例条数、单条平均执行时间、计划轮次相乘,再加上环境与数据准备、Bug修复后的验证时间。这种估算适合用例执行时间比较接近的模块;如果差异较大,应按模块或套件分开估算,否则高风险模块的时间容易被低估。
估算结果通常偏乐观,因为它没有算提测延迟、环境切换和等待时间。提测延迟是排期里最大的变量,因此把提测标准写进计划,例如构建可用、冒烟通过(核心功能可用)、变更清单齐全。达不到标准就不接,接了就要顺延。含糊接受先提测再补的做法,最后往往是测试时间被压缩。
缓冲要留得有依据。可以参考上一版本的实际执行时间与返工时间之差,再结合本版本的Bug密度与环境稳定性做调整,不要凭感觉拍一个整数。
排期还要写清每段的输入与产出:用例设计阶段的产出是通过评审的用例集,执行阶段的产出是测试单与Bug清单,其中测试单记录了这一轮的实际执行结果,收尾阶段的产出是测试报告与遗留问题说明。排期只写日期不写产出,进度就只能靠感觉汇报。
三、回归范围怎么定:用影响面分析代替凭感觉
回归范围是最容易凭感觉定的一项。改动集中在某个模块,影响却可能落在别处:两个模块共用同一个数据对象的字段,其中一方调整了默认值,另一方恰好用这个字段做状态判断,问题就会出现在没人预料的位置。
把范围定准,通常要经过三步。
1. 影响面从四个方向排查
排查的起点是一份客观清单,而不是一句这次改动很小。提测时要求开发提交变更清单,列出改动的代码文件、涉及的数据表与缓存、公共模块与接口约定的变化,这份清单也是回归范围的第一版草图。
拿到清单后,按四个方向找受影响的部分。

直接调用关系最直观:改了接口的输入参数、返回字段或异常处理逻辑,调用方没有同步就需要回归。共享数据与状态最隐蔽:两个功能没有调用关系,但共用一张数据表、一份缓存数据或一个配置项,写入规则一变,读取方的判断就偏了。公共模块的改动会波及所有调用它的功能,接口的调用方式没变不代表内部行为没变,超时时间、缓存规则、默认值的调整都属于这一类。没有写进文档的约定最容易被忽略,例如字段排序规则、时间格式、金额精度的处理方式。
2. 把影响面翻译成三层回归
影响面清单是技术视角,回归用例是业务视角,中间需要一次转换:把某段代码逻辑的变化,对应到具体的页面与业务流程。没有完成转换的影响点,在回归清单里只是一行无法执行的说明。
转换完成之后,按三层配置回归范围:冒烟层验证核心功能是否可用,影响面层验证本次改动波及的场景,全量层覆盖完整功能。

冒烟层的用例量少、执行快,登录、主流程、核心接口这类场景失败就可以先停下来,把版本退回修复,不必往下跑。影响面层是本次变更的重头戏,清单来自上一步的转换结果,原则是覆盖影响面里的每个业务场景,既不漏也不额外增加用例。全量层对应完整功能回归,是否执行要看迭代节奏与自动化程度,不宜默认每次都跑。
3. 按发布节奏决定跑哪几层
同样的变更,在不同发布节奏下的回归打法并不相同。
下表按发布类型列出三层回归的取舍。
|
发布类型 |
冒烟层 |
影响面层 |
全量层 |
|---|---|---|---|
|
常规迭代版本 |
必跑 |
必跑 |
视周期与用例规模决定 |
|
紧急修复版本 |
必跑 |
必跑,并单独验证修复点 |
不安排,顺延到下一个版本 |
|
大版本或季度发布 |
必跑 |
必跑 |
必跑 |
差别主要落在全量层:常规迭代按周期与自动化程度决定,紧急修复顺延到下一版本补齐,大版本与季度发布则需要完整覆盖。
紧急修复的代码多在时间压力下完成,不确定性更高,跳过回归省下的时间,往往会在故障处理时还回去。
四、把三件事落到软件测试管理平台里
计划、排期、范围定完之后,最怕它们只停留在会后的聊天记录里。落到软件测试管理平台的关键不是把文档搬进去,而是让用例、执行结果和Bug互相关联。
以禅道为例:用例可以关联到对应的研发需求,测试单把构建与用例执行串在一起,用例执行失败能直接转为Bug,Bug中也会保留来源用例。这样当需求变更或构建重新提测时,可以按需求检索关联用例,缩小需要重跑的范围。
禅道的测试单如何承载构建与用例执行,官网手册里有完整说明(提交测试单);用例的创建、评审与维护思路见创建测试用例。

下表列出三类关键记录以及它们在后续能回答的问题。
|
要留下的记录 |
承载对象 |
后续能回答的问题 |
|---|---|---|
|
用例与需求的对应关系 |
需求与用例的关联 |
这次需求变更涉及哪些用例 |
|
每一轮的用例执行结果 |
测试单与执行记录 |
这一版跑到哪、卡在哪个模块 |
|
用例产生的Bug及来源 |
用例与Bug的关联 |
哪些用例最值得优先回归 |
这三类记录互相打通之后,回归范围不再依赖某个人的记忆,而是可以按需求、按构建、按Bug反查出来的清单。
五、容易走偏的三个地方
拿一份功能清单当测试范围,问题在于范围没有优先级。执行时无从取舍,最后往往变成临近发布集中补测。给范围标上优先级,先覆盖高风险场景,时间紧的时候才有取舍依据。
把回归范围留到执行阶段临时决定,问题在于风险判断被推给了执行人员。范围应在提测前定好,执行人员按清单跑即可;临时判断会让结果难以复核,也让范围失去可追溯的依据。
按满负荷估算测试人力,问题在于并行项目多时,人员很难全部投入单个版本。排期应按可用工时而不是人数计算,否则每个阶段都会出现计划与实际脱节。
六、用三个信号验证计划与范围是否有效
定完不等于定对,还需要能判断这一轮测试是否可靠。下面三个信号可以在版本收尾时对照检查。
一是漏测情况:上线后发现的严重问题,是否落在本轮回归范围之外。出现这种情况先区分两类原因:如果该场景原本没有纳入范围,说明影响面分析漏了方向,应回到变更清单补充检查项;如果已纳入范围但没有执行到位,问题出在执行记录里,需要查执行与测试数据环节。
二是回归失败项的分布:全量回归的失败项如果集中在本次变更之外,多半与历史遗留问题或测试数据状态有关,先确认原因,再决定是报Bug还是修数据。
三是用例有效性:长期不产生Bug的用例是裁剪的候选对象,反复失败或反复产生Bug的用例则是回归清单的核心。把这两类区分开,回归清单才可能逐年变短,而不是逐年变长。
七、常见问题
1. 用例库积累了几千条用例,怎么快速筛出这次要回归的范围?
先按模块或业务场景把用例组织成套件,提测时按变更涉及的模块选套件,再叠加历史Bug较多的用例作为重点。只靠全量清单逐条筛选,在时间压力下容易漏掉关键场景。
2. 需求在迭代中途变更,排期和范围要不要整体重排?
不必整体重排。用同一份变更清单评估影响面,只补受影响部分的用例与执行时间,其余部分维持原排期;如果变更落在核心链路上,增加一轮冒烟复核即可。
3. 准出标准写得太严,会不会造成延期?
可以把标准分级:影响核心流程或数据正确性的问题修复后才能发布,其余问题可带条件发布,但要写清修复版本与责任人。分级之后,标准既有约束力,也不会把所有问题都压在发布前。
4. 多个项目并行,排期总是撞车怎么办?
把共享资源单独列成占用计划,例如测试环境、专项测试人员、外部联调窗口,按发布窗口错峰安排。同时明确每个发布窗口的优先级,资源冲突时按优先级让路。
5. 测试环境不稳定,回归结果反复失败怎么办?
先区分环境导致的失败与真实失败,环境类失败单独记录,不并入质量结论。环境问题本身也应占用排期,作为测试准备量提前处理,否则每次回归都要重新排查同一批失败项。
八、参考资料
-
ISO/IEC/IEEE 29119 系列标准官方介绍,committee.iso.org
文章标题 :软件测试管理平台常见问题:测试计划、测试排期与回归范围怎么定 ,发布者 :项目管理研究院


































