测试用例失效率如何统计与判断高低
测试用例失效率按“统计周期内被判定失效的用例数 ÷ 同期被执行或评审的用例总数”计算,分子分母必须限定在同一时间窗、同一用例范围和同一失效判定规则下。这个百分比本身不能直接说明用例质量好坏,需要结合失效原因分布、用例基数和执行覆盖率一起解读。下面从统计目标、指标定义、取数口径、计算核验、示例、高低判断到落地动作,给出一套可复算的方法。
Table of Contents
要点总览(TL;DR)
- 失效率 = 统计周期内失效用例数 ÷ 同期被执行或评审的用例总数 × 100%,分子分母须限定同一时间窗、同一用例范围和同一失效判定规则。
- 失效原因至少拆成设计缺陷型与需求变更型两类,前者修订用例,后者同步需求,混在一起看会把流程问题误判为用例质量问题。
- 分母为零时显示“无数据”而非0%;样本过小时同时给出分子分母绝对数,或合并多个周期观察。
- 判断高低靠历史基线、同类模块对比和原因结构,覆盖率与用例基数会干扰读数,单看百分比无法下结论。
- 统计结果应进入失效用例复核、修订跟踪和评审检查项,由固定角色按周期执行,ONES TestCase 可在同一套记录中承载用例、缺陷与修订跟踪。
统计失效率要回答什么问题
失效率统计的第一步是明确它服务于什么决策。常见用途有两类:一是用例维护,找出内容已经过时、步骤有误、预期结果写错的用例,安排修订或废弃;二是质量改进,观察某个模块、某个版本的需求理解偏差或设计遗漏是否集中出现。用途不同,统计范围和汇报对象也不同。
因此需要先把“失效”拆成至少两类。设计缺陷型失效指用例本身的步骤、数据或预期结果有误,执行时无法按预期走通;需求变更型失效指需求已经调整,用例内容尚未同步,属于正常的版本演进。两类失效都计入失效率分子,但后续处理动作完全不同:前者修订用例,后者同步需求变更并更新用例。若混在一起看,失效率升高可能只是需求迭代快,不能直接归因于用例写得差。
统计结果的使用者通常包括测试负责人、用例评审人和模块负责人。测试负责人关注整体趋势和资源投入方向,评审人关注具体用例的修订优先级,模块负责人关注本模块的需求理解是否到位。在统计开始前约定好这三类角色各自看哪张表、做什么决定,可以避免指标算出来却无人使用。
分子分母怎么定:失效率的指标与范围
失效率的公式为:失效率 = 统计周期内失效用例数 ÷ 同期被执行或评审的用例总数 × 100%,单位为百分比。公式简单,难点在于分子分母的边界必须写清楚,否则不同人算出的结果无法比较。
| 指标要素 | 定义 | 需要写明的口径 |
|---|---|---|
| 分子 | 被判定为失效的用例数 | 失效判定规则、是否去重、是否含需求变更型失效 |
| 分母 | 同期被执行或评审的用例总数 | 按用例条数还是执行次数计、是否含未执行用例 |
| 时间窗 | 统计起止日期 | 按执行日期还是缺陷创建日期归属 |
| 用例版本 | 参与统计的用例版本 | 以统计期末的有效版本为准,还是按执行时版本 |
| 单位 | 百分比 | 保留一位或两位小数,统一四舍五入规则 |
分子的失效判定标准建议写成可核验的条件,例如“执行结果为不通过,且经复核确认原因属于用例内容问题或需求已变更”。同一用例在一个周期内多次执行失败,按用例条数计一次,避免重复执行放大分子。分母建议按用例条数计,即周期内至少被执行一次或进入评审的用例数量;如果团队习惯按执行次数统计,需要在报表标题中注明“按执行次数计”,两种口径不能混用。
新增、修改、废弃用例的处理规则要提前约定。新增用例在统计期内已执行或已评审的,计入分母;统计期后才纳入执行的,不计入。修改后的用例以修改后的版本参与统计,修改前的执行记录不重复计入。废弃用例从废弃之日起退出分母,历史周期的数据不追溯调整,保证各期数据可复算。
数据从哪里取、口径如何统一
失效率的数据主要来自三处:用例执行记录、缺陷单和用例评审记录。执行记录提供“哪些用例执行了、结果如何”,缺陷单提供“失败原因是什么”,评审记录补充“未执行但经评审判定需要修改的用例”。三处数据通过用例编号关联,才能把分子中的每一条失效追溯到具体原因。
建议在用例或缺陷上设置失效原因分类字段,至少覆盖:用例步骤或预期结果错误、测试数据问题、需求已变更、环境或工具问题、产品缺陷。前两类归入设计缺陷型失效,第三类归入需求变更型失效,环境问题通常不计入失效率分子或在报表中单列,产品缺陷属于被测对象的问题,是否计入取决于统计目标,需要在口径说明中写清楚。
缺失数据和重复记录是口径不一致的主要来源。执行记录缺失时,不用推测结果补填,将该用例排除出分母并在报表附注中说明排除数量。同一用例因重试产生多条执行记录时,以最终有效结果为准,中间失败记录不重复计入分子。跨项目口径不一致时,先对齐三件事:失效判定规则、分母计数单位、时间窗归属方式,再合并数据;无法对齐的项目单独出表,不做简单加总。
计算与核验步骤
按以下步骤可以从原始记录算出可复算的失效率:
- 确定统计周期和用例范围,导出周期内所有执行记录和评审记录,按用例编号去重。
- 标记每条记录的失效状态和失效原因,形成分子候选清单。
- 统计分母:周期内被执行或评审的用例条数,剔除重复和无效记录。
- 用分子除以分母,按约定精度保留小数,同时输出分子、分母的绝对数。
- 按模块、版本、用例类型分组重复上述计算,形成分组表。
- 抽取一定比例的失效用例复核原因分类,核对与缺陷单、评审记录是否一致。
分母为零时,失效率没有定义,报表中显示“无数据”而不是0%,避免被误读为质量很好。样本过小时,例如某模块周期内只执行了5条用例,失效率的波动很大,建议同时给出分子分母绝对数,或合并多个周期观察,不单独用百分比下结论。
核验可以采用两种方式:一是抽样复核,从分子中随机抽取若干条,检查失效判定和原因分类是否有依据;二是交叉验证,用缺陷单数量与失效用例数量做比对,差异较大的部分逐条核对关联关系。分组统计时保持与总体相同的口径,分组之和应能还原总体数据,出现不一致时先查重复记录和归属错误。
一个可复算的统计示例
假设某项目一个统计周期内,用例库中有效用例共420条,其中周期内被执行或评审的有300条,判定失效的有36条。按公式计算:36 ÷ 300 × 100% = 12.0%。
对36条失效用例按原因拆分:用例步骤或预期结果错误14条,占38.9%;测试数据问题5条,占13.9%;需求已变更12条,占33.3%;环境或工具问题5条,占13.9%。若口径约定环境问题不计入分子,则调整后的失效率为31 ÷ 300 × 100% ≈ 10.3%。两种结果都要在报表中注明口径,不能只报一个数字。
| 模块 | 执行或评审用例数 | 失效用例数 | 失效率 |
|---|---|---|---|
| 订单 | 120 | 9 | 7.5% |
| 支付 | 80 | 16 | 20.0% |
| 账户 | 100 | 11 | 11.0% |
分组对比时,支付模块失效率明显高于其他模块,进一步看原因分布,若16条中有10条属于需求已变更,说明该模块需求调整频繁,用例同步滞后,处理重点应放在需求变更后的用例更新流程,而不是简单要求测试人员重写用例。示例中的口径假设为:按用例条数计、环境问题计入分子、统计周期为一个月,实际使用时按团队约定替换。
失效率高低如何判断及常见误读
判断高低需要参照系。常用做法有三种:与自身历史基线比较,看连续几个周期是上升还是下降;与同类模块比较,找出偏离整体水平的模块;与同类项目的经验区间比较,但这类区间只能作为参考,不能当作通用达标线。没有基线时,先积累两到三个周期的数据再判断趋势。
失效原因结构会直接影响结论。同样是12%的失效率,如果大部分来自需求变更,说明用例维护节奏需要跟上需求;如果大部分来自步骤和预期结果错误,说明用例设计和评审环节需要加强。只看总百分比,容易把流程问题误判为人员能力问题。
覆盖率和用例基数也会干扰读数。执行覆盖率低时,分母只包含少量被执行用例,失效率的代表性有限;用例基数很小的模块,一两条失效就能让百分比大幅波动。报表中应同时呈现覆盖率、分子分母绝对数,避免读者只盯百分比。
失效率不适合作为个人绩效的唯一依据。用例失效可能来自需求变更、环境不稳定、评审遗漏等多种因素,单指标无法区分责任归属。更合理的用法是把它作为团队级的过程观察指标,配合失效原因分布和修订完成情况一起看。
把统计落到日常管理动作
统计结果要进入流程才有价值。建议每个统计周期结束后,由测试负责人组织一次失效用例复核:逐条确认失效原因分类,设计缺陷型失效进入用例修订队列,需求变更型失效同步更新用例内容,环境问题记录到环境治理事项。复核完成后更新用例状态,并在下一个周期观察同类失效是否减少。
统计周期与责任人需要固定下来,例如按迭代或按月统计,由测试负责人出数、模块负责人确认原因分类、用例评审人跟踪修订完成情况。结果反馈到用例设计和评审环节时,可以把高频失效原因整理成评审检查项,例如需求变更后是否同步了关联用例、预期结果是否写明了可观察的判定条件。
这些动作需要测试管理与工作项记录来承载。ONES TestCase 支持用例与需求、任务关联,测试计划与迭代关联,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转;用例库中的用例属性支持筛选,也支持自定义用例属性,便于按模块、版本和失效原因组织复核清单。统计结果出来后,团队可以在同一套记录中完成失效用例的定位、缺陷关联和修订跟踪,让失效率从一张报表变成用例维护的输入。具体报表字段和统计口径以实际产品配置为准,团队仍需要在统计前把本文的指标定义卡落到自己的字段和流程中。
常见问题
用例在一个统计周期内多次执行失败,分子要算几次?
建议按用例条数计一次。同一用例在周期内因重试或回归产生多条失败记录时,以最终有效结果为准,中间失败记录不重复计入分子。如果团队确实需要观察执行层面的稳定性,可以另设“执行失败次数”指标单列,与失效率分开汇报,两类口径不要混在同一张表里。
环境或工具问题导致的失败,要不要计入失效率?
取决于统计目标,但必须在口径说明中写清楚。若失效率用于观察用例内容质量,环境或工具问题通常不计入分子,或单列一行供参考;若用于观察测试执行的整体顺畅程度,可以计入。两种做法都可行,关键是同一份报表在多个周期之间保持一致,调整口径时注明变更日期,避免趋势线被口径变化打断。
团队刚建立失效率指标,没有历史基线怎么判断高低?
先积累两到三个周期的数据再判断趋势,同时把分子分母绝对数、失效原因分布和覆盖率一起呈现。初期可以把重点放在原因结构上:设计缺陷型失效集中在哪些模块、哪些类型的用例,比纠结百分比本身更有行动价值。等数据稳定后,再设定团队内部的参考区间,并随用例规模和需求节奏定期复核。
失效率统计结果和缺陷数据对不上,先查什么?
先查关联关系,再查口径。逐条核对失效用例是否都关联了缺陷单或评审记录,差异较大的部分重点检查;然后确认缺陷单的创建日期与用例执行日期是否落在同一统计周期,以及分母是否按约定剔除了重复和无效记录。分组数据之和与总体不一致时,优先排查用例归属模块错误和重复计数。
统计出来的失效率,怎么落到具体的用例维护动作?
每个周期结束后组织一次失效用例复核,逐条确认原因分类:设计缺陷型进入修订队列,需求变更型同步更新用例内容,环境问题转入环境治理事项。复核完成后更新用例状态,下个周期观察同类失效是否减少。ONES TestCase 支持用例与需求、任务关联,未通过的用例可快速创建缺陷任务并在测试与研发团队间流转,用例属性支持筛选和自定义,便于按模块、版本和失效原因组织复核清单;具体报表字段与统计口径以实际产品配置为准。



