這個詞出現在「測試紅燈不一定是真的壞」這個問題裡。

spurious failure(偽失敗)指測試或建置確實失敗了,但失敗的原因是環境、網路、暫態干擾、基礎設施問題——被測對象本身沒有問題。

它是測試的 false positive:報了失敗、但程式碼其實沒問題。

與 flaky 的區別

兩者都是測試的 false positive,重點不同:

  • spurious failure 強調「這次失敗的原因不是真因」——例如 CI 機器磁碟滿了、套件源連不上。
  • flaky 強調「間歇、不穩定」——重跑可能就過,成因常是競態或時序。

一次 spurious failure 不一定 flaky(環境修好就穩定失敗或穩定通過);flaky 的每次紅則多半是 spurious——除非不穩定源自被測碼自身的非確定性(那時紅燈反映的是真缺陷,不是偽失敗)。

處理

確認是偽失敗後,修的是環境或基礎設施,不是被測程式碼。把它和真失敗區分開,避免污染對測試的信任(見 alert fatigue)。

相關概念