缺陷复测是缺陷修复后由验证方按原复现条件重新执行、确认问题消失且未引入新问题的动作。它发生在修复方提交修复之后、缺陷关闭之前,核心是把“改好了”从口头结论变成可核对的结果。本文只覆盖从修复提交到验证关闭这一段,给出可照做的步骤、角色分工、填写示例和完成检查;变更后的整体回归属于回归测试管理,不在本文展开。
要点总览(TL;DR)
- 缺陷复测是修复提交后由验证方按原复现条件重跑、确认问题消失且未引入新问题的动作,发生在缺陷关闭之前。
- 复测按接收修复、准备条件、执行验证、记录结果、判定走向、归档关闭六步推进,每步都要有可检查的产出。
- 修复方交付修复说明、影响范围和自测结论;验证方交付复测记录与证据;缺陷管理者把关状态流转与关闭条件。
- 复测不通过要带失败现象和证据退回,并单独记录轮次,不覆盖上一轮结果。
- 关闭前核对环境一致性、证据完整性和关闭权限,避免只测修复点、环境不一致、无证据关闭三类漏洞。
缺陷复测的核心步骤与每步产出
复测可以拆成六个动作:接收修复、准备条件、执行验证、记录结果、判定走向、归档关闭。每一步都要有明确输入和可检查的输出,避免复测变成“点一遍看看好了没”。
| 步骤 | 输入 | 动作 | 输出 | 完成标志 |
|---|---|---|---|---|
| 1. 接收修复提交 | 缺陷单、修复说明、影响范围说明 | 验证方阅读修复说明,确认修改了哪些模块、可能影响哪些功能、修复方自测了什么 | 复测任务或复测轮次记录 | 修复说明与影响范围可读、可对应到缺陷 |
| 2. 准备复测条件 | 原缺陷的复现步骤、环境信息、测试数据 | 还原原复现环境与数据,确认版本为包含修复的构建 | 环境与版本核对记录 | 环境、数据、版本三项与原缺陷一致或差异有说明 |
| 3. 执行复测 | 原复现步骤 | 按原步骤逐步重跑,同时检查修复点周边直接影响面 | 实际执行记录 | 原步骤全部执行完毕,无跳步 |
| 4. 记录结果与证据 | 执行过程 | 记录每步实际结果,保存截图、日志、录屏或接口返回 | 复测记录与证据附件 | 结论有对应证据,他人可据此复核 |
| 5. 判定走向 | 复测记录 | 通过则提交关闭申请;不通过则填写失败现象与证据,退回修复方 | 通过结论或退回说明 | 状态发生明确流转,责任方收到通知 |
| 6. 归档关闭 | 通过结论与证据 | 缺陷管理者核对后关闭,保留复测轮次历史 | 已关闭缺陷单 | 关闭有权限、有依据、历史可追溯 |
修复说明至少要回答三件事:改了什么、为什么这样改、可能影响哪些功能。影响范围写得越具体,验证方越知道复测时除了原步骤还要看哪里。复现条件则要沿用原缺陷单里的环境、账号、数据和操作顺序,条件发生变化时要在记录中注明差异,不能默认“差不多就行”。
复测轮次要单独记录。第一次复测不通过、修复方再次提交后,应记为第二轮复测,而不是覆盖上一轮结果。轮次记录能说明这个缺陷反复了几次、每次失败原因是什么,也为后续判断修复质量提供依据。
谁提交、谁验证:角色分工与交付物
复测责任悬空,通常是因为“谁来验”没有写清楚。修复方、验证方、缺陷管理者三个角色各有交付物,缺一项就会出现无证据关闭或退回无依据的情况。
| 角色 | 主要动作 | 交付物 | 完成标志 |
|---|---|---|---|
| 修复方(研发) | 完成代码或配置修改,提交修复说明,说明影响范围,附自测结论 | 修复说明、影响范围、自测记录、包含修复的构建版本 | 验证方可以据此独立开始复测 |
| 验证方(测试或提出人) | 按原条件重跑,检查直接影响面,记录结果与证据 | 复测记录、证据附件、通过或不通过结论 | 结论有证据支撑,退回时说明具体失败现象 |
| 缺陷管理者(测试负责人或缺陷管理员) | 把关状态流转,核对关闭条件,维护缺陷单完整性 | 状态变更记录、关闭确认 | 关闭动作有权限、有依据,轮次历史完整 |
复测人与修复人分离是常见做法,适用于缺陷影响用户可见功能、涉及资金或权限、或者修复改动面较大的情况。分离的价值在于验证方不受修复思路影响,能按原步骤独立判断。团队规模较小、缺陷影响有限时,修复人自测后由他人抽查也可以接受,但自测结论要单独记录,不能直接当作复测结论。
缺陷管理者的把关重点不是替验证方做判断,而是检查关闭前是否具备三样东西:复测结论、对应证据、复测轮次记录。三者齐全才允许关闭,缺一项就退回补充。
一个缺陷的复测示例:从退回修复到关闭
下面用一个演示情景说明字段怎么填、状态怎么走。示例中的系统、数据和轮次均为示意,不代表真实项目。
初始缺陷信息。缺陷标题:订单列表按日期筛选后分页错乱。复现步骤:登录测试账号,进入订单列表,选择日期范围为本月,点击第二页,观察列表内容。预期结果:第二页显示本月第 21 至 40 条订单。实际结果:第二页重复显示第一页部分数据。环境:测试环境,版本 V2.3.0,数据集为 200 条订单。
第一次修复提交。修复说明:分页参数在日期筛选条件下未重置,已修改查询拼接逻辑。影响范围:订单列表筛选与分页、订单导出。自测结论:本地按上述步骤验证通过,导出功能抽查正常。构建版本:V2.3.1。
第一次复测。验证方在测试环境 V2.3.1 上按原步骤执行,第二页数据正确。随后检查影响面时发现,切换日期范围后第一页仍保留上一次的页码,属于同一修改引入的新问题。复测结论:不通过。证据:两张截图,分别显示切换筛选后的页码与列表内容。状态:从“待验证”退回“重新打开”,记录为第一轮复测失败。
第二次修复与复测。修复方补充说明:在筛选条件变更时重置页码。影响范围增加“筛选条件切换后的分页状态”。验证方第二轮复测按原步骤执行,并补充切换筛选、翻页、导出三个动作,结果均正常。复测结论:通过。证据:操作录屏一段、导出文件一份。状态:流转至“待关闭”。
关闭。缺陷管理者核对两轮复测记录、修复说明和证据附件,确认关闭条件满足后关闭缺陷。缺陷单保留两轮复测历史,可看到第一次失败原因和第二次通过依据。
复测完成的检查项与常见漏洞
判断复测是否做完、做对,可以按下面清单逐项核对。清单适合在关闭前由验证方自查、缺陷管理者复核。
- 复测环境、版本、数据与原缺陷记录一致,存在差异时已注明并说明是否影响结论。
- 原复现步骤逐步执行完毕,没有跳过中间步骤或只验证最后一步。
- 修复点周边直接影响面已检查,检查范围与修复说明中的影响范围对应。
- 复测结论有对应证据,截图、日志或录屏能支撑“通过”或“不通过”的判断。
- 不通过时写明了具体失败现象、复现步骤和证据,修复方可以据此定位。
- 复测轮次已记录,历史轮次未被覆盖。
- 关闭动作由有权限的角色执行,关闭前已核对结论与证据。
常见漏洞集中在三处。只测修复点:验证方按原步骤跑通就关闭,没有看修复说明里的影响范围,结果同一改动在相邻功能上引出新问题。环境不一致:在开发本地或不同数据集上复测,结论无法对应原缺陷。无证据关闭:结论只有一句“已验证通过”,没有截图或日志,后续无法复核,也无法判断是第几轮通过。
还有一种容易被忽略的情况:修复方提交的构建版本与复测使用的版本不一致。验证方开始复测前应核对版本号,版本对不上时先确认再执行,避免把旧版本的正常表现当成修复生效。
复测记录在协作工具中的承载方式
复测涉及的字段、状态和证据如果散落在聊天记录和本地文件里,轮次和依据就很难追溯。把复测作为缺陷工作项的一部分来承载,可以让每次提交、每轮验证和最终关闭都留在一个可查的位置。
缺陷工作项需要承载的复测字段包括:复测轮次、复测结论、复测环境与版本、证据附件、退回原因。状态流转建议覆盖“待修复—待验证—重新打开—待关闭—已关闭”,每次流转记录操作人和时间。复测证据与修复说明关联存放在同一缺陷下,验证方提交结论时直接引用修复说明中的影响范围,形成对应关系。
ONES 的缺陷跟踪可以按上述字段配置工作项属性,用状态流转记录复测轮次和退回历史;修复说明、复测记录和证据可以作为附件或关联文档存放在缺陷工作项下,交接和评审在同一处留痕。对于需要多人复核的缺陷,评审意见也可以跟随工作项保存,关闭时一并可查。这样复测的每一步都有承载位置,缺陷管理者核对关闭条件时不需要再到多个渠道拼凑信息。
落地时可以先从字段和状态两项做起:把复测轮次、结论、证据设为必填,把“待验证”到“已关闭”的流转加上关闭前核对。运行一段时间后,再根据退回原因分布调整影响范围的填写要求。复测记录稳定下来,缺陷关闭的依据也就稳定了。
常见问题
复测时发现原缺陷的复现环境已经变了,还能继续复测吗?
可以继续,但要在复测记录中写明差异,并判断差异是否影响结论。环境、数据或版本与原缺陷不一致时,先确认这些变化是否触及缺陷触发条件;如果触及,应尽量还原原条件后再执行,无法还原时在结论中注明“条件差异及可能影响”,供缺陷管理者判断是否接受。
修复人自己复测通过,还需要别人再验一遍吗?
取决于缺陷影响面。缺陷影响用户可见功能、涉及资金或权限、或者修复改动面较大时,建议由修复人以外的人复测,避免受修复思路影响而漏看影响面。团队规模较小、缺陷影响有限时,修复人自测后由他人抽查可以接受,但自测结论要单独记录,不能直接当作复测结论使用。
复测通过后,是否还要做一轮整体回归?
复测只覆盖该缺陷及其直接影响面,变更后的整体回归属于回归测试管理。是否触发整体回归,取决于修复改动范围和发布节奏:改动涉及公共模块、核心链路或多个功能共用逻辑时,应在复测通过后安排回归;改动局限在单一功能点时,可按团队约定决定回归范围。
同一个缺陷反复复测不通过,应该怎么处理?
每轮复测单独记录,写清当轮失败现象、复现步骤和证据,不覆盖历史轮次。连续多轮不通过时,缺陷管理者可以组织修复方和验证方一起核对复现条件是否一致、修复说明是否准确,必要时调整修复方案或补充影响范围说明,再进入下一轮复测。
复测记录需要保存哪些内容,保存多久?
至少保存复测轮次、复测结论、环境与版本、证据附件和退回原因,并与修复说明关联存放。保存期限按团队的质量管理要求和项目周期确定;对于涉及合规或对外交付的项目,复测记录通常需要与缺陷单一同归档,保证关闭依据在项目结束后仍可追溯。
