缺陷分级规范最常见的失效点,是把严重程度和修复优先级合成一个字段:测试按影响定级,研发按排期改级,最后既说不清缺陷有多严重,也说不清为什么先修它。本文分别给出两套判定规则——严重程度按影响对象、功能可用性、数据与安全后果、绕行方案定级,由提出方在提交时填写;修复优先级以严重程度为基线,结合影响范围、频率、发布节点和修复成本推导,由研发负责人或分诊角色在评审时判定,并配套组合矩阵、角色分工、填写示例与落地检查清单。
要点总览(TL;DR)
- 严重程度回答“缺陷造成多大影响”,由提出方在提交时按影响对象、功能可用性、数据与安全后果、绕行方案定级;修复优先级回答“当前先修哪个”,由研发负责人或分诊角色在评审时判定。
- 严重程度建议设 S1–S4 四级,每级写清影响对象与用户能否完成目标,并附正反例;无绕行方案时按实际阻断程度上调一级,有临时方案时按方案生效后的实际影响定级。
- 修复优先级以严重程度为基线,再用影响范围、发生频率、发布节点、修复成本与风险做一档上调或下调,每次调整记录理由和复核时间。
- 用严重程度×优先级组合矩阵标出常规、需说明和禁止的组合;高严重度低优先级须记录降级理由与临时措施,低严重度高优先级不修改严重程度字段。
- 规范发布后按抽样清单检查两字段是否独立填写、升降级是否附理由、分级分布是否异常集中,复盘时优先修订触发条件而非增加等级。
先拆开两个维度:严重程度与修复优先级各回答什么问题
两个字段回答的是不同问题,混用会让分级失去解释力。严重程度描述缺陷本身造成的损害,是一个相对稳定的属性;修复优先级描述团队在当下资源与节奏下先处理哪一条,会随发布节点和排期变化。规范应把两者写成独立章节,各自定义等级、判定依据和判定人。
判定时点也不同。严重程度在缺陷提交时确定,此时提出方掌握复现步骤和影响事实;修复优先级在缺陷评审或分诊时确定,此时研发已了解修复路径和排期约束。若在提交时就把优先级定死,评审环节只能被动接受或悄悄改值,规范就形同虚设。
两个字段应独立存储、独立变更。修改严重程度需要说明影响事实的变化,例如发现数据被污染或找到绕行方案;修改优先级需要说明排期或范围的变化。任何一方变更都不应自动覆盖另一方,变更记录保留在原字段上,便于后续复盘。
| 对比项 | 严重程度 | 修复优先级 |
|---|---|---|
| 回答的问题 | 缺陷造成多大影响 | 当前先修哪一个 |
| 判定时点 | 缺陷提交时 | 评审或分诊时 |
| 判定人 | 缺陷提出方,测试负责人复核 | 研发负责人或分诊角色 |
| 主要依据 | 影响对象、功能可用性、数据与安全后果、绕行方案 | 严重程度、影响范围、发生频率、发布节点、修复成本与风险 |
| 变更规则 | 影响事实变化时修改,附说明 | 排期或范围变化时修改,记录调整理由 |
严重程度判定规则:等级定义与判定字段
严重程度建议设四级,按影响对象从大到小排列。等级数量不宜过多,四级足以区分处置差异,也便于提出方快速判断。每级定义要写清“影响什么”和“用户还能不能完成目标”,而不是只写“严重、一般、轻微”这类形容词。
| 等级 | 定义 | 判定要点 | 正例 | 反例 |
|---|---|---|---|---|
| S1 致命 | 核心业务中断,或造成数据丢失、泄露、资金错误等不可接受后果 | 主流程完全不可用且无绕行;数据或安全后果已发生或必然发生 | 支付成功后订单未生成;用户可越权查看他人账单 | 某个报表导出按钮点击无响应,但数据可在列表页查看 |
| S2 严重 | 主要功能受损,用户无法完成关键任务,但有临时绕行方式 | 关键路径受阻;绕行成本高或需人工介入 | 批量导入失败,只能逐条手工录入 | 导入速度比预期慢,但结果正确 |
| S3 一般 | 次要功能异常,主流程可正常完成 | 影响局部操作或非关键角色;有可接受的替代路径 | 筛选条件组合后结果少一条,单独筛选正常 | 页面在特定浏览器下样式错位,不影响操作 |
| S4 轻微 | 体验、文案、样式问题,不影响任务完成 | 无功能阻断;仅影响观感或表述准确性 | 提示语存在错别字;按钮间距不一致 | 提交按钮在移动端被遮挡,导致无法提交 |
判定时按固定字段填写依据,避免只写一句结论。建议字段包括:影响的功能模块、受影响用户范围(全部用户、特定角色、特定租户或环境)、数据或安全后果、是否存在绕行方案及其成本。这四个字段既是定级依据,也是后续复核和争议裁决的证据。
边界情形用两条规则收敛。第一,无绕行方案时按实际阻断程度上调一级,例如本属次要功能但该场景下是唯一入口,应按主要功能受损处理。第二,存在临时方案时按方案生效后的实际影响定级,并在字段中写明方案内容;临时方案本身不稳定或需人工每日操作的,不应据此大幅下调。测试负责人在复核时重点检查这两类情形。
修复优先级判定规则:输入项与判定步骤
优先级不能直接照搬严重程度,否则所有高严重度缺陷会挤在同一队列,研发无法排序。规范应把优先级定义为多输入项推导的结果,并给出可重复的判定步骤。
第一步,以严重程度确定基线:S1 对应最高优先级,S4 对应最低优先级。第二步,用其余输入项在基线上做一档上调或下调,并记录理由。输入项包括:影响范围(受影响用户或租户数量)、发生频率(必现、高频、偶发)、发布节点(是否阻塞当前版本上线或客户验收)、修复成本与风险(修复是否涉及数据迁移、是否可能引入回归)。
| 输入项 | 取值示例 | 对优先级的作用 |
|---|---|---|
| 严重程度 | S1–S4 | 确定基线档位 |
| 影响范围 | 全部用户 / 单角色 / 单租户 | 范围越大越倾向上调 |
| 发生频率 | 必现 / 高频 / 偶发 | 必现且高频可上调;极难复现可下调 |
| 发布节点 | 阻塞发版 / 本迭代内 / 可延后 | 阻塞发版时上调 |
| 修复成本与风险 | 低风险小改动 / 需数据修复 / 高风险重构 | 高风险大改动可先降级并安排专项,避免仓促上线 |
优先级建议设三级或四级,并与排期动作对应,例如 P1 进入当前迭代立即修复、P2 排入下一迭代、P3 进入待办池按版本规划、P4 合并处理或随版本顺手修复。等级命名与排期动作的对应关系要写进规范,避免同一等级在不同团队有不同含义。
下调条件必须写明。常见可下调情形包括:已有稳定绕行方案且影响范围有限、缺陷极难复现且无数据后果、修复需要跨版本重构而当前有临时规避手段。下调时须在优先级字段旁记录理由和复核时间,防止高严重度缺陷被长期搁置而无人跟踪。
组合矩阵与冲突处理:两个维度不一致时怎么办
两个字段独立判定,必然出现不一致的组合。矩阵的作用不是强制配对,而是标出哪些组合属于常规、哪些需要额外说明,让评审时一眼看出异常。
| 严重程度 \ 优先级 | P1 立即修复 | P2 下一迭代 | P3 待办规划 | P4 合并处理 |
|---|---|---|---|---|
| S1 致命 | 常规 | 需说明 | 禁止,须升级裁决 | 禁止,须升级裁决 |
| S2 严重 | 常规 | 常规 | 需说明 | 需说明 |
| S3 一般 | 需说明 | 常规 | 常规 | 常规 |
| S4 轻微 | 需说明 | 需说明 | 常规 | 常规 |
高严重度低优先级的典型情形:S1 缺陷已定位为第三方服务问题,临时切换备用通道后影响可控,修复需等待供应商排期;或 S2 缺陷仅影响已下线功能的旧入口。这类组合允许存在,但必须记录降级理由、临时措施和复核日期,由研发负责人确认。
低严重度高优先级的典型情形:S4 文案错误出现在对外宣传页或合同模板中,涉及合规表述;或轻微样式问题出现在即将交付的客户演示环境。触发条件是“对外可见”或“阻塞验收节点”,此时上调优先级合理,但严重程度字段不应随之改动。
出现矩阵中标注“禁止”的组合,或评审各方对定级有分歧时,由研发负责人与测试负责人共同裁决,裁决结论和依据记录在缺陷的讨论或变更记录中,并设定复核时间。复核节点建议放在版本发布前或迭代评审会上,避免争议悬置。
角色分工与交付物:谁在什么环节填什么
规则能否执行,取决于每个角色的动作是否具体到字段。下表把分级流程拆成四类角色,每类角色对应明确的输入、动作和产出。
| 角色 | 环节 | 动作 | 交付物 |
|---|---|---|---|
| 缺陷提出方(测试或业务方) | 提交缺陷 | 填写严重程度及四项判定依据,附复现步骤和影响事实 | 完整的缺陷单,严重程度字段有依据 |
| 测试负责人 | 提交后复核 | 检查边界情形,处理无绕行方案或临时方案导致的定级偏差 | 复核结论,必要时调整严重程度并说明 |
| 研发负责人或分诊角色 | 评审或分诊 | 以严重程度为基线判定优先级,记录上调或下调理由 | 优先级字段值及调整说明 |
| 规范维护人 | 周期性复盘 | 统计分级分布与变更记录,识别规则歧义并修订等级定义 | 复盘记录与规范修订版本 |
在工具层面,两个字段需要作为独立属性存在于缺陷对象上,并保留变更历史,才能支撑上述分工。ONES 测试管理支持未通过的用例快速创建缺陷任务,缺陷任务在测试与研发团队间流转,缺陷可关联至迭代,并提供项目缺陷分布统计用于沉淀问题与经验。团队可据此把严重程度与优先级作为两个独立字段分别维护,让提出方、测试负责人和研发负责人在同一缺陷记录上完成各自动作;字段的具体配置方式以实际产品配置为准。
填写示例:一条缺陷从提交到定级
以下为演示情景,用于说明两套规则的填写方式,不指向任何真实项目。
缺陷描述:某后台管理系统中,运营人员批量导出订单明细时,选择超过 30 天的日期范围会返回空文件,单日导出正常。影响事实:涉及全部运营角色,每日对账依赖该导出,目前只能按天分批导出后手工合并。
严重程度判定:影响功能为订单导出,属主要功能;受影响范围为全部运营角色;无数据错误或安全后果,返回空文件而非错误数据;存在绕行方案,但需人工分批合并,成本较高。按分级表定为 S2 严重,判定字段逐项填写,绕行方案注明“按天导出后手工合并,单次约 20 分钟”。
优先级判定:以 S2 为基线对应 P2。影响范围为全部运营角色,发生频率为必现,且下周为月度对账节点,按发布节点上调一档至 P1,调整理由记录为“阻塞月度对账,必现,影响全部运营角色”。修复成本评估为查询条件拼接问题,改动小、风险低,支持上调判断。
最终字段值:严重程度 S2,优先级 P1,排期动作为进入当前迭代立即修复,并在修复后由提出方按原复现步骤验证。若修复延期,需在复核节点重新评估优先级并更新理由。
落地与检查:规范发布后的校验项
规范发布只是开始,执行偏差通常在前两三个迭代集中暴露。建议按以下清单做抽样检查,每项都对应可观察的记录,而不是笼统的“执行情况良好”。
- 抽查缺陷单,确认严重程度与优先级两个字段均有值,且严重程度附有影响功能、影响范围、数据或安全后果、绕行方案四项依据。
- 检查是否存在用优先级替代严重程度的情况,例如严重程度字段长期空白或全部填同一等级。
- 核对所有上调或下调记录是否附理由,尤其是 S1、S2 缺陷被定为 P3 及以下的情形,确认有临时措施和复核日期。
- 统计一个周期内的分级分布,若某一等级占比超过八成,或优先级全部集中在 P1,说明判定标准过宽或评审未真正执行,需要回到等级定义修订。
- 对比严重程度变更记录与缺陷实际影响,识别提出方系统性高估或低估的模式,作为培训与规则修订依据。
- 在版本发布前复核高严重度低优先级的缺陷清单,确认降级理由仍然成立。
复盘时优先修订触发条件,而不是频繁增加等级。例如发现“无绕行方案上调一级”被普遍误用,应补充绕行方案的认定标准;发现发布节点因素导致优先级长期通胀,应明确只有阻塞当前版本验收的缺陷才可据此上调。规则修订后保留版本记录,并在下一次抽样中验证修订是否生效。
常见问题
严重程度和修复优先级可以由同一个人在同一步骤里一起定吗?
可以同一个人参与,但建议分两步、分两个字段记录。严重程度在缺陷提交时确定,依据是复现步骤和影响事实;修复优先级在评审或分诊时确定,依据是排期、修复路径和资源约束。若在提交时就把两个值一次定死,评审环节只能被动接受或悄悄改值,变更记录也会混在一起,后续复盘时无法判断是影响事实变了还是排期变了。
小团队人手有限时,可由同一人先后完成两次判定,但两次判定之间应保留评审动作,并在字段变更记录中分别写明依据。
S1 致命缺陷被定为 P3 待办规划,规范上允许吗?
允许存在,但必须满足记录要求。常见情形是缺陷根因在第三方服务,已切换备用通道使影响可控,修复需等待供应商排期;或缺陷仅影响已下线功能的旧入口。这类组合在矩阵中标注为“禁止,须升级裁决”或“需说明”,处理方式是记录降级理由、临时措施和复核日期,由研发负责人确认。
复核节点建议放在版本发布前,确认降级理由仍然成立。若临时措施失效或影响范围扩大,应立即重新评估优先级。
临时绕行方案能作为下调严重程度的依据吗?
可以,但要按方案生效后的实际影响定级,并在判定字段中写明方案内容。若临时方案本身不稳定、需要人工每日操作,或只覆盖部分用户,不应据此大幅下调。规范中建议把“绕行方案认定标准”写清楚,例如方案是否稳定、是否覆盖全部受影响用户、单次操作成本多少,避免“有绕行方案”被普遍误用为降级理由。
分级分布长期集中在某一等级,应该先改等级定义还是先加强评审?
先看偏差来源再决定。若某一等级占比超过八成,或优先级全部集中在 P1,通常说明判定标准过宽或评审未真正执行。建议先抽样核对缺陷单:严重程度字段是否附有影响功能、影响范围、数据或安全后果、绕行方案四项依据,升降级是否附理由。若依据普遍缺失,问题在评审执行;若依据齐全但定级普遍偏高,问题在等级定义的触发条件,应补充正反例和边界规则。
规则修订后保留版本记录,并在下一次抽样中验证修订是否生效。
在缺陷管理工具中落地这套规范,字段和流程上要注意什么?
两个字段需要作为独立属性存在于缺陷对象上,并保留变更历史,才能支撑提出方、测试负责人和研发负责人分别填写与复核。ONES 测试管理支持未通过的用例快速创建缺陷任务,缺陷任务在测试与研发团队间流转,缺陷可关联至迭代,并提供项目缺陷分布统计用于沉淀问题与经验。团队可据此把严重程度与优先级作为两个独立字段分别维护;字段的具体配置方式以实际产品配置为准。
