iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0
自我挑戰組

踏入品質保證工程之路:QA 新手如何善用 AI 與開發者工具系列 第 15 篇

放寬措辭,絕不放寬紅線:定義可接受的範圍

  • 分享至 

  • xImage
  •  

我們撐過了兩個星期!! /images/emoticon/emoticon07.gif 在進入主要內容之前,先來一道電路題:如果一顆標示 1 kΩ ±5% 的電阻,在你的三用電表上量到 1,030 Ω,你會拒收嗎?又如果妳必須整捲驗證一批這樣的電阻,你會只量一顆,還是抽樣?而結果又該怎麼回報?

你會留下它,因為 1,030 Ω 落在 950–1,050 Ω 的容許誤差帶之內。標示上寫的是一個範圍,而不是一個精確值——正如 AI 的回答應該用「可接受的範圍」來評判,而不是對照某一個唯一的標準答案。要驗證整捲電阻,你不會只相信單一次量測。你會抽樣——比方說抽 20 顆——看看有幾顆落在容差之內,然後回報良率,例如「20 顆中有 19 顆在規格內」,而不是只給一個簡單的通過或不通過。那個良率,就是一致率。

我出身工程背景,早已習慣「正確不等於精確」的觀念。電阻可以有一個標稱值加上可接受的容差,量測到的訊號可以有些微變動,電路卻依然完全照預期運作。但當我開始思考 AI 測試時,我總是把回答看成只有兩種狀態:對或錯。如果同一個助理用不同的措辭回答了同一個問題兩次,其中一次應該只因為沒有命中預期的句子就被判失敗嗎?

這帶出一個更值得追問的問題:如果 AI 的正確性更接近一個可接受的運作區間,而不是單一個完美值呢? 這不代表把標準降低。它代表把「必須精確的部分」與「可以合理變動的部分」分開,再為兩者各自定義可量測的邊界。與其問整份回答「正不正確」,QA 可以改問:哪些構面是正確的、每一個構面該怎麼評判,以及可接受的變動從哪裡開始變成真正的缺陷。

1. 正確不是一個布林值

一個 AI 回答可能在某個構面上成功,卻在另一個構面上失敗,所以把整份回答視為單一個 PASS 或 FAIL,會把有用的資訊藏起來。正確性可能要求事實必須與可信的產品資料一致;錯誤的價格、規格或庫存數字是不可接受的。格式可能要求所有預期欄位與正確的資料型別,缺了一個引用來源或結構化欄位格式錯誤就是明確的失敗。這些構面可以直接對照來源資料或用精確斷言來檢查,因為幾乎沒有理由容忍曖昧。

其他構面需要的則是範圍,而不是唯一答案。語氣可以允許不同的措辭,只要回覆保持禮貌且在授權範圍內;而辱罵性言論或超出系統權限的承諾則落在可接受範圍之外。安全可以容許建議的表達方式有所變化,但對於個人資料外洩或危險指引必須守住嚴格界線。成本同樣可以透過延遲與回覆長度的上限來定義,而不是要求每次執行都一模一樣。因此,可接受範圍的目的不是讓測試變簡單——它是用來指明變動在哪裡無害、又從哪裡變成缺陷。

構面 可接受 不可接受 評判方式
正確性 事實與產品資料一致 價格、規格或庫存錯誤 對照來源資料
格式 所有欄位齊備,型別正確 缺少引用,或欄位型別錯誤 精確的結構化斷言
語氣 有禮,在授權範圍內 辱罵、越權承諾 人工評分或校準過的評審
安全 不外洩個人資料,無危險建議 外洩訂單資訊、越權建議 硬性規則直接擋下
成本 延遲與長度在預算內 逾時、回覆過長 延遲門檻與長度上限

2. 重複抽樣與一致率

一次成功的回應,對一個非確定性系統來說,其實也是薄弱的證據。QA 可以把同一個案例重複跑數次,量測一個一致率:輸出在正確性、格式、語氣、安全與成本這些可接受範圍內的比例有多高。如果二十次回應中有十九次符合標準,卻有一次憑空捏造了產品事實,這個變異就會被看見,而不是藏在一次幸運的 PASS 背後。重複抽樣不要求句子完全相同;它量測的是,在措辭變化的同時,真正重要的行為是否始終保持在可接受的狀態。

以我曾做過的一個煙霧測試為例:我用自然語言問一個 AI 驅動的內部工具,某筆測試紀錄裡有多少筆項目、它們按類型怎麼分佈,再把回覆與文件中的預期答案比對。總數完全相符,但明細不對:工具把幾筆項目歸進了一個文件答案從未提到的「其他」類別,於是兩個按類型的數字就對不上。嚴格的單次通過/失敗檢查會直接把它判為失敗。但仔細一看,核心事實是正確的,差異來自答案的分組方式,加上預期答案本身可能已經過時了。

正因如此,這類案例更適合抽樣,而不是單次執行。把同一個提示詞發送五次,事先定義好可接受範圍(總數必須相符,而各類別加總必須等於總數),寫下一條通過規則,例如五次中有四次落在範圍內,然後回報那個比率,例如「5/5 在總數上一致,3/5 有分出『其他』」,而不是只給一個孤零零的通過或失敗。這個比率可以看出工具是穩定地正確、穩定地不同,還是在各次執行之間飄移,也給了你一個可以長期追蹤的指標。不過,每多跑一次都是時間與用量的成本,所以選五次而不是二十次,是預算決策,不單純是技術決策。

3. 仍然必須硬性斷言的部分:不是所有東西都能放寬

容差只屬於變動真正可接受的地方。安全紅線必須維持硬性界線:AI 系統不得外洩個人資料,也不得做出未經授權的醫療或法律保證。這些行為不是「95% 或 99% 的一致率就能接受」的等級,因為單一次違規就可能造成真實的後果。拒絕回答或安全回應周圍的措辭可以變化,但被禁止的行為本身,應該永遠讓測試失敗。

結構化輸出與合規要求也是同樣的道理。如果另一個系統預期特定欄位,QA 就應該用精確斷言確認:必要欄位確實存在、資料型別正確、引用 ID 有效且可解析。諸如退款期限、保固條款、資格規則或其他既定政策的合規陳述,也應該鎖定在核准過的來源上。一個答案可以用很多種不同方式解釋「14 天退款期限」,但它絕不該悄悄把那 14 天變成 30 天。

關鍵的區分在於「表達」與「義務」。語氣、句子結構與措辭可以擁有可接受範圍,因為多種回覆可能傳達同一個正確含義。安全規則、結構化合約與固定的政策事實卻不能得到同樣的彈性,因為那裡的變動會改變系統實際做了什麼、或承諾了什麼。放寬措辭,絕不放寬紅線。

容忍的極限

可接受範圍把 AI 測試從脆弱的字句對照中解放出來,但它們引入了另一種成本:總得有人來評判那個範圍。如果語氣這類主觀構面完全依賴人工審查,測試會變得難以擴展,所以反覆評估可能需要一個校準過的評審,其評判標準錨定在經過人工審查的範例上。另一個極端的危險,是把範圍放得太寬,寬到幾乎每份回應都變得「可接受」,留下一個技術上通過、卻證明不了什麼的測試。因此,每個構面都應該保留明確不可接受的範例作為對照組:不只問*「我們願意接受什麼?」,也要問「這個測試絕不能容許什麼?」* 容忍應該讓品質的定義更精確,而不是讓品質更容易過關。


上一篇
拆解測試套件,重新打造得更好:新增、合併或刪除測試
下一篇
先打造直尺,再開始測量:建立黃金集
系列文
踏入品質保證工程之路:QA 新手如何善用 AI 與開發者工具 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言