測試只準在你有想到的地方,漏不漏的決定權從來不在 AI
AI 說功能做好了,我怎麼知道它沒有偷偷漏掉東西?
2026 Aug 09 Vibe Coding Fixer
很多人用 AI 做功能,最後一句對話都長得很像:「功能已完成,已測試通過。」
然後過兩週,有個客人用了一種你沒想到的方式,整個流程壞掉。
先講結論:你沒有辦法從 AI 的回答知道它有沒有漏。它說「做好了」,意思是「你那句描述裡的東西做好了」。你沒講的,它不會算進「做好」的範圍裡。
所以漏不漏這件事,決定權從頭到尾都在你列的清單上,不在它的回覆裡。
一、AI 的「完成」,是照你那句話的定義
你說「做一個報名表,送出後寄信給我」,它做了一個報名表,送出後會寄信給你。這就是它的完成。
同一個人重複送出兩次呢?名字欄留空呢?手機上按呢?信寄失敗呢?這些你沒說,它就沒有義務處理。有時候它會順手做一點,但那是運氣,不是保證。
這不是 AI 偷懶。它是一個照規格做事的東西,規格就是你的那句話。你一句話講的是理想流程,它做的就是理想流程。
所以「有沒有漏」這個問題,其實在你按下送出之前就決定了。你描述得多完整,它就做得多完整。
二、測試只準在你有斷言的地方
有人會說:那我叫它寫測試。
可以,而且應該。但要知道測試的極限:測試只能回答你問的問題。你寫了「送出後應該看到成功訊息」,它就檢查這一件事,這一件事很準。你沒寫「重複送出應該擋住」,這條路徑對測試來說就是瞎的。
這在軟體測試裡有個名字叫 oracle problem(預言者問題):測試需要有人先說「正確應該長什麼樣」,它才能判斷對錯。而那個人只能是你。
我自己做網站系統,用無畫面瀏覽器跑整套前台後台流程,跑得很穩。但我很清楚它只準在我有寫檢查點的地方。所以我的習慣是先分析再動手:動手之前先列出這個功能會碰到哪些情況,再請 AI 做,做完拿清單一條一條對。
覆蓋率是人決定的,AI 只是執行。
三、一份你可以直接拿去對的清單
功能能動跟功能能用,中間隔著這幾類情況。你不用全部做,但要一條一條問過自己「這個發生了怎麼辦」。
使用者操作錯誤:欄位空白、格式打錯、按兩次、按了上一頁再回來。
舊資料:已經有的會員、已經有的訂單,新功能碰到它們會怎樣。
裝置跟瀏覽器:手機、平板、別人的電腦、不同的瀏覽器。
外部服務失敗:付款失敗、信寄不出去、串接的第三方服務沒回應。
同時發生:兩個人同一秒報名最後一個名額。
權限:沒登入的人能不能看到、能不能改。
更新之後:這次的修改有沒有動到原本好好的功能。
這張清單裡任何一條,都是有人開始用之後才會冒出來的事。示範處理的是理想流程,產品處理的是所有例外。
我自己做系統這麼多年,還是常常在半夜處理這種事。不是程式特別難寫,是有人開始用之後,就不能只處理理想狀況。這件事沒有捷徑,只有清單越來越長。
四、實際怎麼用
第一次做功能的時候,先把描述寫給 AI,然後拿上面的清單問自己:這個功能會碰到哪幾條?通常五到七條。把這幾條也寫進描述裡,再讓它做。
做完之後,不要問它「有沒有漏」。它會說沒有。改成一條一條問:「名字留空送出會怎樣?」「同一個 email 報兩次會怎樣?」它答不出來或答得含糊,那一條就是漏的。
最後,把這幾條變成測試腳本裡的檢查點。這樣下次改東西,這幾條會自動再被問一次。你不需要記得,機器會替你記得。
一個常見的偷懶法
有人會叫 AI「幫我列出所有邊角案例」。可以列,但它列的是通用的:空值、格式、重複。
跟你生意有關的它不知道。你的課程可以分期、你的活動有早鳥價、你的會員分兩種、你的客人習慣用 LINE 內建瀏覽器開連結,這些只有你知道,也只有你列得出來。而真正會出事的,幾乎都是這一類。
所以問題回到你身上:你現在能不能為你最重要的那個功能,寫出五條「如果發生這個,應該要怎樣」?寫不出來,AI 說做好了,你也只能信。
如果你做到一半卡住,可以把狀況寫信給我。我每週會在電子報聊這類做網站、用 AI 的判斷,訂閱在這裡:https://iamlouis.ai/subscribe/edm
ABOUT ME

路老闆 Louis
路老闆有限公司創辦人、Compassio 個人品牌一站式網站系統的開發者。二十年網站與行銷實戰經驗,長期陪伴講師、顧問與創作者把專業變成品牌。每週透過電子報與 Podcast《路老闆的個人品牌診療室》,分享個人品牌、網站經營與 AI 行銷的實務觀察。
如想留言評分,請先 登入會員!