- 誰做
- 交什麼
- 誰接
一張單,怎麼交接?
每一步,只看「誰做、交什麼、誰接」。
IM-1421 / 邀請情境
選到候選後,帳號變成不合格
我的工作 / 可用於下一張試行單
先選角色,只看自己的交付
工作可以並行;明確的部分先交,缺口標出來再接續。
交付物
何時交接
這裡是工作清單,不會替你變更契約權限或啟用新 CI;試行沿用團隊現有交付規則。
需要細節時,再回來查
完整流程示意與 IM-1421 歷史證據都保留在這裡。
交接路線
點節點展開說明 · 箭頭是交接,不是所有工作的起訖順序
MR · 人看變更
作者交程式、測試與說明;Reviewer 審查、退回、複審。
CI · 機器重跑
在指定版本執行測試,保存報告。失敗交回負責人修正。
QA · 核對 AC
確認必要情境與人工項目;漏跑、只測部分,都列為待驗。
需要時再展開
逐步導入第一張單怎麼開始、何時停止或退回
逐步導入:先讓 1~2 張小單跟跑
2026-10-04 導入方向:團隊繼續既有開發與交付流程,另選少量工單嘗試新方法。先證明交接有幫助、同仁做得來,再擴大使用或增加必要關卡。下方 IM-1421 是已完成的工程示範,不是已啟用的團隊正式政策。
| 階段 | 做什麼 | 何時往下一步 |
|---|---|---|
| 1. 第一張跟跑 | 選一張小、可拆分、AC 清楚且非緊急的單,先驗一條完整操作。沿用既有需求、MR、Reviewer、QA 與發布流程;新方法補案例、分層測試及證據連結。新增試行 Job 明確選定分支、手動啟動且非阻斷。 | 記錄額外耗時、卡點、誤報與發現的缺陷;同仁能按教學重現,不靠原 Agent 補口頭資訊。 |
| 2. 第二張確認 | 修正第一張的流程問題,再由團隊成員接手第二張;沿用有效的模板與測試,不擴大成全專案改造。 | 協作負責人與實際使用者確認成本可接受、報告可信、退回方式可用,再決定擴大範圍。 |
| 3. 穩定部分逐項採用 | 只把已穩定且確實有用的檢查,經團隊確認後納入一般 MR 必跑;其餘繼續觀察。完整品質 Gate 另待版本、QA、三層證據及權限接線齊備後啟用。 | 每次只擴一小段,有明確 owner、啟用範圍與回復方式;不因兩張試用通過就全面強制。 |
如何保住現有交付時程?
- 既有關卡照常:只對新增試行檢查採非阻斷;不放寬原有 required CI、審查、QA 或發布條件。新 Pipeline 綠燈不取代原驗收。
- 一份需求、一套交付:沿用原 ticket/AC/MR;在原交付位置加測試與證據連結,不要求同仁重填兩份規格或為同一產品改動另開重複 MR。新增試行工具的改動可獨立審查。
- 先約定時間上限:開工前由負責人約定這張單可投入的額外試行時間。遇到工具、權限、Runner 排隊或不熟操作超過上限,記錄卡點,停止新流程跟跑,改走原流程完成交付。
- 測試失敗先分類:工具/測資/環境問題由試行維護者處理;疑似產品 bug 交原負責人確認,確定後照既有缺陷與發布規則處理。退回原流程不是忽略 bug,也不能把失敗改成通過。
- 限制資源與資料影響:新增 Job 設 timeout、取消方式與並行上限;先確認不會搶滿日常 Runner。寫入測試用隔離資料並清理,未備妥時先做單元與 mock 測試,不宣稱真實整合通過。
每張試用單只多記這四件事
- 試哪些 AC/操作、測哪一層;由誰負責測試與處理卡點。
- 固定版本、測試入口及 CI/報告連結;未執行的範圍。
- 額外耗時、需要協助的次數、誤報,以及確實找出的問題。
- 結論:保留哪些做法、修正哪些問題、下一張繼續或暫停;由負責人留下決定。
先證明這套流程值得用,再談自動通知、每張 MR 預覽環境與全產品推廣。QA 測試可持續放在 contracts 的 qa/,不必另建 repo 或增加專職人員。
本節記錄導入方式,沒有啟用新 CI、修改正式角色或改動分支保護。IM-1421 三張 Draft MR 繼續保持原狀;之後選入的真實開發單仍依既有授權與交付規則進行。
第一張跟跑要準備到什麼程度?
開工前先定工單/AC 範圍、協助窗口、額外時間上限及退回方式。Agent 依這個範圍核對測試入口、新 Job 的限定分支與非阻斷規則、Runner 資源,以及報告能否保留到審查與回顧。測真 FE+BE 時核對部署版本,涉及寫入再確認隔離資料與清理約定;未備妥則明列真整合尚未執行。
沿用目前工具版本與角色設定;完整品質 Gate、自動回寫與通知留待正式接線。下方 IM-1421 的 qa-runner-smoke 是限該試行分支的必要手動 Job,不能直接複製成未來非阻斷跟跑的範本。
測試與交接怎麼分測試層級、設計稿是否需要,以及 FE 要交什麼
先看懂,再依角色操作
AC → 介面與畫面約定 → 平行補測試 → 各自 CI/MR → Reviewer → 修正、重驗 → 交付結論
三種測試,各自證明什麼?
| 測法 | 能證明 | 還不能證明 |
|---|---|---|
| FE/BE 單元與元件測試 | 各端邏輯與元件,在指定輸入下符合預期 | 真實系統已連動 |
| Playwright+真 FE+mock API | 瀏覽器操作、送值、回應處理與畫面整合 | 真 BE 權限、資料儲存、跨 App 行為 |
| 真 FE+真 BE 的整合/E2E | 固定部署版本的操作、權限、寫入與回讀 | 未測到的 AC;仍需逐項標示範圍 |
mock 由測試程式攔截請求並回應假資料,不需要改共享 dev 後端或既有資料。
每張單都要 Figma 設計稿嗎?PM 怎麼交給 FE?
由 PM 逐張 Jira 確認是否需要設計稿。後台可以沿用既有畫面,App 也依本單需求判斷;前台/後台不是一律需要或免除的規則。目前 UI 手動畫 Figma,PM 暫代設計稿交接窗口。
| 本單判定 | 交接內容 |
|---|---|
| 需要設計稿 | UI 畫稿;PM 彙整固定版本的 Figma 連結、畫面/節點、對應 AC 與必要狀態,交給 FE 實作、QA 設計檢查點,並由有權限者納入契約的設計交接內容。 |
| 不需要設計稿 | PM 記下原因與沿用依據;FE 依 AC 及既有畫面規則,補入口、操作與狀態說明。IM-1421 本輪後台範例屬於這種情況,沒有 Figma 不算缺交付。 |
| 待確認 | 由 PM 確認是否需要與誰交接;FE/QA 列出缺少的畫面決策,先推進已明確的部分。 |
目前 IM 釘選工具只有整個產品停用 UI 的設定,逐單判定尚未接上。試行先在原 Jira 記錄決定與設計連結;契約欄位仍依角色權限交接。這次文件修正沒有啟用全產品 UI 關卡。
FE 要交什麼?以「邀請成員」為例
- 開工前:對應 AC、畫面入口、權限、搜尋/空態/失敗/送出行為;與 BE 對齊 API 版本。需要設計稿的單,再引用 PM 交接的固定設計版本。
- 實作中:提供可啟動畫面與穩定定位方式,例如「邀請入群」按鈕與「選擇會員」輸入欄位;附 mock 成功/失敗資料。
- 交 MR 時:固定 FE commit、啟動命令、單元/元件測試、CI 報告,以及尚未接真 API 的範圍。
QA 可先依約定寫腳本,畫面可執行後接上操作;不用等 FE 全部完工。
試行何時算完成?
選定範圍有「AC → 案例 → 可執行測試 → CI 報告 → MR → 審查 → 修正/重驗 → QA 與 Reviewer 結論」的完整紀錄,就完成一次流程試行。案例設計完成與產品驗收通過分開記;未執行的案例仍標未驗證。
正式採用時,再由團隊確認 required CI、測試庫位置、正式 QA 與部署責任。IM QA 測試採 contracts 的 qa/,FE/BE 測試留各自 repo;不要求另建 QA repo。本輪未新增日常開發的必要關卡。
IM-1421 案例六步實際交付、單一邀請情境與未驗範圍
IM-1421:把流程走一次
本輪是工程測試交付試行:補測試、跑 CI、各自提 MR、審查、修正、重驗與交付結論。三張 MR 保持 Draft;未合併 dev/main、未部署。下列是已發生的實例,不是未來計畫。
| 流程 | 這次實際做了什麼 | 去哪裡看 |
|---|---|---|
| 1. 確認範圍 | 依 r4 的 18 條 AC 設計 45 個 TC;本輪補工程證據,完整產品驗收另外列出。 | 45 TC 案例設計 |
| 2. 交接可測入口 | 鎖定 API/FE 版本、畫面行為、測試前提;QA 用固定真 FE 與 mock API 接上瀏覽器操作。 | QA 啟動與交接說明 |
| 3. 平行補測試 | FE 新增 15 案,BE 新增 13 案;QA 跑 8 個真 FE+mock API 情境。新增數與套件總數分開記。 | 45 TC 逐案證據表 |
| 4. 各自 CI/MR | FE、BE 在各自 repo 跑分支 CI;QA 在 contracts repo 跑試行與 MR 檢查,各作者提出自己的 MR。 | Pipeline 與 Job 清單 |
| 5. 審查、修正、重驗 | Reviewer 找到 smoke 未完整跑完仍可能留下成功報告;QA 修正並補回歸。FE 也修正測試名稱重複造成報告去重的問題。 | 修正後 CI 30286;QA/Reviewer 結論 |
| 6. 交付結論 | 收齊逐案證據與限制,文件經 Reviewer 審查。最終文件版本 719d720 的 CI 30306 通過。 | 最終 CI 30306;QA/Reviewer 結論 |
單一案例怎麼接起來?「選到候選後,帳號變成不合格」
- PM/QA:AC-IM-1421-018 → TC-IM-1421-044:提交時重新判斷資格與群關係。
- BE:用替身模擬候選被停用、註銷、已入群或群已解散,檢查拒絕與副作用;證據 B01/B03。
- FE:檢查資格改變的提交守衛,以及 API 拒絕後保留選取、不顯示假成功;證據 F31/F34。
- QA:Playwright 操作真 FE,mock API 拒絕,確認對話框與結果呈現;證據 M08。
- 結論:各層片段已測,真實 API 競態、DB 與權限整合仍未驗;TC-044 的完整情境維持未驗證。
45 TC 逐案證據表保留具體測試名稱、固定程式版本與未驗範圍。
45 個 TC 是案例設計數,不是 45 個通過案例。86/313 是各端套件數,8 是 mock browser 情境,7 是 Runner smoke;不能相加當 AC 覆蓋率。
Pipeline/Job 證據5 條 Pipeline、最終 6 個 Job、固定版本連結
Pipeline 在哪裡?各自做什麼?
Pipeline 是一次 CI 執行;裡面包含多個 Job。在各 repo 的 GitLab「Build → Pipelines」找執行紀錄,或直接點下表;Job log 看執行過程,Tests/Artifacts 看測試數與原始報告。連結需公司 GitLab 登入,歷史報告有保存期限。
QA 有沒有測到真後端?2026-10-05 補充
QA 已直接測 dev 真 API:唯讀 12 項、寫入/回讀 15 項通過;兩套新 CI 尚未實跑。不攔截 API、不回假資料。dev 用於工程整合測試;stg 才是團隊正式 QA 驗收環境。這次未部署產品、未合併 dev/main。
| 入口/位置 | 測什麼 | 現在的界線 |
|---|---|---|
qa-runner-smokecontracts repo | K8s Runner 能啟動 Chromium、操作測試網頁並上傳報告。 | 環境診斷,不測 IM。建議未來選跑;本輪未改既有必要手動設定。 |
qa-im1421-fe-pilotcontracts repo | 真 FE+Playwright+mock API;畫面操作與回應處理。 | 不連真 BE;--mode dev 不是連 dev 網站。 |
im1421-be-unit-pilotBE repo | 真 BE 函式+記憶體替身;資格、拒絕與副作用判斷。 | 不是實際 HTTP/DB 整合。 |
qa-im1421-api-readonlycontracts repo 執行方式與 12 項檢查 ↗ | QA 直接打 dev 真 API,不經瀏覽器、不 mock。本機實跑證據 ↗ | CI 已接選跑入口,登入變數 scope 用 qa/im-1421-api-*;待執行,無遠端通過證據。受測 dev 的部署 SHA 尚未核對。 |
qa-im1421-api-writecontracts repo 執行方式與 15 項檢查 ↗ | 自建官號/群,直呼 dev 真 API:邀請、停用/恢復、移除、群資料、禁言、角色、轉讓、解散及稽核;寫入後另次回讀。本機 15 項通過。 | 僅試行分支/MR,手動、非阻斷;CI 待執行。每輪自建測資,結束解散/停用並確認。不啟動本次 MR 的 BE 或隔離 DB,也不操作 stg。 |
測資不再卡住這輪 dev 測試:每輪自建 3 個官號與 1 個群,結束後解散群、停用官號並回讀確認;本次三輪共 9 官號/3 群均清理確認,留下可識別的測試紀錄。仍未完成真權限矩陣、普通會員/註銷恢復、容量 N、瀏覽器串真 API、App/E1 與 stg 正式驗收。部署 SHA 尚未核對;不代表 18 AC/45 TC 完整通過。
實跑證據與兩次失敗
2026-10-05 11:42 最終完成:15 項原始結果與清理紀錄 ↗。前兩輪的請求失敗另存,沒有被最後通過覆寫;執行器回歸 20 項通過。失敗說明、測資清單與 CI 變數設定 ↗。這些都是本機連 dev,沒有遠端 CI 通過證據。
| 位置/流程 | Pipeline 與 Job | 做什麼、結果與版本 | 入口/是否阻擋 |
|---|---|---|---|
| FE repo im/frontend/adminim_6t 步驟 3~4 | Pipeline 30267 ba03-unit-tests-pilot Draft MR !7 | 群組 policy、API adapter、元件互動與上傳等單元/元件測試。86 案通過(新增 15)。受測程式 4234a34b。 | 只限 codex/IM-1436-r4-unit-tests,push/web 手動;指定 IM1421_PILOT_RUN=true 的未保護分支 push 可自動跑。非阻斷(allow_failure)。不是常態 MR 必跑檢查。 |
| BE repo im/backend/6t-im 步驟 3~4 | Pipeline 30264 im1421-be-unit-pilot Draft MR !387 | 群組資格、服務邏輯、請求與錯誤/副作用等單元測試。313 案通過(新增 13)。CI 程式 58b36794。遠端核對套件摘要,逐案證據另來自本機 JUnit。 | 只限 codex/im1421-be-unit-tests,web 手動;指定 IM1421_PILOT_RUN=true 的未保護分支 push 可自動跑。非阻斷,不載入部署工作。 |
| contracts repo/QA im/im-delivery-contracts 步驟 3~4 | Pipeline 30260 qa-im1421-fe-pilot Draft MR !67 | Playwright+固定真 FE+mock API/身分,檢查 UI、送值與拒絕呈現。8 案通過。Suite bf3b79bf,FE 7637d38。 | 只限 codex/im-qa-pilot 分支/MR,手動、非阻斷。最終 30306 的同名 Job 未重跑,沿用此固定版本證據。 |
| contracts repo/QA 步驟 5:修正後重驗 | Pipeline 30286 qa-runner-smoke(重試) | 修正「未完整執行卻留下成功報告」,驗 Runner/瀏覽器能力與報告流程。7 項通過;SHA 399be6d2。另有本機 37 項 runner/bootstrap 回歸。 | smoke 是試行分支的必要手動 Job。首次 128883 被取消,後續 128887 成功;取消本身不代表測試通過。 |
| contracts repo/QA 步驟 6:最終交付 | Pipeline 30306 qa-runner-smoke Tests 報告 | 最終文件 SHA 719d720d 的 MR Pipeline Passed。smoke 7 tests、0 failures/errors/skipped;報告確認版本一致、suite_completed=true。2026-10-04 00:00:56(台北)完成。 | 下表列每個 Job。未跑的 optional browser 保持 Manual,不當作通過。沒有產品部署或真實寫入測試。 |
展開最終 Pipeline 30306:每個 Job 的責任
| Job/位置 | 實際檢查 | 結果與阻擋規則 |
|---|---|---|
| contract-check validate | dcx check --stage contract-draft:契約結構、Stable ID 與推導欄位一致性。 | Passed;必要檢查。不是產品測試,也不是 ready-for-build/release gate。 |
| key-ownership validate | 依 MR 作者及已合併的治理名單,檢查是否改到無權修改的欄位。 | Passed;MR 必要檢查。 |
| qa-runner-smoke validate | 驗 Runner、固定 Chromium、localhost 瀏覽器操作、完整執行/清理與報告上傳。 | Passed,7 項;必要手動。不按會讓本次試行 Pipeline 停在 blocked,失敗也會擋。此限制只作用在指定試行分支。 |
| qa-im1421-fe-pilot validate | 8 個真 FE+mock API 情境;本次未重跑,實際證據看 30260/128767。 | Manual,非阻斷。不能把本次 Manual 記成 Passed。 |
| generated-in-sync generated | 比對 AGENTS.md、skills、shim 等生成內容與釘選工具版本是否同步。 | Passed;必要檢查。 |
| impact-analysis impact | 列出本次契約改動需要誰重驗;本 MR 沒改 features,回報無待分析單。 | Passed;報告型、非阻斷。不是 release gate。 |
要維護哪個檔?測試與報告放哪裡?
| Owner | CI 定義/測試入口(固定版本) | 報告位置 |
|---|---|---|
| FE | .gitlab-ci.yml;邀請 policy 測試範例 | .work/ba03-unit-pilot/:JUnit、results.json、run.json;保存 1 週。 |
| BE | .gitlab/ci/im1421-be-unit-pilot.yml;ns-chat/scripts/test-im1421.sh | ns-chat/_output/im1421-unit/:JUnit 與執行報告;保存 7 天。 |
| QA browser | .gitlab-ci.yml;qa/IM-1421/ci-fe.cjs | qa/IM-1421/reports/:JUnit 與瀏覽器證據;保存 7 天。 |
| QA smoke | .gitlab-ci.yml;qa/runner-smoke/smoke.cjs | qa/runner-smoke/reports/:JUnit、summary 等;保存 7 天。 |
| contracts 檢查 | .gitlab-ci.yml;bin/dcx 按 .delivery-contracts 取得釘選 framework。 | 各 Job log;契約檢查與影響分析結果。45 TC 逐案證據表保存案例與證據索引。 |
程式來源連到當時受測版本,不跟隨 main/dev 漂移。報告過期不改變歷史結果,但重新審查時需取得保存副本或重跑;不要只留一個綠燈截圖。
哪些沒有在這輪跑?
- 本機合併候選不是另一條遠端 Pipeline:FE 133 案、BE 317+15 案、QA 37 項與工程檢查,是指定 source+target 的隔離本機驗證;沒有合併遠端 dev/main。
- 完整產品驗收:dev 真 API 寫入/回讀已追加,見上表;真 FE+BE 全鏈路、權限矩陣、容量、App、E1 與 stg 驗收仍未完成;45 TC/18 AC 不宣告全過。
- contracts 的其他 Job:delivery-bot/delivery-bot-jira、dashboard-build/dashboard-deploy 是 main push 等條件下的既有流程;release-gate 另需 RELEASE_CHECK=true。本輪 30306 沒有執行它們,dashboard 部署也不是 IM 產品部署。
- 正式採用:FE/BE 的 MR 必跑政策、正式 QA 與整合環境,仍要另外配置。這份教學本身不會改 CI 阻擋規則。
操作文件與範例接入說明、角色派工、必要案例檢查器
需要細節時再看
共用正式方案與 IM 試行分開:本輪已有獨立分支 CI、MR 與審查;正式 QA、可信回寫、必要關卡與部署仍須各產品配置後才生效。