在AI測試中使用評分卡沒你想的那么糟
誰不喜歡斷言(asserts)呢?
![]()
我們有個壞習(xí)慣,把"簡單"和"容易"混為一談。在傳統(tǒng)自動化中,定義質(zhì)量很簡單。它是二元的。要么匹配,要么不匹配。綠色或紅色。
`Assert.AreEqual(expected, actual)`
但在AI領(lǐng)域,"好"不是二元的。它很復(fù)雜。有五十種正確說"你好"的方式,也有五十種粗魯說它的方式。作為人類,我們憑直覺處理這種復(fù)雜性。我們讀到一個不完美但抓住了主要思想的輸出,會想:"嗯,夠好了。"
但當(dāng)我們試圖自動化這種感覺時,問題就開始了。自動化討厭"差不多對"。自動化想要精確。而當(dāng)我們試圖將一個非確定性的、創(chuàng)造性的AI塞進(jìn)一個僵化的、二元的盒子里時,我們得到的不是質(zhì)量。相反,我們得到的是不穩(wěn)定的測試(flaky tests)。
![]()
僵化數(shù)學(xué)的問題
讓我們看一個真實世界的例子:我的API 分析智能體(An API Analysis Agent)。
這是一個設(shè)計用來分析API端點的AI智能體。你給它一個提示詞:"分析這個端點,給我3個有效輸入的建議、3個無效輸入的建議,以及3個邊界情況的建議。"
在傳統(tǒng)測試中,你的斷言邏輯大概長這樣:
assert len(suggestions.valid)== 3assert len(suggestions.invalid) == 3assert len(suggestions.edge_cases)== 3
現(xiàn)在,假設(shè) AI 返回了:
● 3個有效建議。
● 3個無效建議。
● 2個邊界情況。
總計:完成了9個請求中的8個。
在傳統(tǒng)自動化的二元世界里,這個測試失敗了。報告變紅。流水線停止。你在Slack上收到告警。你看著失敗說:"蠢 AI。"(當(dāng)然,別在麥克風(fēng)附近說,它可能會聽見)。
但等等,看看數(shù)據(jù)。它給了你 8 個扎實的建議。它找到了有效輸入和無效輸入。它甚至找到了兩個棘手的邊界情況。它只是漏了一個邊界情況。這是一個"失敗"的結(jié)果嗎?還是這是一個非常有用的結(jié)果,只是沒達(dá)到一個arbitrary(隨意設(shè)定)的計數(shù)?
通過把這個標(biāo)記為失敗,你在扔掉價值。你在用一個二元的"壞"標(biāo)簽,掩蓋一個"夠好"的結(jié)果。
![]()
解決方案:評分卡
為了解決這個問題,我們必須停止測試相等性(Equality),開始測試實用性(Utility)。我們需要從二元斷言轉(zhuǎn)向評分卡(Scorecard)。
評分卡將"夠好"量化。它將結(jié)果分解成加權(quán)的概念并把它們加起來。
讓我們把我們之前的API結(jié)果翻譯成使用評分卡的方法:
評分標(biāo)準(zhǔn):
● 有效輸入:每個 1 分(最多 3 分)
● 無效輸入:每個 1 分(最多 3 分)
● 邊界情況:每個 1 分(最多 3 分)
通過閾值:
● 及格分?jǐn)?shù):> 6
執(zhí)行過程:AI 返回了 3 個有效、3 個無效和 2 個邊界情況。
● 分?jǐn)?shù):3 + 3 + 2 = 8
● 閾值:6
● 結(jié)果:通過
突然之間,你的測試套件不是紅的了。它是綠的。為什么?因為產(chǎn)品完成了它的工作。它提供了價值。評分卡反映的是質(zhì)量的現(xiàn)實,而不僅僅是提示詞的嚴(yán)格性。
進(jìn)化:評分卡是活的代碼
關(guān)鍵來了:這個評分卡不是靜態(tài)的。今天6分的閾值可能是可接受的。但隨著你的模型改進(jìn),或者你優(yōu)化提示詞工程,你可能會把閾值提高到8。或者你可能給"有效案例"加個乘數(shù),因為它們更重要。
這不是"維護(hù)負(fù)擔(dān)",這是質(zhì)量工程(Quality Engineering)。你在主動決定"夠好"長什么樣,并把它編碼進(jìn)你的套件。
![]()
結(jié)論
測試基于AI的產(chǎn)品或智能體,需要我們在如何看待自動化上進(jìn)行根本性轉(zhuǎn)變。我們正在從檢查字符串轉(zhuǎn)向評分行為。我們正在從"通過/失敗"轉(zhuǎn)向"夠好"。
如果你還在試圖對LLM 輸出使用`Assert.Equals`,那你將會在 2026 年和你自己的測試套件打架。而且你會輸。
`Assert.Equals`
這種從二元到評分的轉(zhuǎn)變,正是我們想鼓勵人們開始使用的戰(zhàn)略性思考。這就是我的Captain's Bridge(艦長橋)的用武之地。讓我們停止與我們的工具對抗,開始領(lǐng)導(dǎo)我們的質(zhì)量——來自戰(zhàn)壕的戰(zhàn)略原則或?qū)嵺`。
??轉(zhuǎn)崗軟件測試/野路子技能提升
??想了解更多漲薪技能提升方法
??可以到我的個人號:atstudy-js
即可加入領(lǐng)取 ??????
轉(zhuǎn)行、入門、提升、需要的各種干貨資料
內(nèi)含AI測試、 車載測試、AI大模型開發(fā)、BI數(shù)據(jù)分析、銀行測試、游戲測試、AIGC
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.