Chrome 改成兩週更新後,前端測試排程怎麼調整?
瀏覽器版本更新變快,受影響的不只是使用者收到更新的時間。前端團隊原本可能每四週安排一次瀏覽器回歸,現在 Chrome 153 起 Stable 改成兩週一個 major release;如果 CI、企業部署或支援矩陣仍用四週節奏,新的 HTML、CSS、JavaScript 和行為修正就可能沒有被及時看見。
Chrome 官方在 2026 年 9 月 8 日宣布兩週更新週期正式啟用,同一天 Chrome 153 進入 Stable,Chrome 154 已在 Beta。直接答案是:把「追版本」改成「每個 Stable 週期都有固定 smoke test,每個 Beta 週期都有早期驗證」,並把 Extended Stable 當成另一條部署軌,不要只把原本四週排程切成兩半。
先分清 Stable、Beta 和 Extended Stable
Chrome 153 的新節奏包含三種不同目的的 channel:
| Channel | 官方節奏 | 適合拿來做什麼 |
|---|---|---|
| Stable | 每兩週收到功能、效能和 bug fix 更新 | 驗證正式使用者即將遇到的版本,維持支援矩陣 |
| Beta | 提前取得下一個 Stable 版本 | 讓 CI 和人工 smoke test 先發現相容性問題 |
| Extended Stable | 安全修正維持每週回補,主要功能里程碑約每八週 | 需要較長企業驗證窗口的部署;不能拿它當成最新 Web API 基線 |
截至 9 月 8 日,官方列出的例子是 Chrome 154 Beta 預計在 9 月 22 日進入 Stable。這個日期會隨後續公告更新,所以排程應讀取 Chrome release notes 或 Chrome Status Roadmap,不要把文章中的日期硬編碼成長期規則。
Extended Stable 的重點是「功能更新較慢,不等於安全更新停止」。如果你的企業或嵌入式產品使用 Extended Stable,必須把每週安全修正與八週功能里程碑分開安排測試和部署決策。
用兩條測試軌取代單一版本檢查
一套實用的流程可以拆成 release smoke 與 Beta preview:
Stable:兩週一次的固定 smoke test
每次 Stable 更新後,先跑不超過 30 分鐘的核心流程,確認版本變更沒有影響最常用的路徑:
- 登入、登出、session refresh 和跨頁導向。
- 表單輸入、檔案上傳、剪貼簿和鍵盤操作。
- 主要文章、搜尋、圖片、字型與 responsive layout。
- 使用權限的功能,例如 camera、microphone、通知與定位。
- 服務 worker、Cache、IndexedDB 和離線 fallback。
- 監控、錯誤回報與 production CSP 是否仍能載入。
這裡不需要每次都重跑完整端對端套件;重點是讓結果能在半天內回饋給產品與維運。如果 smoke 失敗,再依 release notes 的 CSS、DOM、JavaScript、deprecation 或 security 分類擴大回歸範圍。
Beta:在下一個 Stable 前提前驗證
Beta 的目的不是保證 production 絕對不會壞,而是把可重現的問題送回團隊和瀏覽器 issue tracker。建議至少保留一個可切換的 Beta runner,並固定保存:
瀏覽器 channel/版本:Chrome Beta 154測試 commit:<git sha>作業系統與裝置:<os/device>失敗頁面與操作:<route/steps>Console、Network、screen recording:<artifacts>版本資訊和 commit 要一起記錄,否則兩週後即使問題再次出現,也很難判斷是瀏覽器版本、網站部署,還是測試資料改變。
針對變更種類安排不同回歸
瀏覽器 release notes 不應被當成一長串「全部要測」的清單。先把變更分成三類:
| 變更類型 | 風險 | 測試方法 |
|---|---|---|
| 新增 API 或 CSS | 不支援的瀏覽器可能仍在你的使用者群組中 | 以 feature detection 或 @supports 啟用 enhancement,並測 fallback;例如 Chrome 153 的 Iterator API 不應直接假設 Node.js 也已提供 |
| 行為與解析器修正 | 現有程式碼可能依賴過去的非標準行為 | 找出真正使用該 API 的頁面,補一個最小 regression fixture,保存輸出與錯誤 |
| Deprecation、removal 或安全策略變更 | 舊程式碼可能在新版本停止工作,或權限流程變嚴格 | 以程式碼搜尋、Console deprecation 訊息和 Beta 測試建立 migration issue,不要等 Stable 才第一次發現 |
例如 Chrome 153 同時帶來 Iterator.join()、Iterator.zip()、Iterator.zipKeyed() 與 <camera>/<microphone> capability elements。它們的使用方式與支援邊界不同,應該各自做 feature detection 和 fallback,而不是因為同一份 release notes 就共用一個「Chrome 153 已支援」判斷。若要看 iterator API 的實作細節,可參考 Iterator.join 與 Iterator.zip 的使用方式。
CI 與人工測試的最小配置
不論團隊使用哪個端對端工具,先把責任分層:
- 每次 commit:使用固定瀏覽器版本跑快速 smoke,讓產品測試不被自動更新打斷。
- 每個 Stable 週期:更新一個可追蹤的 Stable runner,跑核心流程與本次 release notes 命中的 regression。
- 每個 Beta 週期:用隔離 runner 跑相同 smoke,失敗時保存版本、commit 和瀏覽器 log。
- 每個八週里程碑:若支援 Extended Stable,另外執行企業政策、proxy、憑證、權限與嵌入式 WebView 的部署驗證。
「固定版本」和「測試最新版本」不互相衝突:固定版本提供可重現性,Stable/Beta runner 提供提前發現新行為的能力。兩者都沒有時,失敗會被誤判成偶發,修復也難以回溯。
不要把 Chrome 版本當成瀏覽器支援基線
Chrome Stable 更新很快,但你的讀者可能使用 Safari、Firefox、Edge、企業鎖定版本或尚未更新的行動裝置。新 API 的上線步驟應該是:
if (typeof globalThis.Iterator?.zip === 'function') { // 使用原生 API,並保留嚴格的長度策略} else { // 使用已測試的 fallback 或 polyfill}CSS 則使用 @supports;權限和裝置能力還要檢查 secure context、使用者手勢、Permissions Policy 與作業系統設定。瀏覽器 release note 只能告訴你某個 channel 的能力,不能替你的產品決定最低支援版本。
如果網站是靜態輸出,也別忘了把版本變更後的 HTML、script、圖片、CSP、sitemap 和搜尋索引列入一次建置檢查。瀏覽器更新常常先暴露的是錯誤處理或載入順序問題,不一定是畫面立刻壞掉。
一份可執行的兩週節奏
可以把工作排成固定循環:
| 時間 | 動作 | 完成條件 |
|---|---|---|
| Stable 發布日 | 讀 release notes,標記命中本產品的 API/行為 | 每一項都有「測試、觀察或不適用」決定 |
| 發布後 1–2 天 | 跑 Stable smoke 與命中項目的 regression | 保存版本、commit、通過或失敗證據 |
| 下一版 Beta 可用時 | 對 Beta runner 跑同一組 smoke | 失敗能在乾淨環境重現,並建立 issue |
| Beta 到 Stable 前 | 決定是否需要 workaround、feature flag 或文件更新 | 有負責人、回退方式和預計移除日期 |
| 八週里程碑 | 對 Extended Stable 和企業部署軌做完整驗證 | 安全更新、功能更新和政策差異分開記錄 |
這個節奏的價值在於把瀏覽器更新變成可預期的工作量。每兩週不代表每次都要大改程式碼;它代表每兩週都要有一個明確的版本判斷和驗證結果。
常見問題
Q: Chrome Stable 兩週更新後,所有 E2E 測試都要每兩週重跑嗎?
A: 不必把完整測試套件硬塞進每個發布日。先固定核心 smoke,再依 release notes 的命中範圍擴大回歸;完整套件可依團隊風險與部署窗口安排。重要的是 Stable、Beta 和固定 runner 各自有清楚目的。
Q: Extended Stable 是不是可以完全不測?
A: 不行。Extended Stable 的主要功能里程碑較慢,但安全修正仍會每週回補,企業政策、proxy、權限和嵌入式環境也可能不同。支援它就應建立獨立的部署與回歸軌。
Q: 只測 Chrome Beta 能代表其他瀏覽器嗎?
A: 不能。Beta 只能提前揭露 Chromium 下一版的變更;其他瀏覽器有自己的實作與發布節奏。跨瀏覽器支援仍要依使用者分布建立矩陣,並對新 API 保留 feature detection 和 fallback。
參考資料:
Chrome for Developers:The two-week release cycle is here
回報錯字、失效連結,或告訴我你想看的延伸主題。