测试执行进度用一组可复算的指标衡量测试运行过程,核心是执行率、通过率、阻塞率与剩余工作量。统计前要固定用例范围、时间窗和状态定义,按用例数计数,并处理分母为零、用例中途增删和状态回退。本文给出公式、取数口径、计算步骤和一个完整算例,并说明结果能说明什么、不能说明什么。
要点总览(TL;DR)
- 测试执行进度用四个指标衡量:执行率=已执行用例数÷计划执行用例数,通过率=通过用例数÷已执行用例数,阻塞率=阻塞用例数÷已执行用例数,剩余工作量=计划用例数−已执行用例数。
- 统计前固定三件事:用例范围按测试计划或模块圈定,时间窗给出精确截止时点,状态至少区分未执行、执行中、通过、失败、阻塞、跳过,跳过用例是否计入分母需书面约定。
- 计算按用例数计数并保留中间数,分母为零时标注“无计划用例”而不写0%,用例增删同时给出期初与期末分母,跨期比较统一使用同一分母口径。
- 执行率说明跑了多少,状态回退影响的是通过率,两个指标分开看;阻塞率反映外部依赖,不宜当作团队效率指标。
- 进度指标不构成质量结论,缺陷修复与验证跟踪、测试报告与质量评估属于另外的主题,只在结果衔接处说明边界。
测试执行进度要回答什么问题
测试执行进度评估要回答四个问题:计划要执行多少用例、实际执行了多少、卡在哪些用例上、还剩多少没跑。这四个问题分别对应计划用例总数、已执行用例数、阻塞用例数和剩余工作量。回答清楚这四个问题,测试负责人才能判断当前轮次能否按计划收口,以及需要向谁协调资源。
评估前先明确汇报对象和周期。向项目管理层汇报,通常关注整体执行率、剩余工作量和阻塞项对上线时间的影响;向测试组内部同步,则更关注按模块、按执行人拆分的未执行清单和失败用例分布。周期可以按日、按轮次或按里程碑节点设定,一旦确定,跨期比较就沿用同一周期口径。
本文的范围限定在测试运行过程,即用例从计划到执行完成这一段。缺陷修复闭环与验证跟踪、测试报告与质量评估的编制方法属于另外的主题,本文只在结果衔接处说明边界。这样划分的原因是:执行进度回答“跑了多少”,缺陷状态回答“修了多少”,质量结论回答“能不能放心发”,三者混在一起会让任何一个指标都失去解释力。
进度指标与统计范围怎么定
建议固定四个核心指标,每个指标都明确分子、分母和单位。单位统一用“用例数”,不用主观完成百分比,避免不同人对“完成八成”理解不一致。
| 指标 | 分子 | 分母 | 单位 | 回答的问题 |
|---|---|---|---|---|
| 执行率 | 已执行用例数 | 计划执行用例数 | % | 计划内的用例跑了多少 |
| 通过率 | 通过用例数 | 已执行用例数 | % | 跑过的用例里多少通过 |
| 阻塞率 | 阻塞用例数 | 已执行用例数 | % | 执行中多少用例被外部条件卡住 |
| 剩余工作量 | 计划用例数 − 已执行用例数 | 条 | 还有多少用例没跑 | |
用例范围要按测试计划、模块或版本圈定,并在统计前写清楚。常见做法是以一个测试计划为统计单元,计划内包含的用例构成分母;如果按模块汇报,则把计划用例按模块字段拆分,各模块分母之和应等于计划总数。跨版本比较时,要确认两个版本的分母来自同一圈定规则。
时间窗要给出统计截止时点,精确到日期,必要时精确到时刻。按日统计时,当天新增的执行记录计入当天;按轮次统计时,以轮次开始到截止时点的累计执行记录为准。截止时点之后补录的记录不回溯修改已发布的数字,而是在下一期体现,这样历史汇报可复核。
状态定义至少区分六类:未执行、执行中、通过、失败、阻塞、跳过。其中“已执行”通常包含通过、失败、阻塞三类,执行中是否计入已执行要在口径中写明,建议单列,不计入已执行。跳过用例是否进入分母,需要统计前书面约定:因需求取消而跳过的用例可以从分母剔除,因环境暂不支持而跳过的用例建议保留在分母并单独标注,两种处理不能在同一份报表里混用。
数据从哪里取、口径怎么统一
数据主要来自三处:测试用例库提供用例清单和所属计划、模块、优先级;执行记录提供每条用例的最新状态和执行时间;缺陷关联提供失败用例对应的缺陷编号,用于解释失败分布。三处数据通过用例ID对齐,统计以用例库的清单为基准,执行记录为状态来源。
必要字段包括:用例ID、用例标题、所属测试计划、所属模块、优先级、当前状态、最近执行时间、执行人、关联缺陷ID。缺少用例ID或所属计划字段的记录无法归入统计范围,应在取数阶段剔除并记录剔除条数,避免分母悄悄变小。
同一用例在一轮内可能被执行多次,统计以截止时点的最新状态为准,历史执行记录保留用于复核,不重复计数。状态变更历史要保留,至少记录每次变更的时间、原状态和新状态,这样状态回退时能说明是哪个环节导致数字变化。缺失状态按未执行处理,并在数据质量说明中列出缺失条数。
口径统一的关键是同一份报表只用一个版本的定义。如果中途调整了跳过用例的处理方式或执行中的归类,要在报表上标注口径版本和生效日期,跨期对比时只比较口径相同的两期。ONES 测试管理支持测试计划的规划与执行,并可从多维度概览测试计划,用例可分配执行人;这些能力承载的是执行记录的产生和汇总,具体进度与通过率的计算口径仍需团队按上述规则自行约定并在系统中核对取数方式。
计算与统计步骤
计算按以下步骤进行,每一步都留下可复核的中间数。
- 确定统计单元和截止时点,导出该测试计划下的全部用例清单,得到计划用例数。
- 按最新状态给每条用例打标,统计通过、失败、阻塞、执行中、未执行、跳过的条数,六类之和应等于计划用例数(若跳过已从分母剔除,则需单独说明)。
- 计算已执行用例数 = 通过 + 失败 + 阻塞(按约定是否含执行中)。
- 代入公式:执行率 = 已执行 ÷ 计划 × 100%;通过率 = 通过 ÷ 已执行 × 100%;阻塞率 = 阻塞 ÷ 已执行 × 100%;剩余工作量 = 计划 − 已执行。
- 按模块和优先级分组重复第2至4步,检查各组计划数之和是否等于总数。
- 与上一期数字对比,标注新增执行、状态回退和用例增删三类变动。
分母为零时,执行率和通过率不计算,报表标注“无计划用例”,剩余工作量记为零,不用0%代替,避免被误读为“一条都没跑”。用例中途增删要记录变更时点和变更条数,新增用例从加入时点起计入分母,删除用例从移除时点起退出分母,当期报表同时给出“期初分母”“期末分母”和“按期末分母重算的执行率”,跨期比较统一使用期末分母口径。
按日累计时,每日执行率 = 截至当日已执行累计数 ÷ 当日计划用例数;按轮次累计时,用轮次内累计已执行数除以轮次计划数。两种方式不能混在同一张趋势图里,否则曲线会出现无法解释的跳变。
一个完整算例
假设某版本第一轮测试计划包含120条用例,截止周五18:00的统计结果如下(示例数据,仅用于演示计算)。
| 状态 | 用例数 | 说明 |
|---|---|---|
| 通过 | 62 | 执行通过 |
| 失败 | 18 | 已关联缺陷 |
| 阻塞 | 10 | 等待环境或上游数据 |
| 执行中 | 5 | 不计入已执行 |
| 未执行 | 22 | 尚未开始 |
| 跳过 | 3 | 需求取消,从分母剔除 |
| 合计 | 120 | 计划用例总数 |
先确定分母:计划120条,剔除跳过的3条,计划执行用例数为117条。已执行 = 62 + 18 + 10 = 90条。剩余工作量 = 117 − 90 = 27条。执行率 = 90 ÷ 117 ≈ 76.9%。通过率 = 62 ÷ 90 ≈ 68.9%。阻塞率 = 10 ÷ 90 ≈ 11.1%。
按模块分组后,假设支付模块计划40条、已执行38条,执行率95%;订单模块计划45条、已执行30条,执行率66.7%;账户模块计划32条、已执行22条,执行率68.8%。三个模块计划数之和117条,与总数一致。整体执行率接近八成,但订单模块明显落后,剩余27条中有15条集中在订单模块,进度判断应落到这个模块上,而不是只看整体数字。
状态回退的重算示例:周六复核时发现订单模块有4条此前标记通过的用例因新缺陷复现改为失败。已执行数仍为90条,执行率不变;通过数变为58条,通过率降为58 ÷ 90 ≈ 64.4%,失败数变为22条。这说明执行率反映“跑了多少”,状态回退影响的是通过率,两个指标要分开看。若同时新增5条用例,期末分母变为122条,按期末分母重算执行率为90 ÷ 122 ≈ 73.8%,与上期比较时应使用同一分母口径。
结果怎么解读、有哪些限制
执行率高说明计划内用例大部分已经跑过,不能据此判断质量好。通过率要结合用例覆盖范围和缺陷分布看:通过率高但用例集中在低风险路径,或者失败用例集中在核心模块,质量结论都会不同。把执行率和通过率放在一起看,再叠加阻塞清单和失败用例的模块分布,才能形成对当前轮次的完整判断。
阻塞率反映的是外部依赖状况,例如环境未就绪、上游数据未提供、依赖版本未发布,它衡量的是执行受阻程度,不宜直接当作团队效率指标。阻塞率高时,处理动作是列出阻塞用例和解除条件、指定协调人,而不是催促执行人加快速度。
分母变化会让跨期数字不可比。用例增删、跳过规则调整、统计范围从模块改为计划,都会改变分母,此时环比数字的升降可能来自口径变化而非执行进展。发布进度数字时附上分母和口径版本,是保证可复核的最低要求。
本文不设通用达标线。执行率目标应结合测试计划剩余时间、风险等级和发布窗口确定,例如高风险模块要求执行率达到计划约定值才进入回归,低风险模块可以按抽样执行。目标写进测试计划,统计时对照目标判断,而不是套用一个固定百分比。
进度指标与缺陷修复、测试报告的边界要分清:执行进度说明用例运行到哪一步,失败用例转成缺陷后的修复和验证状态属于缺陷跟踪范围,测试报告则是在进度和缺陷数据基础上形成的阶段性结论。ONES 测试管理支持未通过的用例快速创建缺陷任务,也支持自动生成测试报告和自定义报告模板,执行记录、缺陷和报告由此衔接;报告中的质量判断仍需结合覆盖范围和缺陷情况单独论证,不能由执行率直接推出。
常见问题
跳过用例到底算不算进执行率的分母?
两种处理都可行,关键是统计前书面约定并在同一份报表里保持一致。因需求取消而跳过的用例可以从分母剔除,因为它已不属于本轮要验证的范围;因环境暂不支持而跳过的用例建议保留在分母并单独标注,否则执行率会虚高。若中途调整了处理方式,要在报表上标注口径版本和生效日期,跨期对比只比较口径相同的两期。
用例在一轮里被执行了多次,进度按哪一次算?
按截止时点的最新状态计一次,历史执行记录保留用于复核,不重复计数。这样执行率的分母和分子都按用例条数计,不会因为反复回归而虚增。状态变更历史建议保留每次变更的时间、原状态和新状态,状态回退时能说明数字变化来自哪个环节。
执行率已经很高,能不能直接判断这轮测试可以收口?
不能只看执行率。执行率高只说明计划内用例大部分跑过,还要看通过率、失败用例的模块分布和阻塞清单。如果剩余未执行用例集中在核心模块,或者失败用例集中在高风险路径,即使执行率接近计划值也需要继续验证。收口判断应结合测试计划约定的目标、剩余时间和风险等级一起做。
统计中途新增或删除了用例,环比数字怎么处理?
记录变更时点和变更条数,新增用例从加入时点起计入分母,删除用例从移除时点起退出分母。当期报表同时给出期初分母、期末分母和按期末分母重算的执行率,跨期比较统一使用期末分母口径。这样环比数字的升降能区分是执行进展带来的,还是分母变化带来的。
用测试管理工具记录执行情况时,需要核对哪些取数口径?
重点核对三处:系统概览里的进度和通过率按什么范围统计,是否包含跳过用例;用例状态类型与团队约定的六类状态如何对应;执行记录能否按测试计划和截止时点导出。ONES 测试管理支持测试计划的规划与执行,可从多维度概览测试计划,并提供测试情况概览查看进度和通过率,用例可分配执行人;具体计算口径仍需团队按本文规则约定,并在系统中核对取数方式后再发布数字。
