评估自动化测试稳定性需要哪些数据与证据

评估自动化测试稳定性,核心是回答“同一脚本在相同条件下重复执行,结果是否一致”。为此需要收集四类证据:执行结果明细、失败归因记录、环境与依赖变更记录、时间窗内的趋势与重跑记录。在此基础上计算两个核心指标——剔除真实缺陷后的非预期失败率与同用例重跑一致率,并明确分母、时间窗和缺失值口径。单次通过率只能说明某一次运行的结果,不能作为稳定性结论。



要点总览(TL;DR)


  • 评估自动化测试稳定性,需要收集四类证据:执行结果明细、失败归因记录、环境与依赖变更记录、时间窗内的趋势与重跑记录。
  • 核心指标有两个:非预期失败率(非预期失败次数÷总执行次数)和重跑一致率(重跑结果相同的用例数÷被重跑的用例数)。
  • 指标必须连同分母口径、时间窗和缺失值处理规则一起解释;跳过用例、分母为零等情况要有明确约定。
  • 单次通过率不能作为稳定性结论;跨周期对比需保证用例集、环境配置和统计口径一致。
  • 评估结论用于判断用例集能否纳入门禁,以及哪些用例值得优先修复或下线。


稳定性评估要回答什么问题


稳定性在自动化测试语境下指同一脚本在相同条件下重复执行时结果保持一致的程度。评估前先把这个问题拆成可验证的子问题:同一用例连续运行是否出现结果翻转;失败是否集中在特定环境、特定数据或特定时段;失败中有多少来自脚本自身缺陷,多少来自产品真实缺陷。回答这些问题,才能判断一套自动化测试是否可信。


评估对象需要先界定清楚。对象可以是一条具体脚本、一组核心用例集,也可以是整条持续集成流水线。三者口径不同:脚本级评估关注单点可靠性,用例集级评估关注整体可回归性,流水线级评估还叠加了调度、并发和环境准备的影响。对象不同,取数范围和指标分母随之变化,混在一起统计会得出误导性结论。


评估结论通常服务两类决策:一是判断该用例集能否纳入合并门禁或发布门禁,即失败是否足以阻断流程;二是判断是否值得继续投入维护,例如某批用例长期不稳定、修复成本高于收益时考虑重构或下线。明确用途后,评估的严格程度和时间窗长度也随之确定。



需要采集哪些数据与证据


四类证据分别回答“发生了什么”“为什么失败”“条件是否变化”“长期表现如何”,缺一类都会削弱结论的可信度。


证据类别 具体内容 主要用途
执行结果明细 运行时间、用例标识、结果状态(通过/失败/跳过)、失败步骤、日志、截图或录屏 构成指标分子分母的基础数据,支撑失败复现
失败归因记录 每次失败标注为脚本缺陷、环境波动、测试数据问题、产品真实缺陷 从失败总数中剔除真实缺陷,得到非预期失败
环境与依赖变更 镜像版本、依赖库版本、并发与资源配置、测试数据版本 解释指标波动,判断跨周期是否可比
趋势与重跑记录 同一用例多次运行结果、按日/周汇总的执行统计 计算重跑一致率,观察长期趋势

执行结果明细要保留到失败步骤和日志级别,仅有“失败”状态无法支撑归因。失败归因记录建议在失败发生后的短时间内完成标注,延迟越久,复现和判断成本越高。环境与依赖变更记录不必逐次全量登记,但镜像、依赖版本、并发配置和测试数据版本这几类高频影响因素应有变更留痕。重跑记录需要保留原始运行与重跑之间的对应关系,否则无法计算一致率。


在协同管理层面,执行记录、失败归因和缺陷单如果分散在不同系统,取数和核对成本会显著上升。ONES 可以把测试执行记录与缺陷工作项关联起来,让失败归因结果直接落到对应缺陷或任务上,便于后续按归因类别汇总统计,也方便评估结论转化为具体的修复或维护工作项。



指标口径与计算方式


两个核心指标需要固定公式、分子分母和时间窗,否则不同人算出的结果无法比较。


指标 公式 分子 分母 说明
非预期失败率 非预期失败次数 ÷ 总执行次数 归因为脚本缺陷、环境波动、测试数据问题的失败次数 统计时间窗内的有效执行次数 剔除产品真实缺陷导致的失败,反映测试自身可靠性
重跑一致率 重跑结果相同的用例数 ÷ 被重跑的用例数 首次运行与重跑结果一致的用例数 时间窗内实际发生重跑的用例数 衡量结果翻转程度,一致率越低说明越不稳定

分母口径要提前约定。跳过用例是否计入总执行次数,取决于跳过原因:因环境不可用而跳过,通常不计入分母并单独标注;因用例设计主动跳过,可计入分母但需在报告中单列。分母为零时(例如时间窗内没有执行或没有重跑),指标记为“无数据”,不能记为0%或100%。


时间窗与统计粒度同样需要固定。常见做法是按周或按迭代汇总,同时保留按用例、按流水线两个维度的分层结果。按用例看能定位具体不稳定点,按流水线看能反映整体门禁可信度。跨周期对比时,只有用例集、环境配置和统计口径保持一致,趋势才有可比性。



评估步骤:从取数到结论


评估按以下顺序推进,每一步都有明确产物,便于复核。


  1. 确定范围与时间窗。锁定待评估的用例集和流水线,明确起止日期与统计粒度。产物是一页评估范围说明,写清对象、时间窗和排除项。
  2. 导出执行明细并完成失败归因。按时间窗导出全部运行记录,逐条标注失败原因类别。产物是带归因标签的执行明细表,未标注的记录单独列出。
  3. 按公式计算指标并分层对比。分别计算整体与分层(按用例、按流水线)的非预期失败率和重跑一致率。产物是指标计算表,附分母和缺失值说明。
  4. 结合变更记录解释波动,形成结论。对照环境与依赖变更记录,判断指标变化是真实改善还是条件变化所致。产物是评估结论与待改进项清单,明确哪些用例需要修复、哪些可纳入门禁。

第三步的分层对比尤其重要。整体指标可能掩盖局部问题:一条流水线整体非预期失败率不高,但少数用例反复翻转,纳入门禁后仍会频繁误报。因此建议同时输出失败次数排名靠前的用例清单,作为维护优先级依据。



一个可复算的评估例子


以下为演示情景,数字仅用于说明计算过程。


某用例集在一个四周时间窗内共执行2000次,其中失败160次。归因结果为:产品真实缺陷60次,脚本缺陷40次,环境波动35次,测试数据问题25次。同期有300个用例发生过重跑,其中重跑结果与首次一致的240个。


非预期失败率 =(40 + 35 + 25)÷ 2000 = 100 ÷ 2000 = 5%。重跑一致率 = 240 ÷ 300 = 80%。


结果解读:5%的非预期失败率意味着每20次执行约有1次失败与产品无关,若直接纳入门禁,会带来可观的误报阻断。80%的重跑一致率说明结果翻转较明显,需要优先排查翻转集中的用例。结合变更记录,若环境波动类失败集中在某次镜像升级之后,则应先修复环境问题再复评。决策上,可先将翻转最频繁的用例移出门禁范围进行专项修复,待指标改善后再重新纳入。



结果解读与常见限制


两个指标反映的是执行结果的一致性,不直接等于产品质量或测试覆盖率。一套稳定的自动化测试可能覆盖范围有限,一套覆盖广的测试也可能因环境问题频繁失败。评估结论应与其他质量证据配合使用。


跨周期比较存在不可比情形。环境差异、用例集增删、并发配置调整都会改变指标基数,直接对比两个周期的数值容易得出错误结论。建议在报告中标注口径变化,必要时只做同口径区间内的对比。


样本量过小会放大随机波动。执行次数很少的用例,其失败率缺乏统计意义,宜单独标注而非并入整体结论。失败归因带有主观性,不同人标注同一失败可能得出不同类别,建议约定归因规则并抽样复核。


缺失数据必须显式标注。未采集到日志、未完成归因或未记录环境变更的部分,应在指标旁注明覆盖比例,不能默认视为通过或稳定。只有数据完整度和指标数值一起呈现,稳定性评估结论才具备可复核的基础。



常见问题


时间窗内执行次数很少的用例,失败率还能直接并入整体结论吗?


不建议直接并入。执行次数很少的用例,其失败率受随机波动影响大,缺乏统计意义。较稳妥的做法是单独标注这类用例的执行次数和失败次数,在整体指标旁注明其占比,避免少量样本拉高或拉低整体数值。如果确实需要纳入,可以设定最低执行次数门槛,未达门槛的用例只做清单展示、不参与指标计算。


失败归因由不同人标注,结果不一致怎么办?


归因主观性是稳定性评估的常见偏差来源。可以先约定归因规则,明确脚本缺陷、环境波动、测试数据问题、产品真实缺陷四类的判定依据和边界案例;再对已标注记录做抽样复核,统计不同人标注的一致程度。对争议较大的失败,保留日志和复现步骤,由测试负责人裁定。归因规则和复核结果应随评估报告一起留存,便于后续周期沿用同一口径。


环境或依赖发生变更后,之前的稳定性指标还能继续对比吗?


需要谨慎处理。镜像升级、依赖版本调整、并发配置变化都会改变执行条件,跨变更点的指标数值不具备直接可比性。建议在报告中标注变更时间和内容,将评估区间按变更点切分,只在同口径区间内做趋势对比。如果变更影响面较大,可以重新积累一个完整时间窗的数据后再下结论。


部分执行记录缺少日志或未完成归因,指标该怎么呈现?


缺失数据要显式标注,不能默认视为通过或稳定。可以在指标旁注明数据覆盖比例,例如归因完成率、日志完整率,并单列未归因的失败次数。如果缺失比例较高,指标结论应标注为参考值,待补齐数据后复算。把数据完整度和指标数值一起呈现,结论才具备可复核的基础。


评估结论出来后,如何落到具体的维护动作上?


结论通常对应两类动作:一是门禁决策,把非预期失败率偏高或翻转频繁的用例暂时移出门禁范围,避免误报阻断;二是维护决策,按失败次数排名确定优先修复的用例,修复后重新评估再决定是否纳入。执行记录、归因结果和缺陷单如果能在同一管理流程中关联,修复项可以直接转为工作项跟踪,减少结论到行动之间的流转损耗。ONES 支持测试执行记录与缺陷工作项关联,可用于承接这一环节。