风险等级要真正影响测试结果,需要完成三个动作:按等级确定覆盖强度,把风险编号写进用例和检查活动,发布前用覆盖矩阵核对。本文给出风险条目字段、覆盖强度规则、标注规范、角色分工和完成检查,适合已有风险清单、需要将其落到测试设计与执行中的测试负责人和测试设计人员参考。风险条目、用例和检查活动的统一承载与状态跟踪,可在相应环节借助 ONES 管理。
要点总览(TL;DR)
- 把风险清单整理成带编号、等级、影响对象、触发条件和可观察后果的风险条目,等级判定理由要写清楚,作为后续调整和覆盖判断的依据。
- 按等级确定覆盖强度:高风险逐条对应专门用例并配套检查活动,中风险按场景组合覆盖,低风险纳入回归集或按比例抽样。
- 用例模板设置独立的关联风险字段,只填风险编号;检查活动的检查项注明验证的风险编号和判定标准,使覆盖关系可查可评审。
- 发布前用覆盖矩阵逐条核对每条风险是否有用例、有活动、有结果;高风险无用例、无结果或失败未修复时,不建议按正常流程发布。
从风险清单到可执行的覆盖项
风险清单通常以自然语言描述关注点,无法直接指导测试设计。第一步是把每条风险整理成结构化的风险条目,第二步按等级确定覆盖强度,第三步拆出可测试的覆盖点。完成标志是:每条风险都能指向具体的条件、数据、操作路径和预期结果。
风险条目的最小字段
每条风险至少记录以下五项,缺一项都会导致后续覆盖判断失去依据:
| 字段 | 填写要求 | 示例 |
|---|---|---|
| 风险编号 | 全局唯一,建议“模块缩写-序号”,一经分配不再复用 | PAY-012 |
| 风险等级 | 高、中、低三档,附判定理由 | 高:涉及资金扣减且不可逆 |
| 影响对象 | 受影响的用户、数据、接口或业务流程 | 支付回调处理、订单金额 |
| 触发条件 | 什么情况下风险会暴露 | 第三方回调重复推送、网络超时后重试 |
| 可观察后果 | 从外部能观察到的错误表现 | 订单重复扣款、金额与流水不一致 |
等级判定理由要写清楚,因为后续调整等级时需要回看原始依据。影响对象和触发条件写得越具体,拆覆盖点时越省力。
按等级确定覆盖强度
覆盖强度是风险等级进入测试工作的主要方式。建议按下表执行,团队可结合业务特点调整档位,但调整规则应事先约定并保持一致:
| 风险等级 | 覆盖强度 | 具体要求 |
|---|---|---|
| 高 | 逐条对应 | 每条风险至少对应一条专门用例,覆盖全部已识别触发条件;配套至少一项检查活动;有明确通过判据和证据 |
| 中 | 场景组合 | 将同类风险合并为业务场景用例,每个触发条件至少出现在一个场景中;关键场景安排检查活动 |
| 低 | 抽样或回归 | 纳入回归用例集或按比例抽样执行,不要求逐条设计专门用例 |
高风险“逐条对应”的含义是风险与用例之间可一一查证,而非一条用例覆盖多条高风险。中风险合并场景时,要在用例中列出所覆盖的风险编号,避免合并后无法回溯。
把风险条目拆成覆盖点
覆盖点是用例设计的直接输入,从触发条件出发拆解,每个覆盖点包含四项内容:
- 条件:需要构造的前置状态,如“回调已成功但客户端未收到响应”。
- 数据:需要准备的输入,如重复的回调报文、相同的订单号。
- 操作路径:执行的动作序列,如重复推送同一回调三次。
- 预期结果:与可观察后果对应的正确表现,如仅扣款一次、流水记录唯一。
一条高风险风险通常拆出多个覆盖点,分别对应用例步骤或独立用例。拆分完成后,用一张映射表记录“风险编号—覆盖点—用例编号—检查活动编号”,这张表就是后续覆盖矩阵的雏形。
用例与检查活动中的风险标注方法
覆盖关系要可查、可评审,靠的是统一的风险标注。标注的核心是风险编号进入用例和检查活动的固定字段,而不是散落在描述文字里。
用例中风险字段的填写规则
- 用例模板中设置独立的“关联风险”字段,填写风险编号,多个编号用逗号分隔。
- 字段只填编号,不填风险描述,描述以风险条目为准,避免两处维护产生偏差。
- 用例标题中体现风险场景,如“PAY-012 回调重复推送仅扣款一次”,便于按编号检索。
- 用例步骤与覆盖点对应,预期结果写成可判定的表述,避免“正常”“符合预期”这类无法核对的写法。
检查活动如何挂接风险
评审、走查、专项检查同样需要标注风险编号。做法是在检查活动的检查项清单中,为每个检查项注明其验证的风险编号和判定标准。例如需求评审中设置检查项“PAY-012:需求是否明确回调幂等处理要求”,走查中设置检查项“接口文档是否说明重复回调的返回约定”。检查活动结束后记录结论,未通过的检查项转为缺陷或补充用例。
高风险用例的写法要求
高风险用例需要写清三部分:前置条件要具体到可复现的状态,包括数据准备方式和环境要求;测试数据要列明构造方法,如“使用相同订单号构造两次回调报文”;通过判据要可观察、可判定,如“账户扣款记录为一条,金额与订单一致”。判据模糊的用例即使执行通过,也无法证明风险已被覆盖。
避免一条用例挂多个风险
一条用例关联多个风险时,执行失败难以判断影响哪条风险,覆盖状态也会互相牵连。处理方式是:高风险坚持一条用例对应一条风险;中风险场景用例可以关联多个编号,但要在步骤中标注每个编号对应的验证点;发现某条用例关联的风险超过三个,应拆分为独立用例。关联关系变更时同步更新映射表。
角色分工与各环节交付物
风险覆盖涉及识别、设计、核对和执行四类工作,职责不清时最容易出现“风险登记了但没人设计用例”的缺口。
| 角色 | 职责边界 |
|---|---|
| 风险责任人 | 维护风险条目的字段完整性和等级判定理由,提出等级调整,对风险本身负责 |
| 测试设计人 | 按等级拆覆盖点、设计用例、关联风险编号,保证高风险逐条对应 |
| 评审人 | 在需求评审和用例评审中核对覆盖关系,确认检查项已挂接风险 |
| 执行人 | 按用例执行并回填结果,记录证据,发现覆盖缺口及时上报 |
四个环节的输入与输出如下:
- 需求评审:输入为需求文档和风险清单,输出为确认后的风险条目及新增风险,明确哪些风险需要在设计中重点覆盖。
- 用例评审:输入为用例和映射表,输出为评审结论,重点核对高风险是否逐条有用例、检查活动是否挂接风险编号。
- 执行:输入为用例和检查项清单,输出为执行结果、证据和缺陷记录,结果回填到映射表。
- 发布前核对:输入为覆盖矩阵,输出为覆盖结论和遗留风险说明,作为发布决策依据。
风险等级调整由风险责任人提出,说明调整理由和新等级,经测试负责人确认后更新风险条目,并同步检查覆盖强度是否匹配:升级为高风险的条目要补充专门用例,降级的条目可并入场景或回归集。覆盖缺口由执行人或评审人上报给测试负责人,由其决定补充用例、追加检查活动或记录为已知风险并说明处置意见。
当风险条目、用例和检查活动分散在文档和表格中时,关联关系容易失同步。ONES 支持将风险、测试用例与检查任务作为工作项统一管理,通过字段关联和状态流转记录覆盖关系与执行结果,使映射表和覆盖矩阵可以直接从系统中核对,减少人工汇总的遗漏。
示例:一条高风险条目的完整落地过程
以下为演示情景,用于说明链路,不代表真实项目数据。
风险条目:编号 PAY-012,等级高,判定理由为涉及资金扣减且错误不可逆;影响对象为支付回调处理和订单金额;触发条件为第三方回调重复推送、网络超时后重试;可观察后果为订单重复扣款、金额与流水不一致。
覆盖点拆分:
- 覆盖点一:相同回调报文连续推送三次,条件为订单已支付成功,数据为同一订单号的三份回调报文,预期结果为仅扣款一次、流水唯一。
- 覆盖点二:回调处理超时后第三方重试,条件为首次处理超时,数据为超时后重发的回调,预期结果为重试被识别为重复请求,不产生二次扣款。
- 覆盖点三:并发回调同时到达,条件为两个回调请求同时进入处理,预期结果为幂等控制生效,扣款记录唯一。
对应用例:用例 TC-PAY-045 关联 PAY-012,覆盖覆盖点一,前置条件写明订单状态和回调报文构造方式,通过判据为“扣款记录一条且金额等于订单金额”。TC-PAY-046 覆盖覆盖点二,TC-PAY-047 覆盖覆盖点三,三条用例均在“关联风险”字段填写 PAY-012。
配套检查活动:需求评审检查项“PAY-012:需求是否明确回调幂等要求及重复请求的返回约定”;接口走查检查项“回调接口文档是否说明重复推送的处理规则”。两项检查均记录结论和参与人。
结果回填:三条用例执行后,在执行记录中填写通过或失败、执行时间和证据位置;两项检查活动记录结论。映射表中 PAY-012 对应三条用例和两项检查活动,全部有结果后,该风险在覆盖矩阵中标记为已覆盖。若任一用例失败,风险状态保持未通过,缺陷修复后需重新执行并更新结果。
覆盖核对与完成检查
发布前核对的目标是确认每条风险都有用例、有活动、有结果,且结果满足通过判据。核对以覆盖矩阵为工具,逐行检查,不以整体测试通过率代替。
覆盖矩阵核对方法
覆盖矩阵的每一行是一条风险,列包括风险编号、等级、关联用例、关联检查活动、执行结果、证据位置。核对时逐条确认:
- 高风险:是否至少有一条专门用例,是否覆盖全部已识别触发条件,是否有配套检查活动,结果是否全部通过并有证据。
- 中风险:每个触发条件是否至少出现在一个场景用例中,关键场景检查活动是否完成。
- 低风险:是否已纳入回归集或按约定比例抽样,抽样是否覆盖不同模块和业务路径。
阻断条件
出现以下情况时,不建议按正常流程发布:高风险存在无用例、无检查活动或无执行结果;高风险用例执行失败且缺陷未修复验证;高风险检查项结论为不通过且未处置。确需发布的,应由风险责任人书面说明遗留风险的影响范围和处置计划,经测试负责人确认后记录在发布结论中。
中低风险抽样的合理性判断
抽样合理性看三点:样本是否覆盖该风险涉及的模块和操作路径;抽样比例是否与团队约定一致;上轮执行中发现问题的区域是否被纳入本轮样本。三点均满足即可认为抽样覆盖成立,判断依据写入覆盖结论。
覆盖结论的记录与留痕
覆盖结论至少记录:核对日期、核对人、各等级风险总数与已覆盖数、未覆盖项及原因、遗留风险处置意见。结论与覆盖矩阵一并归档,作为发布评审的输入。后续风险等级调整或新增风险时,重新核对受影响部分并更新结论。
常见问题
风险等级调整后,已经设计好的用例和检查活动要怎么处理?
等级调整由风险责任人提出并说明理由,经测试负责人确认后更新风险条目,同时检查覆盖强度是否匹配新等级。升级为高风险的条目要补充专门用例和配套检查活动,并确认覆盖全部已识别触发条件;降级的条目可以并入场景用例或回归集,但原有用例不必立即删除,可在映射表中保留关联关系。调整后要重新核对受影响部分的覆盖矩阵,并更新覆盖结论。
一条中风险场景用例关联了多个风险编号,执行失败时怎么判断影响范围?
先看失败步骤对应哪个风险编号的验证点。中风险场景用例在步骤中标注了每个编号对应的验证点,失败时按步骤定位到具体编号,将该编号对应的风险状态标记为未通过,其他编号的风险状态不受牵连。如果失败步骤涉及多个编号共用的前置条件,则相关编号一并标记为待验证,修复后重新执行。关联编号超过三个的用例建议拆分,降低这种牵连。
低风险抽样覆盖,抽多少、抽哪些才算合理?
抽样比例按团队事先约定的规则执行,不在发布前临时决定。合理性看三点:样本覆盖该风险涉及的模块和操作路径;抽样比例与约定一致;上轮执行中发现问题的区域纳入本轮样本。三点满足即可认为抽样覆盖成立,判断依据写入覆盖结论。若某条低风险在本轮涉及变更,应重新评估是否临时提升覆盖强度。
检查活动只有评审和走查,没有专门的测试执行,能算覆盖吗?
检查活动与测试执行验证的是不同层面的内容。评审和走查可以确认需求、设计或文档中是否体现了风险对应的处理要求,属于覆盖证据的一部分;但风险的可观察后果是否真的不会发生,仍需通过用例执行来验证。高风险条目要求同时有用例和检查活动,两者不能互相替代。若某条风险确实无法通过执行验证,应在覆盖结论中说明原因和替代证据。
风险条目、用例和检查活动分散在不同文档里,覆盖矩阵怎么维护才不容易失同步?
关键是让关联关系只维护一处。用例和检查活动通过固定字段引用风险编号,映射表从这些字段汇总生成,避免在多个文档中重复登记。当风险、用例和检查活动作为工作项统一管理时,字段关联和状态流转可以直接反映覆盖关系与执行结果,覆盖矩阵从系统中核对,减少人工汇总的遗漏。ONES 支持将风险、测试用例与检查任务作为工作项统一管理,可用于这一环节。
