Engineering · 1 min read
測試結果只是關於輸入的事實
測試結果是關於那個輸入的事實,不是關於系統的事實。把診斷嚴謹度對齊到決策的爆炸半徑,只在 verdict 即將決定基礎設施時啟動。
一個測試說「函式庫壞了」。但它真正說的,只是「這個輸入在這個版本上產生了這個輸出」。從 verdict 到「為什麼」的那一步:「函式庫回歸了」、「環境沒問題」,是推論,不是事實。
這道閘門幾乎不會啟動,多數 verdict 驅動的是小改動。它啟動的時刻,恰好是判斷錯誤最昂貴的時刻,也恰好是你最有信心的時刻。
- 把診斷嚴謹度對齊到決策的爆炸半徑(判斷錯了會波及多大範圍)。
- 你不可能質疑每個測試,那會癱瘓開發。讓檢查變成一個觸發器,只在 verdict 即將決定你的基礎設施時才啟動。
- FACT vs ASSUME 套用在 PR 上有用,但如果沒套用在 PR 底下的測試證據上,就會靜默失效。
綠或紅是關於那個輸入的事實。「所以系統沒問題」是推論——推論的嚴謹度要對齊它即將驅動的決策的規模。
Related: 回到連鎖反應總覽,或參見被污染的測試基準會反轉你的診斷和釘版要附退場計畫。