缺陷修复验证怎么做:从修复提交到关闭的操作指南

缺陷修复验证要解决的核心问题,是把“修复完成”和“验证通过”拆成两个独立状态:开发提交修复时提供根因、改动范围、影响模块和自测证据,缺陷进入待验证;验证人按原复现步骤、边界场景和关联影响逐项核对,通过后关闭,不通过则带证据退回并记录轮次。本文覆盖单个缺陷从确认到关闭这一段流程,给出状态流转、提交字段、判定标准和检查清单。流程承载上,ONES 测试管理可用于缺陷创建、关联与流转,并保留验证记录。



要点总览(TL;DR)


  • 把“修复完成”和“验证通过”拆成两个独立状态:开发提交修复后缺陷进入待验证,由验证人独立复测并判定,避免开发自证自关。
  • 状态集合覆盖新建、已确认、修复中、待验证、验证不通过、关闭、挂起,每个状态写明进入条件、负责人和完成标志,禁止跳步。
  • 修复提交必填根因说明、改动范围、影响模块、自测记录和构建版本,验证人据此确认测试对象并确定补充验证范围。
  • 验证判定分通过、不通过、部分通过三档,退回须附失败证据并记录轮次;变更后的整体回归归回归测试管理,不在单缺陷验证内展开。
  • 用状态流转、字段完整性、验证记录、退回轮次和关闭证据五项清单定期抽查已关闭缺陷,核对闭环是否达标。


缺陷修复验证的核心流程与状态流转


缺陷修复验证的流程骨架由状态和流转规则构成。状态集合建议覆盖新建、已确认、修复中、待验证、验证不通过、关闭、挂起七种,每个状态都要写明进入条件、负责人和完成标志。流转规则的关键约束有两条:开发不能把自己的修复直接置为关闭;验证不通过必须回到开发侧,并记录退回轮次。


下表给出各状态的进入条件、负责人和完成标志,可作为配置缺陷工作流时的对照依据。


状态 进入条件 负责人 完成标志
新建 报告人提交缺陷,含现象描述与复现步骤 报告人 缺陷单创建,字段基本完整
已确认 缺陷管理负责人或开发确认可复现、属于缺陷 缺陷管理负责人 确认结论记录,指定修复负责人
修复中 开发接单并开始定位 开发 根因已定位,改动方案确定
待验证 开发提交修复,必填字段与自测证据齐全 开发提交,验证人接收 修复提交记录完整,构建版本明确
验证不通过 验证人复测未通过或部分通过 验证人 失败证据与退回原因记录,轮次加一
关闭 验证人按判定标准确认通过 验证人 验证记录与证据齐全,判定为通过
挂起 依赖外部条件、暂无法修复或验证 缺陷管理负责人 挂起原因与恢复条件记录

每一步的输入、动作和输出要能对上:新建的输入是缺陷现象,动作是填写复现步骤,输出是可复现的缺陷单;修复中的输入是确认结论,动作是定位根因和改动,输出是修复提交;待验证的输入是修复提交,动作是复测,输出是验证判定。完成标志的作用是让交接有明确依据,避免“改完了但没人知道能不能验”的模糊状态。


责任边界上,修复提交与验证分离是硬性要求。开发负责把修复内容和证据写清楚,验证人负责独立复测并给出判定,缺陷管理负责人负责状态规则和争议裁决。验证不通过时,缺陷退回开发侧,退回记录要包含失败现象、失败环境、对应轮次编号,下一轮修复提交时沿用同一缺陷单,轮次递增,便于统计反复修复的缺陷。



修复提交时必填的字段与证据


修复提交字段的设计目标是让验证人不必追问就能开始复测。字段划分建议以“验证人是否需要它来判断”为标准:影响判定的一律必填,仅作补充说明的设为选填。


字段名 填写要求 示例
根因说明 必填,说明问题产生的直接原因 分页参数在第二页起未重置,导致重复数据
改动范围 必填,列出修改的文件、模块或配置项 订单列表查询接口、分页组件参数初始化逻辑
影响模块 必填,标注可能受影响的上下游模块 订单列表、导出功能、报表统计
关联缺陷 选填,同一根因引发的其他缺陷单号 关联缺陷 #2317、#2320
自测记录 必填,对照原复现步骤逐条说明自测结果 按原步骤复测通过;补充测试第三页、空数据场景通过
构建版本或提交标识 必填,验证人据此确认测试对象 构建号 build-20240612-03 或提交哈希
补充说明 选填,遗留风险、临时方案或需特别关注的点 导出功能未做完整回归,建议验证时覆盖

自测记录要与原复现步骤对照填写,逐条写明“原步骤第几步、自测结果如何”,而不是只写“已自测通过”。构建版本或提交标识必须指向验证人实际可获取的构建,否则验证人无法确认自己测的是不是修复后的版本。影响模块的填写直接决定验证范围,开发对改动波及面最清楚,这一项由开发填写比由验证人猜测更可靠。


字段必填的落地方式有两种:在缺陷工作流中把必填字段设为状态流转的校验条件,或在团队规范中约定并由缺陷管理负责人在评审时检查。前者依赖工具配置,后者依赖人工把关,团队可按现有工具条件选择。ONES 测试管理支持缺陷的创建、关联与在测试和研发团队间流转,可作为承载修复提交记录的工作项载体;字段级必填校验的具体配置方式需以产品实际设置为准。



验证环节的操作步骤与判定标准


验证人拿到待验证缺陷后,按以下顺序执行:先确认构建版本与修复提交一致,再按原复现步骤逐条复测,然后补充边界场景和关联影响验证,最后给出判定并记录证据。复测时使用缺陷单中的原始步骤和环境,不自行简化步骤,否则无法证明原问题已消除。


边界与关联场景的补充验证范围来自修复提交中的影响模块。常见补充项包括:原步骤的相邻输入(空值、极值、超长内容)、原问题的相邻页面或接口、以及关联缺陷涉及的场景。补充验证不必扩展到整个版本回归,变更后的整体回归属于回归测试管理范畴,单缺陷验证只覆盖本次改动及其直接影响面。


判定结果 适用情形 后续动作
通过 原复现步骤全部复测通过,边界与关联场景无新问题 记录验证证据,状态置为关闭
不通过 原问题仍可复现,或修复引入新的可复现问题 附失败证据退回,轮次加一
部分通过 主场景通过,但关联场景存在遗留问题或未覆盖项 列明剩余项与再验证时间,状态置为验证不通过或保留待验证

验证记录应包含:验证时间、验证人、使用的构建版本、复测步骤与结果、补充验证的场景清单、截图或日志等证据、判定结论。多轮验证时,每轮记录独立保留,轮次编号与退回原因对应,便于判断某个缺陷是否反复修复仍未解决。时效管理上,可为待验证状态设定响应时限,例如提交后一个工作日内开始验证,超时由缺陷管理负责人协调;具体时限按团队节奏确定。


在 ONES 测试管理中,未通过的用例可快速创建缺陷任务,缺陷任务在测试与研发团队间流转,验证结论和过程记录可随缺陷单保留,便于后续追溯。



角色分工与各环节交付物


缺陷修复验证涉及四类角色,职责按“谁产生信息、谁做判定、谁维护规则”划分,避免开发自证自关。


角色 主要职责 关键节点交付物
报告人 提交缺陷,提供可复现的现象与步骤,配合补充信息 缺陷描述、复现步骤、环境信息、必要截图
开发 确认与定位问题,完成修复,提交修复证据,响应退回 根因说明、改动范围、影响模块、自测记录、构建版本
验证人 独立复测,补充边界与关联验证,给出判定 验证记录、证据材料、通过或不通过结论、剩余项清单
缺陷管理负责人 维护状态规则与字段要求,裁决争议,跟踪挂起与超时缺陷 状态流转规则、字段规范、争议处理结论、挂起与超时清单

跨角色交接的触发条件要明确:开发提交修复即触发向验证人的交接,条件是必填字段齐全;验证人判定不通过即触发向开发的退回,条件是失败证据和轮次记录完整;缺陷挂起或超时即触发缺陷管理负责人介入。职责冲突时,处理原则是以验证证据为准:开发认为已修复但验证人复现失败,按不通过处理并保留双方记录;验证人判定通过但后续发现同场景问题,按新缺陷或重开处理,并在记录中说明关联关系。


角色可以由同一人兼任,但修复提交与验证判定不宜由同一人完成。团队规模较小时,可由同组其他成员交叉验证,保持“提交者与判定者分离”这一条即可。



示例:一个缺陷从提交到关闭的完整记录


以下为演示情景,用于示范字段填写与判定过程,不对应真实项目数据。


缺陷描述与复现步骤。现象:订单列表翻到第二页后出现与第一页重复的记录。复现步骤:1)登录测试环境,进入订单列表;2)默认每页 20 条,翻至第二页;3)对比第一页与第二页记录,发现 3 条重复。环境:测试环境,构建 build-20240610-01。


第一次修复提交。根因说明:分页参数在翻页时未重置偏移量。改动范围:订单列表查询接口、分页组件初始化逻辑。影响模块:订单列表、导出功能。自测记录:按原步骤复测通过;补充测试第三页与空数据场景通过。构建版本:build-20240612-03。关联缺陷:无。


第一次验证。验证人使用 build-20240612-03 按原步骤复测,第二页重复问题消失;补充验证导出功能时发现导出结果仍包含重复记录。判定:部分通过。退回原因:导出功能未覆盖修复,附导出文件截图,轮次记为第 1 轮退回。


第二次修复提交。根因说明:导出逻辑独立拼接查询,未复用修复后的分页参数。改动范围:导出查询构造逻辑。影响模块:导出功能、报表统计。自测记录:原步骤复测通过,导出 100 条记录无重复。构建版本:build-20240613-01。


第二次验证与关闭。验证人复测原步骤与导出场景均通过,补充验证报表统计无异常。判定:通过。验证记录包含构建版本、复测步骤结果、导出文件抽样截图、判定结论,缺陷状态置为关闭,轮次记录显示共 2 轮验证、1 次退回。



完成检查:验证闭环是否达标


流程建立后,可按以下清单逐项核对机制是否运转到位。检查对象是缺陷单记录和状态流转,不是团队口头约定。


  • 状态流转无跳步:每条已关闭缺陷都能回溯到已确认、修复中、待验证的完整路径,没有从修复中直接到关闭的记录。
  • 修复提交字段完整:待验证及之后状态的缺陷单中,根因说明、改动范围、影响模块、自测记录、构建版本均有内容。
  • 验证记录可追溯:每条关闭缺陷都有验证人、验证时间、构建版本、复测结果和证据材料。
  • 退回轮次被记录:发生过退回的缺陷单保留每轮退回原因和轮次编号,能统计反复修复的缺陷数量。
  • 关闭前具备验证证据:关闭动作由验证人执行,判定结论与证据同时存在,开发自关的记录为零。
  • 挂起缺陷有出口:挂起状态缺陷均记录恢复条件与责任人,定期复核,不长期滞留。

检查频率可按迭代或按月执行,抽查已关闭缺陷和退回缺陷各若干条,对照上述条目逐项打勾。发现字段缺失或跳步记录时,先修正流程配置或规范,再回溯受影响缺陷。ONES 测试管理提供项目缺陷分布统计,可用于观察缺陷状态分布和反复修复情况,作为检查的辅助数据;统计口径以产品内实际配置为准。



常见问题


开发提交修复后,验证人应该先做什么?


先确认构建版本与修复提交中填写的构建号或提交标识一致,确保测的是修复后的版本;再按缺陷单中的原始复现步骤和环境逐条复测,不自行简化步骤。原问题确认消除后,再按影响模块补充边界与关联场景验证,最后给出判定并记录证据。


验证结果为“部分通过”时,缺陷应该关闭还是退回?


按剩余问题的性质处理:如果遗留项属于本次修复应覆盖的范围,例如关联模块仍存在同一根因导致的问题,按不通过退回并记录轮次;如果遗留项是尚未验证的关联场景,可保留待验证状态,列明剩余项和再验证时间,待补充验证完成后再判定。两种处理都要在缺陷单中写清剩余项,避免部分通过变成事实上的默认关闭。


团队规模小,开发和验证由同一人兼任可以吗?


角色可以兼任,但修复提交与验证判定不宜由同一人完成。可行的做法是由同组其他成员交叉验证,保留“提交者与判定者分离”这一条约束。若确实无法分离,至少在缺陷单中记录验证依据和证据,并由缺陷管理负责人在抽查时重点核对这类记录。


缺陷反复退回多轮仍未解决,流程上怎么处理?


每轮退回都要保留失败现象、失败环境和轮次编号,同一缺陷单轮次递增。当轮次达到团队约定的阈值时,由缺陷管理负责人介入,判断是根因定位不准、改动范围评估不足还是需求理解有偏差,必要时组织开发与验证人共同复现。反复修复的缺陷数量可作为流程检查的观察项,用于发现修复提交质量的问题。


单缺陷验证和变更后的整体回归是什么关系?


单缺陷验证只覆盖本次改动及其直接影响面,范围来自修复提交中的影响模块;变更后的整体回归测试属于回归测试管理范畴,关注版本层面的整体质量。两者衔接点在于:验证人在补充验证中发现影响面超出预期时,应反馈给缺陷管理负责人或测试负责人,由后者决定是否纳入回归范围。