面向 Web 团队的浏览器更新回归分诊
在归因或回滚前,分离浏览器、应用、配置、平台与数据变化,建立可重复的更新回归证据。
BotBrowser Team
浏览器更新与新出现的失败经常同时发生,但相关性不是浏览器致因的证明。浏览器更新回归分诊要求团队保留首个已知正常(FKG)运行,重现首个已知异常(FKB)运行,并每次只改变一个边界。结果是下一位负责人和安全动作,而不是凭版本号猜测。BotBrowser 团队可以在受控 context 中重复获准的声明式旅程,但不能认证根因,也不能保证实验室结果覆盖所有生产环境。
固定两个比较点
为两次运行记录浏览器构建、操作系统、架构、配置状态、feature flag、应用 commit、测试数据、网络策略和完整旅程。仅说“旧浏览器正常”不够,因为 profile、平台、账户或服务器也可能变化。保留短回执:可见断言、时间、构建标识和工件路径。脱敏凭据、Cookie、token、完整页面文本和客户数据。
FKG 是同一声明式设置下最后一次通过的运行;FKB 是下一设置下最早可重复的失败。如果某一点只是凭记忆推断,应标为临时证据。无法重现的失败不是 FKB,而是间歇性线索。
使用单变量 fixture
从全新的 context 和合成记录开始,固定应用 commit、数据、profile seed、viewport、locale、权限和网络 fixture,只改变浏览器构建。如果失败仍在,另做只改变应用 commit 的比较,再分别比较 profile、平台和数据。不要一次清空所有状态来“修复”不匹配,否则会破坏比较。
fixture 应写明条件、预期可见结果和清理动作,例如 checkout-fkg-chrome-154 与 checkout-fkb-chrome-155。fixture 可以测试恢复界面,但不能证明真实支付、身份决定或远程写入发生。
回归分诊决策表
| 观察 | 临时负责人 | 下一项有边界动作 | 不要声称 |
|---|---|---|---|
| 同一 fixture 只在新浏览器失败 | 浏览器/发布 | 最小化复现并附 FKG/FKB 回执 | 浏览器一定是根因 |
| 两个版本都随应用 commit 失败 | 应用 | 二分自有改动并加兼容测试 | 回滚浏览器能修复 |
| 失败随 profile、扩展或权限变化 | 配置 | 重建 profile,与干净 seed 比较 | 干净 profile 代表所有用户 |
| 失败随 OS、GPU、驱动或平台变化 | 平台 | 在支持矩阵重跑并收集平台日志 | 所有系统结果相同 |
| 失败随数据或时序变化 | 数据/间歇性 | 隔离记录,在新 context 重试并记录方差 | 一次重试通过就清除首次失败 |
| 证据冲突或无法重现 | 未知 | 保持问题开放,继续缩小变量并指定负责人 | 仅凭相关性回滚 |
可复制的比较 worksheet
旅程与断言:
FKG:浏览器/构建 | OS/架构 | 应用 commit | profile seed | 数据键 | 结果
FKB:浏览器/构建 | OS/架构 | 应用 commit | profile seed | 数据键 | 结果
改变的变量:
重现次数(通过/失败):
可见症状与首个失败步骤:
工件与脱敏检查:
候选负责人:浏览器 | 应用 | 配置 | 平台 | 数据 | 未知
下一项有边界动作与停止条件:
回滚决定:暂缓 | 批准的临时回滚 | 不回滚
评审人与时间:
限定归属与回滚
回滚是带期限和负责人的缓解措施,不是根因结论。使用前定义受影响旅程、支持版本、监控信号、退出条件和前向修复通道。不要用浏览器回滚掩盖应用缺陷,也不要因为一个合成 fixture 通过就发布浏览器更新。参考 Chromium 报告指南和 MDN 兼容性指南。
BotBrowser 能力与限制
BotBrowser 受控 context 可以跨浏览器版本重复获准的声明式旅程,并让浏览器侧状态保持明确,因此便于 FKG/FKB 比较。BotBrowser 不会推断根因、不会替应用 fixture 提供确定性,也不保证生产环境一致性。浏览器回执应与服务器日志、业务结果和平台证据分开。高级功能文档说明可用控制,并不是回归认证。
关闭问题前确认 FKG/FKB 真实存在、只改了一个变量、负责人能重现症状、下一动作有停止条件。明确的未知比未经测试的自信回滚更安全。
让比较可执行。
先写清用户可见断言,例如“选择提交后出现确认并把焦点移到状态标题”。记录 URL 或自有 fixture、导航方式、合成数据、动作序列和清理步骤。不要把完整 profile 或无关历史带入比较。冷启动与热启动应分成不同单元,网络、locale、viewport 和 reduced-motion 也要保持一致。
间歇性失败应预先限定次数,例如每个单元运行十次,记录通过数、失败数、首个失败步骤和时间窗口。2/10 与 0/10 是后续实验的证据,不是根因证明。工件只保留短回执、最小 fixture、裁剪截图和脱敏日志;Cookie、授权头、token、完整 storage 与客户 profile 不应进入公开报告。
分诊结论写明已知事实、未知项、批准动作和关闭条件。临时浏览器固定版本要有负责人、期限和监控信号。修复后保留 FKG/FKB、原始报告和可见恢复断言,并添加回归测试。可参阅浏览器测试矩阵指南与浏览器发布验证清单。