Skip to content
All writing Part 06 of 09 · 一次 Golang 版本升級的連鎖反應
Engineering · 1 min read

測試結果只是關於輸入的事實

測試結果是關於那個輸入的事實,不是關於系統的事實。把診斷嚴謹度對齊到決策的爆炸半徑,只在 verdict 即將決定基礎設施時啟動。

一個測試說「函式庫壞了」。但它真正說的,只是「這個輸入在這個版本上產生了這個輸出」。從 verdict 到「為什麼」的那一步:「函式庫回歸了」、「環境沒問題」,是推論,不是事實。

測試 verdict = 關於那個輸入的 FACT 它即將驅動什麼決策? 小的 / 可逆的 信任它,繼續 ✓ 結構性 / 難以回頭 停——先用生產輸入驗證
閘門啟動的時刻,正好是判斷錯誤最昂貴——也最有信心的時刻。

這道閘門幾乎不會啟動,多數 verdict 驅動的是小改動。它啟動的時刻,恰好是判斷錯誤最昂貴的時刻,也恰好是你最有信心的時刻。

  • 把診斷嚴謹度對齊到決策的爆炸半徑(判斷錯了會波及多大範圍)。
  • 你不可能質疑每個測試,那會癱瘓開發。讓檢查變成一個觸發器,只在 verdict 即將決定你的基礎設施時才啟動。
  • FACT vs ASSUME 套用在 PR 上有用,但如果沒套用在 PR 底下的測試證據上,就會靜默失效。

綠或紅是關於那個輸入的事實。「所以系統沒問題」是推論——推論的嚴謹度要對齊它即將驅動的決策的規模。


Related: 回到連鎖反應總覽,或參見被污染的測試基準會反轉你的診斷釘版要附退場計畫

Tags #devops #debugging #docker
// connect

Be brave | Be wise | Be grateful

21 BreakinCode

// elsewhere
LinkedInMedium (lang: en)Youtube
wh:~$William Hung· © 2026 Taipei · GMT+8 · Available for collaboration