重复缺陷处理规则要解决的是同一问题被多次提交后如何识别、归并和关闭。把“判定—合并—关闭—追溯”四个环节固定下来,明确判定依据、操作步骤、责任人和检查方式,团队就能减少重复排查,同时保留每条提交中的复现信息。下面给出一套可直接落地的规则设计方法。
要点总览(TL;DR)
- 判定重复缺陷要交叉核对现象、复现步骤、根因和影响模块四个维度,仅凭标题相似容易误判;根因未明确时先建立关联,待开发负责人确认后再完成判重。
- 把处理流程固定为判定、合并、关闭、追溯四步,每步写明输入、动作、输出和完成标志,判重结论与依据要留在缺陷记录中。
- 合并时把后提交的缺陷标记为重复并关联主缺陷,保留其复现步骤、附件和提交人;主缺陷关闭后重复项同步关闭,主缺陷重开后重复项同步回到打开状态。
- 职责按提交人、缺陷管理员或测试负责人、开发负责人、项目负责人划分,争议先协商、再升级裁决,结论和依据记录在缺陷中并设定处理时限。
- 统计口径区分主缺陷与重复项,缺陷数量按主缺陷计、重复提交次数单独统计;定期抽查判定留痕、信息保留、状态一致性和争议闭环情况。
重复缺陷判定标准与操作步骤
判定重复缺陷的核心依据是两条缺陷指向同一根因或同一可观察现象。实际操作中,仅凭标题相似就判重容易误判,需要从四个维度交叉核对:现象是否一致、复现步骤是否指向同一路径、根因是否相同、影响模块是否重合。四个维度中,现象与复现步骤用于快速筛选,根因与影响模块用于最终确认。当现象一致但根因尚不明确时,可以先建立关联,待开发负责人确认根因后再完成判重。
判定前需核对的字段清单
判定人打开一条待判缺陷时,应逐项核对以下字段,并与候选主缺陷逐条比对:
| 核对字段 | 核对内容 | 判重参考价值 |
|---|---|---|
| 标题与现象描述 | 错误表现、报错信息、界面异常是否一致 | 快速筛选,不能单独作为判重依据 |
| 复现步骤 | 操作路径、前置条件、输入数据是否相同 | 高,步骤一致通常指向同一问题 |
| 环境与版本 | 操作系统、浏览器、应用版本、配置差异 | 中,环境不同但现象相同仍需进一步确认 |
| 错误日志或截图 | 堆栈信息、日志关键字、截图中的异常位置 | 高,日志一致可直接支撑判重 |
| 影响模块与严重程度 | 所属功能模块、影响范围、严重级别 | 中,用于确认是否同一根因影响面 |
| 提交时间与提交人 | 先后顺序、是否同一测试轮次 | 低,用于确定主缺陷与重复项 |
核对完成后,判定人应在缺陷记录中写明判定结论和依据,例如“与缺陷 #1024 复现步骤一致、错误日志相同,判定为重复”。这条记录是后续追溯和争议处理的基础。
判定—合并—关闭—追溯四步流程
四步流程中,每一步都要有明确的输入、动作、输出和完成标志,避免规则停留在口头约定。
| 步骤 | 输入 | 动作 | 输出 | 完成标志 |
|---|---|---|---|---|
| 判定 | 新提交缺陷、候选主缺陷、字段核对结果 | 按四维度比对,记录判定结论与依据 | 判定记录(含判定人、时间、依据) | 缺陷记录中出现明确的判重结论 |
| 合并 | 判定结论、重复缺陷记录 | 将后提交缺陷标记为重复,关联主缺陷,保留复现信息、附件与提交人 | 重复缺陷与主缺陷的关联关系 | 两条缺陷互相可见关联,重复项信息完整保留 |
| 关闭 | 主缺陷状态、重复缺陷关联关系 | 主缺陷修复验证通过后,同步关闭重复项;主缺陷重新打开时,重复项同步回到打开状态 | 状态一致的缺陷记录 | 重复项状态与主缺陷保持一致 |
| 追溯 | 判定记录、关联关系、状态变更历史 | 保留判定人、依据、合并动作和时间线,供复盘与统计使用 | 可查询的缺陷处理历史 | 任意一条重复缺陷都能追溯到主缺陷和判定依据 |
主缺陷与重复缺陷的关联方式建议统一:在重复缺陷上记录主缺陷编号,在主缺陷上汇总重复提交次数。这样处理人在查看主缺陷时能知道该问题被多少人、在多少环境下遇到,为修复优先级提供参考。
当团队使用 ONES 测试管理承载缺陷流程时,未通过的用例可快速创建缺陷任务,缺陷任务在测试与研发团队间流转,缺陷也可关联至迭代。判重结论、关联关系和状态变更可以记录在同一条缺陷任务中,使上述四步在工具内留下完整痕迹。具体的重复标记字段与状态联动方式,需结合团队实际配置方案确认。
角色分工与各环节交付物
规则能否执行,取决于每个环节是否有人负责、有交付物可查。建议按以下边界划分职责:提交人负责提供完整复现信息,缺陷管理员或测试负责人负责判定与合并,开发负责人确认根因一致性,项目负责人处理争议升级。
| 角色 | 职责边界 | 合并与关闭环节的交付物 |
|---|---|---|
| 提交人 | 提交时填写现象、复现步骤、环境版本、日志或截图;配合补充判重所需信息 | 完整的缺陷记录;对判重结论有异议时提供补充证据 |
| 缺陷管理员或测试负责人 | 执行字段核对与初步判定;发起合并;维护关联关系 | 判定记录(判定人、时间、依据);重复缺陷与主缺陷的关联 |
| 开发负责人 | 确认根因是否一致;对根因不明确的判重给出技术结论 | 根因确认意见;主缺陷修复后的验证结论 |
| 项目负责人 | 裁决判定争议;监督规则执行情况 | 争议裁决结论与依据;定期复盘的检查结果 |
判定争议的升级路径
争议通常出现在两种情形:提交人认为自己的缺陷不是重复,或判定人与开发负责人对根因是否一致有分歧。处理路径建议为:先由测试负责人与开发负责人协商,围绕复现步骤和日志给出书面意见;仍不一致时升级到项目负责人裁决;裁决结论和依据记录在缺陷中,作为后续同类问题的参考。升级过程应设定时限,避免缺陷长期停留在待判定状态。
让职责落到记录上
职责边界写清楚之后,还需要在缺陷记录中体现“谁在什么时候做了什么判断”。ONES 测试管理支持缺陷任务在测试与研发团队间高效流转,判定人、开发负责人和项目负责人的意见可以留在同一条缺陷的评论与状态变更中,争议升级的过程也因此可追溯。这样复盘时不需要额外找人回忆,直接查看记录即可。
示例:一条重复缺陷从提交到关闭
以下为演示情景,用于说明规则如何落到具体记录上。
测试人员在回归测试中提交缺陷 #2056:在订单列表页连续点击“导出”按钮两次,页面提示“请求超时”,附有浏览器控制台日志和操作录屏,环境为测试环境、应用版本 3.2.1。缺陷管理员核对字段时发现,三天前已有缺陷 #1987,现象同为导出请求超时,复现步骤为快速重复点击导出,日志中的超时关键字一致,影响模块同为订单导出。
判定人进一步比对发现,两条缺陷的环境版本相同,复现路径一致,初步判定为重复。开发负责人查看日志后确认两次超时来自同一接口的并发限制缺失,根因一致。判定人在 #2056 中记录:“与 #1987 现象、复现步骤、日志关键字一致,根因同为导出接口并发限制缺失,判定为重复。”随后将 #2056 标记为重复并关联 #1987,保留其录屏、日志和提交人信息,#1987 中汇总重复提交次数加一。
#1987 修复并通过验证后关闭,#2056 随之关闭。关闭时 #2056 中仍保留原始复现信息、判定依据和关联关系,查看该记录的人可以顺着关联找到主缺陷的修复结论。若后续 #1987 因回归不通过被重新打开,#2056 也应同步回到打开状态,避免出现主缺陷未解决而重复项已关闭的情况。
这个示例说明,重复缺陷的价值在于补充信息而非制造噪音:提交人提供的录屏和日志帮助开发确认了并发场景,#1987 的重复提交次数也反映了该问题的触发频率。ONES 测试管理支持一键创建并关联缺陷,使这类关联和状态同步在缺陷任务中完成,减少线下口头确认。
规则落地后的完成检查
规则执行一段时间后,需要用可核验的条目判断是否真正到位。建议每月或每个迭代抽查一批重复缺陷记录,逐项核对:
| 检查项 | 核验方式 | 合格标准 |
|---|---|---|
| 判定依据是否留痕 | 抽查重复缺陷记录,查看是否有判定人、时间和具体依据 | 每条重复缺陷都能看到判重理由,而非只有“重复”标记 |
| 重复项信息是否保留 | 检查重复缺陷的复现步骤、附件、提交人是否完整 | 合并后原始信息未被删除或覆盖 |
| 关闭动作是否与主缺陷一致 | 比对重复项与主缺陷的状态和时间线 | 主缺陷关闭后重复项关闭,主缺陷重开后重复项同步打开 |
| 统计口径是否区分主缺陷与重复缺陷 | 查看缺陷数量统计报表的口径说明 | 缺陷数量按主缺陷计,重复项单独计数,用于衡量提交质量与判重效率 |
| 争议处理是否闭环 | 抽查曾出现争议的缺陷 | 有升级记录、裁决结论和依据,且在规定时限内完成 |
| 规则定期复盘 | 每季度回顾判重准确率与误判案例 | 误判案例有原因分析,判据表据此更新 |
统计口径需要特别说明:如果缺陷总数把重复项一并计入,会高估问题规模,也会掩盖提交质量的变化。把主缺陷数量和重复提交次数分开统计,既能反映真实缺陷规模,也能观察判重效率是否提升。ONES 测试管理提供项目缺陷分布统计,可用于沉淀问题与经验;统计维度是否区分主缺陷与重复项,需结合团队报表配置确认。
复盘时还应关注两类信号:一是重复率异常升高,可能说明提交前查重不足或模块质量问题集中;二是判重争议增多,可能说明判据表对某类问题的描述不够清晰。两类信号都应转化为判据表或流程的修订,而不是停留在个别沟通中。规则本身也需要版本管理,每次修订记录变更原因和生效时间,确保团队按同一版本执行。
常见问题
两条缺陷现象相同但环境版本不同,应该判为重复吗?
环境版本不同不构成排除重复的理由,也不足以单独确认重复。建议先比对复现步骤和错误日志:如果操作路径一致、日志中的报错关键字相同,可以初步建立关联,再由开发负责人确认是否同一根因。若根因确认一致,判为重复并在记录中写明环境差异;若根因不同,则保留为独立缺陷,并在两条记录中互相引用,避免后续再次混淆。
提交人不同意判重结论时,规则上应该怎么处理?
先由提交人补充证据,例如不同的复现步骤、额外的日志或截图,交由缺陷管理员或测试负责人复核。复核仍无法达成一致时,由测试负责人与开发负责人围绕根因给出书面意见,再升级到项目负责人裁决。裁决结论和依据要记录在该缺陷中,并设定处理时限,避免缺陷长期停留在待判定状态。争议记录本身也是后续修订判据表的输入。
主缺陷被重新打开后,已经关闭的重复缺陷需要跟着改状态吗?
需要。重复项的状态应与主缺陷保持一致:主缺陷修复验证通过后重复项关闭,主缺陷因回归不通过被重新打开时,重复项也应同步回到打开状态。否则会出现主缺陷未解决、重复项已关闭的记录,统计和追溯都会失真。团队可以在流程中约定由谁执行同步动作,并在定期检查中比对两者的状态和时间线。
重复缺陷数量要不要计入缺陷总数?
建议分开统计。缺陷数量按主缺陷计,重复提交次数单独计数。把重复项一并计入总数会高估问题规模,也会掩盖提交质量的变化;单独统计重复次数则能观察提交前查重是否充分、判重效率是否提升。报表口径需要在团队内统一说明,避免不同项目各算各的。
规则执行一段时间后,怎么判断判据表需要修订?
关注两类信号:重复率异常升高,可能说明提交前查重不足或某模块问题集中;判重争议增多,可能说明判据表对某类问题的描述不够清晰。两类信号都应转化为判据表或流程的具体修订,并记录变更原因和生效时间,让团队按同一版本执行。每季度回顾误判案例,是发现这类信号的有效方式。
