首页/开发/软件测试速查/偶发用例的隔离流程
自动化测试66 条

偶发用例的隔离流程

隔离(quarantine)流程:确认 flaky 的用例先移出阻塞门槛(标记或迁入独立套件),记录责任人与期限;隔离数量与滞留时长都应纳入跟踪。

软件测试速查开发更新于 2026-10-13

偶发用例的隔离流程

隔离(quarantine)流程:确认 flaky 的用例先移出阻塞门槛(标记或迁入独立套件),记录责任人与期限;隔离数量与滞留时长都纳入跟踪。隔离的本质是止血:把不稳定用例从影响合并判断的位置挪开,同时保留它继续运行、继续暴露,等修复验证后再回归常规套件。

基本信息

判定入口连续失败与重跑结果不一致,先归因再隔离
隔离形态标记排除、迁入独立套件或降级为非阻塞
记录要素责任人、原因、期限、关联缺陷单
跟踪指标隔离数量、滞留时长、修复率
保持运行独立套件周期执行,保留暴露通道
解除条件修复验证稳定后回归常规套件
修复入口先复现根因(等待策略、数据竞争)再动手

隔离形态示意

隔离形态示意
pytest -m "not quarantined" -q      # 标记排除
# Playwright:test.fixme() 或独立 project 单独运行
# 隔离清单每周巡检:责任人、期限、状态

隔离状态跟踪

状态动作出口
新隔离归因并登记责任人与期限进入观察期
观察中独立套件继续执行稳定后解除隔离
已修复回归常规套件并观察无复发即关闭
超期升级处理或评估用例价值重新决策去留

典型使用场景

  • 合并阻塞:主干被 flaky 拦住时快速止血。
  • 发布窗口:不因个别不稳定用例延迟发布,但保留跟踪。
  • 治理周会:按隔离清单过责任人、期限与进展。
  • 根因分析:高频隔离的用例反查等待策略与数据隔离。
  • 度量汇报:隔离比例与平均滞留时长作为测试健康度指标。
  • 框架迁移:迁移期用隔离控制不稳定面。
隔离不等于关闭:缺少期限与责任人的隔离会演变为长期忽略。
高频失败用例优先修复:隔离名单按影响排序,而不是先来先修。
重跑通过不是修复证据:先归因(时序、数据、并发)再决定动作。

易错点

  • 隔离用例无人跟进,长期停留在隔离名单。
  • 隔离后完全不再运行,偶发问题失去被暴露的通道。
  • 把隔离当解决办法,真正的根因(等待、数据竞争)不治理。
  • 隔离清单没有期限与责任,数字只增不减。
  • 隔离原因不分类,统计不出主要矛盾(等待、数据还是产品缺陷)。

数据来源与参考

  • Google Testing Blog《Flaky Tests at Google and How We Mitigate Them》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌