資料源為 CNCY 的 [Infra] 上線卡。版本上線日只認卡片標題——Jira version 物件的 releaseDate 一律不採用(實測 BOB_2.99 標 06-04、實際 07-01,差近一個月),resolutiondate 亦不可用(卡片常晚關)。
| 版本 | 正式上線 | 後續 hotfix | hotfix 次數 |
|---|---|---|---|
| 2.93 | 1/14 | 1/14、1/19 | 2 |
| 2.94 | 2/4 | 2/4、2/6 | 2 |
| 2.95 | 3/11 | 3/12、3/13、3/19、3/24 | 4 |
| 2.96 | 4/8 | 4/10、4/16、4/23、4/24 | 4 |
| 2.97 | 5/6 | 5/8、5/13 | 2 |
| 2.98 | 6/3 | 6/4、6/12、6/15 | 3 |
| 2.99 | 7/1 | 7/7、hotfix3 | 2 |
| 2.100 | 8/5 | 8/6(上線隔天) | 1 |
[Infra] 卡」與「版本清單」的聯集——只數 Infra 卡會漏掉沒建卡的(BOB_2.99 hotfix3、2.100 hotfix),只數版本會漏掉多次部署共用一個版本的(2.97)。文字搜尋 summary ~ "hotfix" 不可用(底線不會被斷成 token,只回 3 筆)。
定義:某一版的缺陷中,沒有在該版修掉、隨該版出到客戶端的比例。
① fixVersion 是 hotfix 版本 → PROD 逃逸 ② Version主版 == fixVersion主版(非 hotfix) → UAT 攔截 ③ Version主版 < fixVersion主版 → PROD 逃逸(歸屬 Version 那一版) ④ 無 Version:建立日在官方 UAT 窗口內 → UAT 攔截,否則 → PROD 逃逸
Version 取自 CNCY 卡描述的 Version:{元件} v{版號}(覆蓋率 63%);官方 UAT 窗口取自開發時程表(迄日以上線日截斷)。信度驗證:Version == fixVersion 的 195 張中有 190 張(97%)確實落在官方 UAT 窗口內。
| 版本 | 官方 UAT 窗口 | UAT 攔截 | 逃逸合計 | 缺陷總池 | 逃逸率 | hotfix |
|---|---|---|---|---|---|---|
| 2.96 | 3/26~4/7 | 124 | 24 | 148 | 16% 不可比 | 4 |
| 2.97 | 4/23~5/5 | 32 | 31 | 63 | 49% | 2 |
| 2.98 | 5/25~6/2 | 25 | 40 | 65 | 62% | 3 |
| 2.99 | 6/22~6/30 | 67 | 45 | 112 | 40% | 2 |
| 2.100 | 7/27~8/4 | 16 | 15 | 31 | 48% 不可比 | 1 |
可比的三版:49% → 62% → 40%。2.98 最差,2.99 明顯改善且優於 2.97。不可比的原因:2.96 的 CS 回報板 2026-05 才啟用、2.100 在線窗口未結束。
INVALID 可剔除,開發板沒有。resolution 欄位其實有 Declined/Won't Do/重複/無法重製 四個值可用,但 219 張漏洞中一次都沒填過。填對即可讓程式自動排除,不必靠人工判讀 RCA。
| 項目 | 數字 |
|---|---|
| CS 回報板漏洞總數(2026-05~07) | 142 |
判定 INVALID(非缺陷/客戶誤操作) | 74 = 52% |
| INVALID 判定耗時(中位數/平均) | 1.1 天/4.2 天 |
超過一半的 CS 回報不是缺陷,但判定很快——不是流程卡住,是進來的東西本身就有一半不該進來。
樣本=與逃逸率分子相同的 74 張 CS 回報缺陷(已結案 51、在途 23)。已結案者從建立到修完的中位數 22.4 天、平均 24.7、P90 56.4。
WAIT UAT 是 RD code review(尚未 merge),WAIT TEST 才是 QA/PM 驗證。兩者不可合併——曾合併成「測試」而得出「測試是最大瓶頸」的錯誤結論。
| 階段 | Jira 狀態 | 樣本 | 中位數 | 平均 | 最長 |
|---|---|---|---|---|---|
| ① 等 CS 判斷 | PENDING VERIFICATION | 72 | 0.1d | 1.6d | 29.9d |
| ② 等 RD 分析 | ROOT CAUSE ANALYSIS | 59 | 1.0d | 3.3d | 27.1d |
| ③ 等安排版本 | BACKLOG | 57 | 0.1d | 4.3d | 40.4d |
| ④ 已選入待動工 | SELECTED FOR DEVELOPMENT | 57 | 0.0d | 1.3d | 29.2d |
| ⑤ 開發中 | IN PROGRESS | 57 | 0.0d | 0.4d | 21.0d |
| ⑥ 等 code review | WAIT UAT | 56 | 0.9d | 3.2d | 20.0d |
| ⑦ 等 QA/PM 驗證 | WAIT TEST | 52 | 2.4d | 3.8d | 22.1d |
| ⑧ 等版本上線 | WAITING DEPLOYMENT | 38 | 2.7d | 3.5d | 26.8d |
| ⑨ 等正式站驗證 | PROD VERIFICATION | 38 | 1.5d | 7.5d | 35.5d |
BACKLOG(等安排版本)應該是「已歸因、等排版本」,但實際停在該狀態的卡全部沒有根因結論——其中一張已擱置 87 天。沒歸因就排版本,等於排了也不知道要修什麼。建議 ROOT CAUSE ANALYSIS → BACKLOG 的轉換加一道檢查。
樣本 168 張逃逸缺陷,扣除環境問題 6 張、RCA 判定非缺陷 7 張、待歸因 17 張(多數仍在分析中)→ 已歸因 138 張。分類標準整合自團隊既有的後端與前端 Bug 定義,前後端共用一套。
| 根因大類 | 張數 | 佔比 | 主要對策 |
|---|---|---|---|
| B 邏輯實作 | 55 | 40% | code review、單元測試 |
| C 資料處理 | 27 | 20% | 資料模型審查、邊界測試 |
| G 第三方與整合 | 15 | 11% | 驗證/重試/錯誤不得靜默 |
| A 需求/規格 | 11 | 8% | 規格審查、定義補完 |
| H 改動引入(迴歸) | 9 | 7% | 影響分析、迴歸清單 |
| F 框架與元件 | 8 | 6% | 技術債清理 |
| E 效能與規模 | 5 | 4% | prod-like 資料量、監控 |
| D 權限與安全 | 5 | 4% | 權限矩陣審查 |
| I 人為操作與環境 | 3 | 2% | 流程自動化、配置管理 |
| B 邏輯實作細項 | 張 | C 資料處理細項 | 張 |
|---|---|---|---|
| 判斷條件錯誤 | 17 | null/空值/邊界值 | 11 |
| 功能實作遺漏 | 12 | 資料結構/欄位 | 7 |
| 流程/狀態處理錯誤 | 10 | 同步與一致性 | 5 |
| 計算邏輯錯誤 | 9 | 初始化/預設值 | 3 |
| 輸入驗證缺漏 | 7 | 遺漏店家範圍 | 1 |
「判斷條件錯誤 17」+「null/邊界值 11」= 28 張(20%),這兩項是最典型的單元測試守備範圍,也是最不需要環境就能測的。
| 關卡 | 張數 | 佔比 | 對策 |
|---|---|---|---|
| 整合測試 | 38 | 28% | 模組間、API 契約、權限邊界、第三方 mock |
| 單元測試 | 30 | 22% | null/0/未初始化/計算 |
| UAT 情境 | 29 | 21% | 補 UAT 案例 |
| 測不到 | 18 | 13% | 不是測試問題——監控、灰度、prod-like 資料 |
| 規格審查 | 11 | 8% | 條件邏輯與邊界情境寫進 spec |
| 迴歸測試 | 9 | 7% | 新功能前跑既有核心流程 |
| Code review | 3 | 2% | checklist |
七成(97/138)落在單元/整合/UAT 三關,可靠測試改善。對照 O3 記載的「測試自動化 0%、80% 手動測試」,這裡是 O1 與 O3 最直接的交會點。
這張表回答的是「哪個模組該補哪一種測試」——比單看模組缺陷數更能直接派工。
| 模組 | 規格審查 | Code review | 單元測試 | 整合測試 | 迴歸測試 | UAT 情境 | 測不到 | 合計 |
|---|---|---|---|---|---|---|---|---|
| 預約 | 1 | · | 5 | 1 | 4 | 5 | 7 | 23 |
| 會員等級權益 | 2 | · | 5 | 5 | 3 | 8 | 0 | 23 |
| 第三方 POS | 2 | · | · | 6 | · | 1 | 2 | 11 |
| 點數/回饋金 | 1 | · | 3 | 1 | · | 4 | · | 9 |
| 金流/發票 | · | · | 1 | 7 | · | · | 1 | 9 |
| 票券/堂票 | · | · | 4 | 1 | 1 | 1 | · | 7 |
| 會員中心 | 1 | · | · | 2 | · | 3 | 1 | 7 |
| 通知 | 1 | · | 2 | 2 | · | 2 | · | 7 |
| 報表匯出 | 1 | · | · | 4 | · | · | 2 | 7 |
| 後台通用 | · | 2 | 2 | 1 | · | 1 | 1 | 7 |
| 儲值金 | 1 | · | 1 | 3 | · | · | 1 | 6 |
| 標籤 | 1 | · | 3 | 1 | · | · | · | 5 |
| 課程 | · | · | 2 | · | · | 2 | · | 4 |
金流/發票(9 張)與第三方 POS(11 張)——整合測試各 7、6 張,根因皆以第三方整合為主。對策單一:第三方整合測試補異常回應的 mock(5xx、憑證失效、回傳結構變更)。這兩個模組的缺陷有共同模式:①存憑證沒驗證 ②第三方 5xx 沒重試 ③失敗被靜默吞掉。
hotfix = 計畫外上線 = 嚴重到不能等下一版。這批的根因分佈與整體明顯不同。
| 根因 | 張數 | hotfix 佔比 | 整體佔比 | 差異 |
|---|---|---|---|---|
| H 改動引入(迴歸) | 5 | 23% | 7% | 3 倍 |
| G 第三方與整合 | 4 | 18% | 11% | 1.6 倍 |
| C 資料處理 | 4 | 18% | 20% | 持平 |
| B 邏輯實作 | 4 | 18% | 40% | 偏低 |
| D 權限與安全 | 2 | 9% | 4% | 2 倍 |
| A/E/F | 各 1 | 5% | — | — |
| 優先 | 行動 | 依據 |
|---|---|---|
| 🔴 1 | 會員等級權益:補 UAT 案例+單元測試 | 23 張、「測不到」為 0、UAT 情境 8 張最多 → 缺陷 100% 可測,投報率最高 |
| 🔴 2 | 預約:建效能監控與 prod-like 資料量測試 | 23 張中 7 張「測不到」(5 張效能)→ 補 UAT 對此模組幫助有限 |
| 🔴 3 | 新功能上線前跑既有核心流程迴歸清單 | 迴歸類在 hotfix 佔 23%(整體的 3 倍)→ 直接降 hotfix 次數、改善 CFR |
| 🟡 4 | 金流/第三方:整合測試補異常回應 mock | 兩模組 20 張,整合測試關卡 13 張(5xx/憑證失效/回傳結構變更) |
| 🟡 5 | 判斷條件與 null 邊界納入 review checklist | 兩細項合計 28 張(20%),且不需環境即可攔截 |
| 🟢 6 | 開發板結案時填 resolution | 13 張非缺陷/環境卡混入統計 → 零成本消除誤差 |
| 🟢 7 | RCA 補「何時引入」欄位 | 目前無法區分「本版引入」與「長期潛伏」;已知有缺陷潛伏 3 年才被發現,若普遍存在則「這版測試沒做好」是錯的診斷 |
| 月份 | 原始總時數 | 清洗後 | 剔除筆數/時數 |
|---|---|---|---|
| 2026-04 | 578.6h | 361.1h | 4 筆/217.5h |
| 2026-05 | 376.8h | 376.8h | 0 |
| 2026-06 | 329.0h | 292.4h | 1 筆/36.6h |
| 2026-07 | 729.8h | 382.3h | 5 筆/347.4h |
Version 欄位覆蓋率僅 63%,其餘 37% 靠「建立日是否落在官方 UAT 窗口」判定。2.98 那一輪只有 3 張填了 Version,是最脆弱的一版,其 62% 要打折看。