UAT

All posts tagged UAT

原內容日期:2026-10-02。本文為既有教學內容補發;範例依原文標示使用,實際權限與規則請以所屬組織核定資料為準。

最大的驗收問題,常常不是 Bug,而是「完成」沒有定義

需求方說畫面要方便,開發做出三個步驟;使用者試用後認為應該一鍵完成。雙方都沒有說謊,只是驗收前從未把「方便」轉成可觀察標準。

UAT 的價值,就是由實際業務角度確認使用者能否在真實條件下完成工作,並取得正確、可追溯的結果。它不是隨意點一遍畫面,也不是重做所有技術測試。

先把需求改成可判定的句子

遇到快速、容易、即時、大量、適當、完整等詞,先不要請 AI 猜一個數字。應追問由誰判斷、在什麼情境、如何量測、可接受門檻與不合格結果。

接著把一條大需求拆成最小能力。例如「調整重量、填原因、重印標籤、保留歷程」至少是四項驗收能力。每項都有編號,後續才知道哪一個需求已被哪些案例覆蓋。

Given/When/Then 讓驗收條件更清楚

Given 描述角色、資料與系統前置狀態;When 描述明確操作;Then 描述可觀察結果。Then 不應只寫「成功」,還要確認資料值、狀態、通知、權限、稽核紀錄與下游結果。

以重量調整為例:主管在待入庫批次把 10.000 kg 改成 10.300 kg,系統除了保存新值,還要記錄原值、差異、原因、操作者與時間,將舊標籤作廢並產生新版標籤。少一項,都可能留下資料或追溯風險。

好的 UAT 不只測「做得到」

至少要思考正常、替代、邊界、錯誤、重複、權限、中斷、復原與回歸。允許範圍 ±0.500 kg 時,不只測 0.300;也要測剛好 0.500、超出一點的 0.501、零、負值及格式錯誤。

更重要的是狀態與權限:一般操作員能否繞過畫面修改?已入庫批次是否仍能變更?兩人同時開啟舊版本時,後提交者會不會覆蓋新資料?這些案例往往比正常流程更接近真實事故。

測試資料本身也是設計的一部分

「找一筆資料測」無法重現。測試資料要有編號、前置狀態、欄位值、預期計算、建立方式與清理方式。若案例失敗,修正後應使用同一組資料或等價條件重測,才能比較結果。

測試資料也要保護隱私。優先使用合成資料;若必須從正式環境複製,要確認遮罩、權限、保留期限與銷毀規則。

結果不只有 Pass 和 Fail

環境未準備、規則未定或權限不足時,狀態應是「阻塞」;尚未執行就是「未執行」。兩者都不能算通過,也不能偷偷從分母排除。

若採附條件通過,要寫清楚適用限制、補正內容、責任人、期限及接受風險的角色。附條件通過不是讓重大缺陷消失的文字技巧。

用追溯矩陣避免漏測

把需求編號、驗收條件、正向案例、負向案例、權限案例與回歸案例放在同一張表。若某項高優先需求沒有負向或權限案例,缺口會立刻顯現。

AI 很適合協助生成候選案例與檢查覆蓋率,但輸入中的規則必須有來源。當資料不足,正確輸出應是「待決策」,而不是一份看起來完整卻建立在猜測上的測試表。

今天可以先做的最小版本

選一項近期要驗收的功能,完成三件事:圈出模糊詞、寫三組 Given/When/Then、建立一個正常加四個風險案例。再請需求方與測試者於執行前共同審查,通常就能提前消除大部分驗收爭議。

文章 CTA: 把一條最近被退回或反覆修改的需求貼入本文提示詞,先產生「需求可驗收性檢查」。不要急著要 50 個案例;先把缺少的規則與決策角色找出來。

可直接複製使用的完整提示詞

以下提示詞不依賴特定 AI 產品,可貼入你公司允許使用的生成式 AI 工具。把【】或 [] 中的欄位換成你的資料即可。

你是一位「資深商業分析師、UAT 測試設計顧問與品質風險審查員」。請根據我提供的需求與業務規則,協助把模糊敘述轉成可執行、可判定、可追溯的驗收條件與 UAT 測試案例。你的任務是整理與找缺口,不是替需求方發明規則或代替驗收者簽核。

【任務】
1. 找出不可驗收、含糊、矛盾或缺少數值門檻的需求。
2. 將需求拆成最小可驗收單位並編號。
3. 以 Given/When/Then 產生驗收條件。
4. 產生正常、替代、邊界、錯誤、重複、權限、中斷、復原與回歸案例。
5. 建立需求—驗收條件—測試案例追溯矩陣。
6. 列出測試資料、環境、角色、證據與簽核需求。
7. 找出無法判定的規則並列為待決策,不得自行補猜。

【專案背景】
- 專案/功能名稱:[名稱]
- 業務目標:[要解決的問題]
- 主要使用者角色:[角色]
- 驗收範圍:[本次包含]
- 不在範圍:[本次不包含]
- 驗收環境:[環境、版本]
- 預計驗收日期:[日期]
- 最終驗收角色:[角色]

【原始需求】
需求編號|原文|來源|版本/日期|優先級|目前狀態
[貼上需求]

【已知業務規則】
- 誰可以執行:[角色與權限]
- 何時可以執行:[狀態或時間]
- 必填欄位:[欄位]
- 數值、長度或日期範圍:[規則]
- 計算與四捨五入:[規則]
- 重複資料處理:[規則]
- 修改後影響:[下游、報表、標籤、通知]
- 稽核紀錄:[需記錄的內容]
- 禁止事項:[不可執行的動作]
- 尚未定案:[問題]

【現有畫面/流程】
步驟|角色|操作|輸入|系統反應|輸出
[貼上流程]

【歷史問題或風險】
問題編號|情境|影響|既有處理|證據來源
[貼上紀錄;先去識別化]

【限制】
- 不得捏造業務規則、數值門檻、系統功能、權限、法規、SLA 或簽核結果。
- 原始資料沒有答案時標示「待決策」,並列出最適合回答的角色。
- 將「來源明確的事實」與「AI 建議的候選案例」分開。
- 不得把尚未執行、阻塞或缺少證據的案例寫成通過。
- 不得因案例未執行而從分母移除,除非範圍變更經正式核准並保留紀錄。
- 功能測試、系統測試、UAT 與上線決策要分開描述。
- 效能、易用性、正確性等詞若沒有衡量方法,先提出量測選項,不自行決定標準。
- 涉及正式資料、個資、付款、刪除、覆寫或高權限操作時,加入人工閘門與安全測試提醒。
- 使用繁體中文,內容務實、清楚,避免空泛形容詞。

【輸出格式】
A. 一分鐘摘要
- 本次驗收目標
- 最重要的 3 個規則缺口
- 最可能造成驗收爭議的 3 個項目

B. 需求可驗收性檢查
欄位:需求編號|原始敘述|問題類型|缺少資訊|改寫建議|需決策角色

C. 可驗收需求清單
欄位:新需求編號|可觀察能力|適用角色|前置狀態|業務規則|完成證據|來源/待確認

D. Given/When/Then 驗收條件
每項需求至少一組;必要時拆成正常、例外與權限條件。

E. 測試設計面向
逐項檢查:正常、替代、最小值、最大值、剛好越界、空值、格式錯誤、重複、衝突、未授權、中斷、重試、復原、資料一致性、稽核與回歸。

F. UAT 測試案例表
欄位:案例編號|對應需求|優先級|案例目的|前置條件|測試資料|操作步驟|預期結果|通過標準|證據|結果狀態

G. 測試資料清單
欄位:資料編號|用途|前置狀態|欄位值|預期結果|建立方式|清理/還原方式|是否含敏感資料

H. 需求追溯矩陣
欄位:需求編號|驗收條件|正向案例|負向案例|權限案例|回歸案例|覆蓋狀態

I. 缺陷分級建議
以業務影響說明阻斷、重大、一般、輕微;不要依修正工時分級。

J. 驗收結果規則
分別定義:通過、失敗、阻塞、未執行、附條件通過;列出可否簽核與必要證據。

K. UAT 執行前檢查清單
包含範圍、版本、環境、帳號、資料、案例審查、證據位置、缺陷流程、回復與簽核人。

L. 待決策問題
依風險排序,最多 10 題;每題列出為何必須決定、建議選項、影響及決策角色。

M. UAT 摘要範本
包含案例總數、各狀態、P0/P1 結果、重大缺陷、限制、已接受風險、建議及簽核欄位。

想要更多 AI 辦公實戰方法、完整模板與每日練習?歡迎加入「大叔的開發筆記」Skool 社群,一起把 AI 用在真正的工作上。

原始需求、規格、測試與交付以線索串接的示意插畫

許多專案在上線前看起來一切正常:需求文件有了、開發任務關閉了、測試報告也顯示大多通過。但真正上線後,需求方卻說「這不是我要的」,測試團隊說「文件沒有寫」,開發團隊則說「我們照任務做了」。

問題往往不是大家沒有做事,而是中間缺少一條可以回查的關係鏈。

這就是需求追溯矩陣的用途。

需求追溯矩陣不是另一張進度表

一般進度表回答的是:誰在做、做到哪裡、何時完成。

需求追溯矩陣回答的是:

  • 這項功能源自哪個正式需求?
  • 誰在什麼版本核准?
  • 哪份設計與開發項目負責實現?
  • 哪些測試案例證明符合驗收條件?
  • 若曾有缺陷,在哪個版本修正與回歸?
  • 最後以什麼證據進入發布版本?

因此,RTM 的核心不是表格格式,而是雙向可回查。

一條完整的追溯鏈應包含什麼?

最基本的追溯鏈可以寫成:

原始來源 → 核准需求 → 設計 → 開發 → 測試案例 → 執行結果 → 缺陷/回歸 → 發布證據

其中任何一段斷掉,都可能形成風險。

例如,開發任務找不到核准需求,可能代表團隊做了未授權範圍;測試案例沒有對應驗收條件,可能只是測了畫面,而沒有驗證真正的商業規則。

AI 最有價值的工作:找出四種孤兒

AI 很適合比對大量文件、任務與案例,找出以下四類問題:

  1. 孤兒需求:已核准,卻沒有設計、開發或測試。
  2. 孤兒開發:功能做了,卻找不到正式需求來源。
  3. 孤兒測試:測了很多,但無法說明在驗哪項需求。
  4. 孤兒缺陷:問題修了,卻不知道影響哪項需求與哪些回歸範圍。

這些孤兒項目比單純的完成百分比更能揭露上線風險。

文字相似,不等於正式對應

使用 AI 建立追溯矩陣時,最常見的錯誤是把名稱相似當成同一件事。

「權限到期」可能指到期前提醒、到期自動停權,或到期後禁止登入。即使句子看起來相似,驗收條件可能完全不同。

因此,每條 AI 建議的關聯都應標示為直接證據、間接證據、文字相似候選或無法確認。候選關聯必須由人工核對後,才能成為正式矩陣。

測試案例存在,不代表需求已驗證通過

需求覆蓋至少要檢查三件事:

  1. 有沒有對應的測試案例?
  2. 測試是否真的執行?
  3. 執行證據是否屬於目前版本?

如果案例建立了但沒有執行,不能算通過;如果測試在需求變更前完成,也不能直接沿用。

需求變更時,矩陣應告訴你要重做什麼

好的 RTM 不只用來驗收,也能支援變更影響分析。

當一項需求從「臨時權限最多 30 天」改成「最多 7 天」時,矩陣應立即指出:欄位驗證、後端規則、提示文字、既有資料、邊界測試、排程與操作文件都可能需要更新。

這比只改一張任務卡更能避免漏項。

最後不要只報一個完成率

「完成 95%」看起來簡潔,卻可能把關鍵風險藏起來。

更可信的摘要應同時呈現:已核准需求、已實作、已執行、通過、失敗、阻塞、未執行、證據可能失效與待決策。

主管需要的不是漂亮百分比,而是知道還缺什麼、誰能決定,以及不處理會影響什麼。

結語

需求追溯矩陣不是為了增加文件負擔,而是讓團隊在發生爭議時,可以快速回到共同證據。

AI 可以加速比對與找缺口;但核准、驗收與風險接受,仍必須由有權限的人完成。

如果一項功能無法回答「為什麼做、怎麼做、如何證明」,它就還沒有真正進入可控狀態。

逐步實作教學

第 1 步:先定義追溯範圍

確認本次要追溯的產品、版本、模組與日期,不要把歷史所有需求一次混在同一張表。

第 2 步:蒐集原始來源

保留 Email、會議紀錄、正式需求書、變更單、設計稿、任務卡、測試報告與驗收紀錄的來源名稱、版本、日期與連結。

第 3 步:為需求建立唯一編號

每項需求使用穩定 ID,例如 REQ-LOGIN-001。標題可以調整,ID 不應因措辭變更而重編。

第 4 步:拆成可驗收的原子需求

一句需求只表達一個可驗證結果。將「查詢、修改、匯出並寄信」拆成不同需求或明確子項。

第 5 步:記錄版本與狀態

至少區分草案、待確認、已核准、已取代、已取消與已上線。舊版本不能直接刪除。

第 6 步:建立需求到設計的對應

記錄每項需求由哪份流程、畫面、資料欄位、API 或權限設計實現;沒有設計證據就標記缺口。

第 7 步:建立需求到開發項目的對應

連結任務卡、分支、版本或交付物。禁止只靠任務名稱猜測對應關係。

第 8 步:建立驗收條件

每項需求至少有一個正常條件;必要時加入邊界、錯誤、權限、資料與復原條件。

第 9 步:連結測試案例與結果

記錄測試案例 ID、執行版本、日期、結果與證據。只建立案例但尚未執行,不能算已驗證通過。

第 10 步:連結缺陷與回歸測試

缺陷應連回受影響需求與測試案例。修正後必須有對應版本和回歸結果。

第 11 步:處理變更與取代關係

新需求若取代舊需求,要記錄變更原因、核准人、生效版本、受影響設計及需重測項目。

第 12 步:找出四種孤兒

  • 孤兒需求:沒有設計、開發或測試
  • 孤兒開發:找不到核准需求
  • 孤兒測試:沒有對應需求或驗收條件
  • 孤兒缺陷:修正了問題,卻不知道影響哪項需求

第 13 步:檢查證據是否仍有效

需求、程式或資料規則變更後,舊測試可能失效。必須核對證據使用的版本與環境。

第 14 步:產生上線覆蓋摘要

呈現已核准需求總數、已實作、已測試、通過、失敗、阻塞、未執行與待決策,而不是只給一個「完成率」。

第 15 步:設定維護責任

規定誰建立需求 ID、誰維護連結、何時更新矩陣,以及哪些變更會觸發重新驗證。

完整提示詞與輸入格式

可替換欄位

  • [專案/產品名稱]
  • [本次版本]
  • [需求來源資料]
  • [設計與開發資料]
  • [測試與缺陷資料]
  • [變更與決議資料]
  • [狀態定義]
  • [核准規則]
  • [資料隱私限制]
  • [輸出語氣]

完整提示詞

你是一位「需求追溯與驗收證據分析員」。請協助我把需求、設計、開發、測試、缺陷、變更決議與上線證據整理成可回查的需求追溯矩陣。你不能替任何人核准需求、宣告完成或接受風險。

【專案/產品名稱】
[專案/產品名稱]

【本次版本】
[本次版本]

【狀態定義】
[狀態定義]

【核准規則】
[核准規則]

【需求來源資料】
[需求來源資料]

【設計與開發資料】
[設計與開發資料]

【測試與缺陷資料】
[測試與缺陷資料]

【變更與決議資料】
[變更與決議資料]

【資料隱私限制】
[資料隱私限制]

【任務】
1. 保留每項資料的來源、版本、日期、作者/角色與連結。
2. 將需求拆成單一、可驗收的原子項目,建立候選唯一 ID。
3. 區分草案、待確認、已核准、已取代、已取消與已上線需求。
4. 為每項需求建立:原始來源→核准需求→設計→開發→測試→缺陷/回歸→發布證據的關聯。
5. 每一條關聯標示直接證據、間接證據、文字相似候選或無法確認。
6. 找出孤兒需求、孤兒開發、孤兒測試與孤兒缺陷。
7. 檢查每項驗收條件是否有測試案例、執行結果與有效版本證據。
8. 檢查需求變更後,哪些設計、程式、測試與文件需要更新或重跑。
9. 區分已建立測試、已執行、通過、失敗、阻塞與未執行。
10. 產生上線覆蓋摘要、缺口優先順序與人工確認清單。

【限制】
1. 不得因文字相似就宣告正式對應;只能列為候選並說明依據。
2. 會議中提及、原則同意或無人反對,不等於正式核准。
3. 任務標記完成,不等於需求已驗收。
4. 建立測試案例,不等於測試已執行或通過。
5. 缺陷標記已修正,不等於回歸測試已完成。
6. 不得自行新增需求、核准人、測試結果、版本或發布狀態。
7. 已取代與已取消需求不得直接刪除,須保留原因與生效版本。
8. 若證據版本早於最後一次需求或程式變更,標記為可能失效。
9. 涉及個資、客戶資料、帳密、內部連結時,依[資料隱私限制]遮罩。
10. 使用繁體中文,語氣為[輸出語氣]。

【輸出格式】
1. 一分鐘主管摘要:核准需求數、完整追溯數、主要缺口與待決策事項。
2. 需求主清單:需求 ID|標題|版本|狀態|來源|核准證據|驗收條件。
3. 追溯矩陣:需求 ID|設計|開發|測試案例|結果|缺陷/回歸|發布證據|信心。
4. 孤兒清單:類型|項目|缺少關聯|影響|建議確認人。
5. 覆蓋缺口:需求/條件|目前證據|缺口|風險|最小補救行動。
6. 變更影響表:變更|舊版|新版|受影響項目|需重測|生效條件。
7. 上線覆蓋摘要:已核准/已實作/已執行/通過/失敗/阻塞/未執行。
8. 必須人工確認事項。
9. 維護規則:負責角色、更新時機、重新驗證觸發條件。