测试通过率如何计算:口径、公式与结果解读

测试通过率通常按“通过用例数÷已执行用例数×100%”计算,分母取已执行用例,未执行用例不计入。计算前需要固定用例粒度、执行状态判定、统计范围与快照时点,并同时报告执行率、阻塞用例数和缺陷情况,才能判断这个数字是否可信。



要点总览(TL;DR)


  • 测试通过率=通过用例数÷已执行用例数×100%,分母取已执行用例,未执行用例不计入。
  • 计算前固定用例粒度、状态判定规则、统计范围与快照时点,并同时报告执行率、阻塞数和缺陷情况。
  • 阻塞与跳过是否计入分母属于口径选择,需在测试计划中约定并全篇一致,分母为零时标注为不适用。
  • 高通过率可能来自用例覆盖不足或执行范围收窄,不同轮次与不同用例集之间不可直接比较。
  • 通过率只描述已执行部分的判定结果,发布判断仍需结合缺陷严重度与遗留风险评估。


测试通过率要回答哪个问题


测试通过率回答的是一个范围明确的问题:在当前测试轮次或当前版本中,已经执行过的用例里有多大比例达到了预期结果。它衡量的是已执行部分的验证质量,适合用来判断这一轮测试是否接近收尾、哪些模块的验证结果稳定、哪些区域需要补充验证。


这个指标与执行率、缺陷密度承担不同职责。执行率反映测试进度,说明计划中的用例有多少已经跑过;缺陷密度反映问题集中程度,说明单位范围内的缺陷数量。通过率只描述已执行用例的判定结果分布。三者放在一起看,才能形成对当前测试状态的完整判断。


本文聚焦单个测试轮次或版本内的通过率计算与解读。组织级质量趋势分析、发布审批与质量门禁规则属于相邻主题,需要结合多轮数据、缺陷趋势和发布标准单独设计,本文不展开。



分子分母怎么定:通过率的口径与统计范围


通过率的分子是判定为通过的用例数,分母是已执行用例数,即已经产生执行结论的用例,包括通过、失败和阻塞等状态。未执行用例不进入分母。把未执行用例放进分母,得到的是执行完成情况与通过情况的混合值,数值会偏低,也无法说明已执行部分的真实表现。


用例粒度需要事先约定。按用例条数统计适合大多数功能测试场景,一条用例对应一个执行结论;按步骤或场景统计适合一条用例包含多个独立验证点的场景,此时每个步骤或场景各自产生结论。两种粒度算出的数值不可直接比较,同一份报告内应保持一种粒度。


统计范围要写清楚四个要素:测试轮次、版本、模块和环境。同一版本在不同环境下的执行结果可能不同,同一模块在不同轮次中的用例集也可能变化。时间窗与快照时点同样需要固定,例如“截至某日某时的执行记录”,避免报告生成后数据继续变动导致前后数字不一致。


定义项 约定内容
分子 判定为通过的用例数
分母 已执行用例数(通过+失败+阻塞等已产生结论的用例)
单位 用例条数,或步骤/场景数,全篇统一
范围 指定测试轮次、版本、模块、环境
时间窗 明确的起止时间与数据快照时点


执行状态与数据来源的口径约定


状态定义决定分子分母的边界,需要在测试开始前写进测试计划。常见状态包括:通过,指实际结果与预期一致;失败,指实际结果与预期不一致且已确认;阻塞,指因环境、依赖或前置条件缺失无法完成验证;跳过,指本轮按计划不执行;未执行,指尚未产生任何执行结论。


阻塞与跳过是否计入分母属于口径选择。一种做法是把阻塞计入已执行,因为它已经产生了“无法验证”的结论,能反映测试受阻情况;另一种做法是单列阻塞数并从分母中剔除,让通过率只反映可验证部分。两种做法都能用,关键是全篇一致,并在报告中注明所选口径。跳过通常不计入分母,但需要单独披露数量。


数据来源应统一为测试管理工具中的执行记录与状态字段,避免从聊天记录、个人表格中手工汇总。重测和回归用例的计入方式也要约定:同一用例在多轮中重复执行时,按轮次分别统计,不把历史轮次的通过记录累加进当前轮次。状态未更新或缺失的记录应标记为待确认,在数据核对完成前不纳入计算。


状态 含义 是否计入分母 说明
通过 实际结果与预期一致 计入,同时计入分子 核心统计对象
失败 结果不一致且已确认 计入 应关联缺陷记录
阻塞 因外部条件无法验证 按约定,计入或单列 需披露数量
跳过 本轮按计划不执行 通常不计入 单独披露
未执行 尚无执行结论 不计入 进入执行率统计

当团队在工具中维护测试计划、分配执行人并记录每条用例的执行状态时,通过率就有了可追溯的取数基础。ONES 测试管理支持测试计划的规划和执行,可将用例分配执行人,并提供测试情况概览,用于了解测试计划的进度和通过率;未通过的用例可快速创建缺陷任务,在测试与研发团队间流转。具体采用哪种状态计入规则,仍需团队在测试计划中自行约定并保持一致。



计算步骤与公式


核心公式为:测试通过率=通过用例数÷已执行用例数×100%。配套公式为:执行率=已执行用例数÷计划用例数×100%。两个公式共用“已执行用例数”,但分母不同,报告时应并列呈现,避免用一个数字代替另一个。


按以下步骤计算,可以得到可复算的结果:


  1. 确定统计范围:选定测试轮次、版本、模块和环境,记录数据快照时点。
  2. 导出该范围内的用例清单,包含每条用例的执行状态和所属模块、优先级。
  3. 按约定规则归类状态,统计通过数、失败数、阻塞数、跳过数和未执行数。
  4. 计算已执行用例数:通过数+失败数+按约定计入的阻塞数。
  5. 代入公式计算总体通过率,再按模块或优先级分组重复计算。
  6. 同时计算执行率,并记录阻塞与未执行数量。

分组计算时,每个分组各自使用本组的分子分母,不对各组的通过率取平均,因为各组用例数量不同,简单平均会扭曲总体结果。分母为零时,通过率标注为“不适用”,不写 0%,因为没有任何执行结论时,通过率没有意义。结果一般保留一位小数,并在报告中注明单位与口径。



一个可复算的例子


假设某版本某轮测试计划用例 200 条,执行后状态分布为:通过 120 条,失败 20 条,阻塞 10 条,跳过 10 条,未执行 40 条。按“阻塞计入已执行”的口径计算。


正确算法:已执行用例数=120+20+10=150 条;通过率=120÷150×100%=80.0%;执行率=150÷200×100%=75.0%。报告中同时说明有 10 条阻塞、10 条跳过、40 条未执行。


错误算法:把未执行用例放进分母,得到 120÷200×100%=60.0%。这个数字混合了执行进度与执行结果,既不能说明已执行部分的通过情况,也无法与执行率区分,容易让读者误判测试质量。


模块 通过 失败 阻塞 已执行 通过率
模块 A 60 6 4 70 85.7%
模块 B 40 10 4 54 74.1%
模块 C 20 4 2 26 76.9%
合计 120 20 10 150 80.0%

分组结果显示模块 A 表现较好,模块 B 的失败数最多,需要优先排查。合计通过率 80.0% 由总数直接计算,与各组通过率的简单平均不同,报告中应使用合计口径描述整体情况。



结果怎么读:解读与限制


通过率需要与执行率、阻塞比例和缺陷情况一起读。执行率 75.0% 说明还有四分之一计划用例未跑完,此时 80.0% 的通过率只代表已执行部分;如果剩余未执行用例集中在高风险模块,整体结论仍需谨慎。阻塞用例占比偏高时,通过率反映的是可验证部分的表现,不能代表全部计划范围。


高通过率有多种来源。用例覆盖不足时,验证点少,容易通过;执行范围收窄时,只跑了稳定模块,数值也会偏高;判定标准放松时,边界情况被记为通过。解读时应回看用例集是否覆盖关键路径、本轮执行范围是否完整、失败用例是否都已关联缺陷并确认。


不同轮次、不同用例集之间的通过率不可直接比较。用例集在轮次间可能增删,执行范围可能调整,环境也可能变化。需要做趋势对比时,应固定用例集与统计口径,或同时披露用例集变化情况。通过率也不能替代缺陷严重度与遗留风险评估,发布判断需要结合未关闭缺陷的等级、影响范围和修复验证结果。把单一通过率当作全部质量结论,容易掩盖阻塞、未执行和严重缺陷带来的风险。



常见问题


测试通过率的分母为什么用已执行用例,而不是全部计划用例?


分母取已执行用例,是因为通过率要回答“已经跑过的用例里有多少达到预期”。未执行用例还没有产生任何结论,放进分母会把执行进度混进结果判定,算出的数值偏低,也无法与执行率区分。


计划用例数量并非无用,它对应执行率:已执行用例数÷计划用例数×100%。把通过率和执行率并列报告,读者既能知道已执行部分的通过情况,也能知道还有多少用例没跑。


阻塞用例应该计入分母吗?两种做法会带来什么差异?


两种做法都成立,差异在于通过率想表达什么。把阻塞计入已执行,是因为阻塞已经产生了“无法验证”的结论,计入后通过率会反映测试受阻的影响;把阻塞单列并从分母剔除,通过率只反映可验证部分,数值通常更高。


选择哪种口径,取决于报告读者更关心整体测试状态还是可验证部分的表现。无论选哪种,都要在指标定义中写明,并在报告中单独披露阻塞数量,避免同一份报告前后口径不一致。


同一用例在多轮测试中重复执行,通过率怎么统计?


按轮次分别统计,不把历史轮次的通过记录累加进当前轮次。每一轮的通过率使用本轮的执行结论计算,这样数字才能反映该轮的实际验证结果。


如果要做轮次间对比,需要固定用例集与统计口径,或同时说明用例集在轮次间的增删变化。用例集变动较大时,直接比较两个轮次的通过率容易得出误导性结论。


通过率算出来是 0%,说明测试质量很差吗?


不一定。先确认分母是否为零或极小:如果本轮只有少量用例执行且全部失败,0% 只代表这个小样本;如果没有任何执行结论,通过率应标注为“不适用”,写 0% 会让人误以为执行过且全部失败。


分母不为零时,0% 说明已执行用例全部未通过,此时应查看失败用例是否已关联缺陷、失败原因是否集中在同一模块或环境问题,再判断是质量问题还是执行条件问题。


团队刚开始统计通过率,最容易在哪个环节出错?


最常见的问题出在状态口径不统一:有人把阻塞算作失败,有人把跳过算作通过,有人用个人表格汇总而没有使用测试管理工具中的执行记录。这些差异会让同一批用例算出不同结果。


可行的做法是在测试计划中写清各状态的定义与计入规则,统一从测试管理工具取数,并在报告生成时记录快照时点。ONES 测试管理支持测试计划的规划和执行、将用例分配执行人,并提供测试情况概览用于了解进度和通过率,可作为统一取数的载体;具体状态计入规则仍需团队自行约定。