surfup

線上學校 EdTech 平台

從零建置 QA 流程:版本發布不再造成正式環境故障

教育 · QA · 測試自動化 · 負載測試
專案背景

客戶是一個線上教育平台,提供互動課程、作業、學生與家長個人帳戶,以及線上付款。業務有明顯季節性:九月是新生最多的時期,開學前幾週平台停擺就代表永久失去客戶。公司沒有內部 QA 團隊,開發人員只能在其他工作之間自行測試;發布前回歸測試要花三天,仍會漏掉付款、課程預約和進入教室等關鍵情境。客戶在一次付款故障造成學校流失部分夏季報名名單後找上我們。

01 · 挑戰

從零建立品質保證流程:

依業務風險安排測試優先順序、自動化關鍵情境、將檢查整合進 CI,並在九月高峰前進行負載測試。限制是不能停止開發:版本仍每週發布,而九月不會等人。

02 · 已完成工作

我們沒有從自動化測試著手,而是先做風險分析:哪些情境最常出錯、哪裡出錯成本最高。自動化工作嚴格依照這份清單進行。

  • 稽核品質:分析過去半年的錯誤、訪談各團隊,整理問題最嚴重的情境:付款、課程預約、進入教室和家長通知。
  • 撰寫測試策略:制定測試層級、責任範圍、功能完成定義和錯誤回報規範,讓三個開發團隊一致遵循。
  • 自動化關鍵路徑:使用 Playwright 為網頁平台建立 E2E 情境、為後端建立 API 測試,並在每次發布前執行 smoke 測試集。
  • 將 QA 閘門整合進 CI:smoke 測試未通過就不能發布;完整回歸測試每晚執行,結果會在 GitLab 提供所有團隊檢視。
  • 以 k6 進行負載測試:模擬九月高峰流量、找出瓶頸,並在旺季前與後端團隊一起排除。
  • 將流程移交給客戶:提供文件與規範,並訓練 QA 工程師使用自動化測試和流水線。

關鍵決策是依業務風險排序,而非追求看起來「漂亮」的覆蓋率。我們刻意沒有追求 100% 自動化:關鍵情境覆蓋率達到 75% 就帶來大部分效益,因為保護的是平台創造營收或流失客戶的關鍵流程。其餘部分則在重要發布前以人工探索式測試補足。

03 · 成果

主要經濟效益是把缺陷發現時間往前移:在 CI 被自動測試找到的錯誤,修復成本比被學生家長在正式環境發現的錯誤低數十倍。平台帶著更高的韌性進入旺季,團隊也能更常發布變更,不必擔心「星期五效應」。另一項成果是提升企業信任:業務團隊現在能坦白向合作學校承諾,招生高峰期間平台仍然穩定。

04 · 主要成果
指標成果
正式環境的重大錯誤每月 5–7 個 → 每季 1–2 個
發布前回歸測試人工 3 天 → 自動化測試 4 小時
九月負載高峰每年都有事故 → 0 起事故,沒有效能下降
缺陷發現時機通常在正式環境 → 自動測試在發布前抓到

指標取自案例原始資料。僅在來源有記錄時註明統計期間。

四個月的工作成果
每季重大錯誤(原為每月 5–7 個)
1–2
自動化回歸測試(原人工需 3 天)
4小時
的關鍵情境由自動化測試涵蓋
75%
九月尖峰期間的事故數
0
覆蓋率與檢查速度
自動化測試涵蓋的關鍵情境
之前0%
之後75%
正式環境重大錯誤
之前每月 5–7 個
之後每季 1–2 個
數值越低越好
發布前回歸測試
之前3 天
之後4 小時
數值越低越好

示意刻度:將 3 天換算為 72 小時。計算長條長度時,將每月錯誤範圍乘以三換算為每季範圍;比較的是上限。

CI 中的 QA 閘門
  1. 01提交程式碼
  2. 02Smoke 測試集測試未通過,不予發布
  3. 03發布每週
  4. 04每晚執行完整回歸測試
後續步驟

建議平台下一步採取:

  • 視覺回歸測試:自動檢查課程、電子郵件和個人帳戶的版面。
  • 測試資料工廠:每次執行都產生逼真的學生、班級和付款資料。
  • 正式環境 QA:使用 feature flags 和金絲雀發布,逐步啟用新功能。
客戶評語
我們不再害怕發布。以前每個星期五都可能變成處理客訴的會議,現在部署到正式環境只是十五分鐘的例行流程。

— 線上學校 CTO

最新資源

所有資源

SurfUp 的實用文章與指南。

指南 · 10 分鐘閱讀

「什麼是…」頁面與 AI 答案:點擊流失還是需求下降

某銀行的參考區塊造訪減少 24%,需求下降 13%。如何區分被 AI 區塊搶走的點擊與需求下滑,以及如何量測。

閱讀
指南 · 8 分鐘閱讀

Google 更新後流量下滑

如何判斷流量下滑是 Google 更新、季節性還是網站故障造成:2026 年更新時程、六題檢查,以及前 14 天的行動計畫。

閱讀
指南 · 9 分鐘閱讀

是需求下降還是網站流失:用 Wordstat 對照流量

定存需求下降 75%、流量下降 37%;金融卡需求 −35%、流量 −63%。如何對照流量與需求,避免把市場的問題算到網站頭上。

閱讀