测试用例复用率常用两种口径计算:按引用计算,复用率 = 统计期内被引用次数≥2的用例数 ÷ 统计期内被引用过的用例总数 × 100%;按执行计算,复用率 = 重复执行次数 ÷ 总执行次数 × 100%。两种口径回答的问题不同,计算前要先确定分母、时间窗和“复用”的判定单位,再取数、计算并抽样核对。
要点总览(TL;DR)
- 测试用例复用率有两种常用口径:引用口径 = 被引用次数≥2的用例数 ÷ 被引用过的用例总数 × 100%;执行口径 = 重复执行次数 ÷ 总执行次数 × 100%。两者分母不同,结果不能直接比较。
- 计算前先固定时间窗、判定单位(用例ID)和排除项(草稿、已废弃、一次性脚本类用例),同一序列的各期数据按同一规则处理,中途调整需在汇报中注明。
- 取数依赖用例主数据、引用记录和执行记录三类数据,按用例ID关联;引用口径按用例去重计数,执行口径按执行记录逐条计数。
- 计算按五步走:导出记录、去重标记复用、分别计算两种口径、按模块或版本拆分、抽样核对原始记录,中间结果留存便于复核。
- 复用率适合观察用例库资产的使用情况,不能单独证明用例质量或测试效率,需配合执行通过率、缺陷发现数和维护成本一起解读。
评估目标:复用率要回答哪个问题
复用率首先是一个资产使用指标,用来判断测试用例库中的用例是否被持续使用,而不是建完就沉淀在库里。它适合回答“用例库有没有被真正用起来”“哪些模块的用例长期只被引用一次”“新增用例是在补充覆盖,还是在重复造已有用例”这类问题。指标结果可以指向具体的清理、合并或补充动作。
计算前要区分两类目标,因为它们对应不同口径。第一类是引用口径,关注用例被关联、被选取使用的广度,回答“有多少用例被反复用到”。第二类是执行口径,关注用例被执行的频次,回答“执行工作量中有多少来自重复执行已有用例”。同一个团队在同一时间窗内,两种口径算出的数值通常不同,不能混用,也不能直接比较。
还需要明确这个指标不承诺什么。复用率高不代表用例质量好,也不代表测试效率高:一组粒度过粗、断言薄弱的用例同样可以被反复引用。复用率低也不直接说明用例设计差,可能是产品处于快速迭代期、用例随需求频繁重写。把复用率定位为“资产使用情况的观察指标”,配合质量与效率指标一起看,结论才站得住。
指标与范围:分子、分母和时间窗怎么定
指标定义要写成可复算的形式,任何人拿到同样的记录都能算出同一个数。推荐先固定以下定义卡,再开始取数。
| 定义项 | 引用口径 | 执行口径 |
|---|---|---|
| 公式 | 复用率 = 被引用次数≥2的用例数 ÷ 被引用过的用例总数 × 100% | 复用率 = 重复执行次数 ÷ 总执行次数 × 100% |
| 分子 | 统计期内引用次数达到2次及以上的用例数量(按用例ID去重) | 统计期内同一用例第2次及以后执行的总次数 |
| 分母 | 统计期内至少被引用过1次的用例数量(按用例ID去重) | 统计期内全部执行记录条数 |
| 判定单位 | 用例ID | 单次执行记录 |
| 时间窗 | 按周、月或版本周期,起止时间含首尾 | 同左,需与引用口径使用同一时间窗 |
| 单位 | 百分比,保留一位小数 | 百分比,保留一位小数 |
统计对象限定为用例库中的可用用例,即状态为正常、可被执行或引用的用例。时间窗建议按团队节奏选择:迭代稳定的团队按月统计,便于观察趋势;版本制团队按版本统计,便于和发布质量对照。选定后至少连续使用三个周期再比较,避免因窗口长短不同导致数值不可比。
排除项要在定义阶段写清楚,常见的有三类:草稿状态的用例尚未定稿,引用它不构成有效复用;已废弃或停用的用例不应进入分母;一次性脚本类用例本身设计为单次使用,纳入统计会系统性拉低复用率。排除规则一旦确定,同一序列的各期数据都按同一规则处理,中途调整需在汇报中注明。
数据口径与证据:从哪些记录取数
复用率是派生指标,依赖两类原始记录:用例主数据和引用或执行记录。取数前先确认这两类记录都能按用例ID关联,否则分子分母会对不上。
| 数据类别 | 必需字段 | 用途 |
|---|---|---|
| 用例主数据 | 用例ID、用例状态、创建时间、所属模块、所属版本 | 确定分母范围、排除项和拆分维度 |
| 引用记录 | 用例ID、引用时间、关联的测试计划或需求或缺陷编号 | 统计引用次数,判断是否达到复用阈值 |
| 执行记录 | 用例ID、执行时间、执行结果、执行人 | 统计总执行次数与重复执行次数 |
去重规则要按口径分别设定。引用口径下,同一用例在同一时间窗内被多次引用,分子只计1个用例,但引用次数用于判断是否达到2次;同一用例被关联到同一测试计划的多个需求,是否算多次引用需事先约定,建议按“不同关联对象”计数,避免同一动作被重复放大。执行口径下,每次执行记录都计入分母,同一用例第2次及以后的执行计入分子,重跑失败用例产生的记录同样计入,除非团队明确约定只统计有效执行。
数据缺失和状态变更要单独处理。引用记录缺少关联对象时,保留记录但标记为“待核实”,不计入分子;用例在统计期内从正常变为废弃,按其在窗口内的有效状态处理,并在数据说明中记录变更数量。状态字段缺失的用例不纳入分母,同时记录缺失条数,作为数据质量的观察项。
这些记录通常分散在用例库、测试计划和执行记录中。ONES TestCase 支持测试用例与需求、任务关联,测试计划与迭代关联,用例库中的用例属性支持筛选,也支持用例导出,便于按统一字段整理出上述取数表。是否内置复用率报表需按具体版本核验,计算仍以导出的原始记录为准。
计算与评估步骤:从取数到出结果
按以下五步执行,每一步都留下中间结果,便于复核和解释。
- 确定时间窗并导出记录。写明起止日期和统计粒度,导出用例主数据、引用记录和执行记录三张表,字段按上一节的清单对齐。完成标志是三张表都能用用例ID关联,且记录条数与系统内数量一致。
- 按用例ID去重并标记复用。在引用表中按用例ID汇总引用次数,标记次数≥2的用例;在执行表中按用例ID和执行时间排序,标记第2次及以后的执行记录。完成标志是每个用例都有明确的复用标记。
- 分别计算两种口径。引用口径用标记为复用的用例数除以被引用过的用例总数;执行口径用重复执行次数除以总执行次数。两个结果分开记录,不取平均、不互相替代。
- 按模块或版本拆分。用同一公式分组计算,观察复用是集中在少数核心模块,还是普遍偏低。拆分后若某组样本过少,只做描述不做结论。
- 抽样核对原始记录。随机抽取10至20条标记为复用的记录,回到原始系统核对引用或执行时间、关联对象是否真实存在。发现偏差时修正规则并重算,核对结果与偏差说明一并留存。
例子:一个月的复用率怎么算出来
以下为演示情景,数字仅用于说明计算过程,不代表任何团队的实际水平或行业基准。
某月统计期内,用例库中可用用例共500条,其中被引用过的用例有200条,这200条中有80条被引用2次及以上;同期执行记录共1200条,涉及300条不同用例,其中重复执行记录为360条。
- 引用口径:80 ÷ 200 × 100% = 40.0%。含义是本月被使用的用例中,有四成被反复引用。
- 执行口径:360 ÷ 1200 × 100% = 30.0%。含义是本月执行工作量中,有三成来自对已有用例的重复执行。
如果某月没有任何引用记录,引用口径的分母为零,此时不写0%,而应表述为“本月无引用记录,复用率不适用”,并说明原因,例如用例库刚完成迁移或团队当月未开展测试活动。样本过小时,例如被引用用例不足20条,建议只报告绝对数量和趋势方向,百分比标注“样本较小,仅供参考”。
这两个结果能说明用例在本月被重复使用的情况,不能推出用例覆盖充分或测试效率提升的结论。要判断资产健康度,还需结合执行通过率、缺陷发现数和用例维护投入一起看。
解读与限制:结果怎么用、哪里会失真
复用率的变化要放在趋势里看。单期数值受版本节奏、需求规模和用例新增数量影响,波动属于正常现象;连续多个周期同口径比较,才能判断用例库的使用是在改善还是退化。汇报时应同时写出口径、时间窗、排除项和样本量,缺少任一项,跨团队的数字就不具备可比性。
常见失真来源有三类。第一类是用例粒度过粗,一条用例覆盖多个场景,被反复引用但实际验证内容单薄,复用率虚高。第二类是用复制用例代替引用,同一验证逻辑被复制成多条用例分别使用,引用次数被摊薄,复用率虚低。第三类是统计口径中途切换,例如从按月改为按版本、或调整了排除项,前后数据直接对比会得出错误结论。
建议配套观察三项指标:用例执行通过率反映用例当前是否有效,缺陷发现数反映用例的检出能力,用例维护成本反映复用是否真的节省了投入。三项与复用率同向变化时,结论更可靠;出现背离时,优先排查用例质量和统计规则,而不是直接调整复用率目标。复用率适合评估用例库资产的使用情况,不适合单独作为团队绩效或测试效率的证明。
常见问题
引用口径和执行口径的复用率,汇报时应该选哪一个?
取决于要回答的管理问题。关注用例库资产是否被广泛使用、哪些用例长期只被引用一次,用引用口径;关注执行工作量中有多少来自重复执行已有用例,用执行口径。如果两类问题都要回答,可以同时报告两个数值,但必须分别标注口径名称、时间窗和分母,不能取平均或互相替代。跨团队比较时,先确认双方口径一致,否则数字不具备可比性。
同一用例在一个月内被关联到多个测试计划,引用次数怎么算?
需要在定义阶段约定计数单位。常见做法是按“不同关联对象”计数,即同一用例关联到不同测试计划或不同需求各计一次,关联到同一对象的多个条目只计一次,避免同一动作被重复放大。无论选择哪种规则,分子只按用例ID去重计1个用例,引用次数仅用于判断是否达到2次及以上的复用阈值。规则确定后写入指标定义卡,各期沿用。
用例在统计期内从正常变为废弃,应该计入分母吗?
按其在时间窗内的有效状态处理:窗口内处于可用状态且有引用或执行记录的,计入统计;变更发生在窗口之前或窗口内未产生任何记录的,不纳入分母。同时记录本期状态变更的用例数量,作为数据说明的一部分。状态字段缺失的用例不纳入分母,并单独记录缺失条数,作为数据质量的观察项,避免因字段问题让分母失真。
复用率算出来偏低,应该先调整目标还是先排查原因?
先排查原因,再决定是否调整目标。常见原因包括产品处于快速迭代期、用例随需求频繁重写,或用例被复制而非引用导致引用次数被摊薄。可以按模块拆分,看低复用是集中在少数模块还是普遍存在;再抽样核对标记为复用的记录是否真实。确认是用例组织方式的问题后,再考虑合并重复用例、建立引用规范等动作。把复用率直接设为考核目标,容易诱发复制用例或虚增引用等失真行为。
ONES 测试管理能否直接导出计算复用率所需的记录?
ONES TestCase 支持用例库组织与自定义用例属性,用例属性支持筛选,也支持用例导出与本地备份;测试用例可与需求、任务关联,测试计划与迭代关联。这些能力为整理用例主数据和关联记录提供了基础。复用率属于派生指标,计算仍以导出的原始记录为准;是否内置复用率报表、引用记录与执行明细能否按字段导出,需按具体版本核验。
