用途:当 Playwright、Maestro、Detox、XCUITest、Espresso 或 Appium 测试失败时,依据证据对失败进行分类,并决定是否修复、如何修复。优先级为 P0(关键)。
失败分类:SELECTOR_DRIFT(id/locator 变化)、TIMING_SYNC(竞态/等待,无状态变化)、DATA_ENV(fixture/seed/env 过期)、INFRA(网络/运行器/不稳定)、REAL_REGRESSION(产品行为确实改变)。需从 trace、截图、DOM diff 或产品 diff 等证据判断。
允许的修复:沿选择器阶梯上移定位方式(如 ID 变化时改用 getByRole);用显式状态等待替换 sleep;修复过期的 fixture/seed;仅对 INFRA 重试。
禁止的修复:不得弱化断言;不得在无工单与到期时间的情况下添加 test.skip/fixme;不得放宽匹配器;不得将超时放大超过 2 倍;不得盲目 --update-snapshots;不得捕获后继续;不得改动生产代码(那属于 REAL_REGRESSION,不是修复)。
结论:HEALED(连续 3 次绿色重跑验证,ASSERTION_DELTA: none)、REAL_BUG_DO_NOT_HEAL(转开发修复)、QUARANTINE_CANDIDATE(不稳定,转 flaky-triage)、BLOCKED(缺少证据产物)。
危险信号:“断言本来就太严”“产品变了所以更新期望值”“加个重试让它变绿”等理由不得用于修复,它们实为 REAL_BUG_DO_NOT_HEAL 或 QUARANTINE_CANDIDATE,绝非 HEALED。
限制:资料未提供具体安装命令、平台支持范围、收费方式与完整代码示例。