<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Spurious-Failure on Tarragon</title><link>https://tarrragon.github.io/blog/tags/spurious-failure/</link><description>Recent content in Spurious-Failure on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Thu, 18 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/spurious-failure/index.xml" rel="self" type="application/rss+xml"/><item><title>spurious failure：偽失敗</title><link>https://tarrragon.github.io/blog/til/terms/spurious-failure/</link><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/til/terms/spurious-failure/</guid><description>&lt;blockquote>
&lt;p>這個詞出現在「&lt;a href="../unreliable-tests/">測試紅燈不一定是真的壞&lt;/a>」這個問題裡。&lt;/p>&lt;/blockquote>
&lt;p>spurious failure（偽失敗）指&lt;strong>測試或建置確實失敗了，但失敗的原因是環境、網路、暫態干擾、基礎設施問題&lt;/strong>——被測對象本身沒有問題。&lt;/p>
&lt;p>它是測試的 &lt;a href="../false-positive/">false positive&lt;/a>：報了失敗、但程式碼其實沒問題。&lt;/p>
&lt;h2 id="與-flaky-的區別">與 flaky 的區別&lt;/h2>
&lt;p>兩者都是測試的 false positive，重點不同：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>spurious failure&lt;/strong> 強調「&lt;strong>這次失敗的原因不是真因&lt;/strong>」——例如 CI 機器磁碟滿了、套件源連不上。&lt;/li>
&lt;li>&lt;strong>&lt;a href="../flaky/">flaky&lt;/a>&lt;/strong> 強調「&lt;strong>間歇、不穩定&lt;/strong>」——重跑可能就過，成因常是競態或時序。&lt;/li>
&lt;/ul>
&lt;p>一次 spurious failure 不一定 flaky（環境修好就穩定失敗或穩定通過）；flaky 的每次紅則多半是 spurious——除非不穩定源自被測碼自身的非確定性（那時紅燈反映的是真缺陷，不是偽失敗）。&lt;/p>
&lt;h2 id="處理">處理&lt;/h2>
&lt;p>確認是偽失敗後，修的是&lt;strong>環境或基礎設施&lt;/strong>，不是被測程式碼。把它和真失敗區分開，避免污染對測試的信任（見 &lt;a href="../alert-fatigue/">alert fatigue&lt;/a>）。&lt;/p>
&lt;h2 id="相關概念">相關概念&lt;/h2>
&lt;ul>
&lt;li>上位概念：&lt;a href="../false-positive/">false positive&lt;/a>。&lt;/li>
&lt;li>近鄰：&lt;a href="../flaky/">flaky&lt;/a>。&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<blockquote>
<p>這個詞出現在「<a href="../unreliable-tests/">測試紅燈不一定是真的壞</a>」這個問題裡。</p></blockquote>
<p>spurious failure（偽失敗）指<strong>測試或建置確實失敗了，但失敗的原因是環境、網路、暫態干擾、基礎設施問題</strong>——被測對象本身沒有問題。</p>
<p>它是測試的 <a href="../false-positive/">false positive</a>：報了失敗、但程式碼其實沒問題。</p>
<h2 id="與-flaky-的區別">與 flaky 的區別</h2>
<p>兩者都是測試的 false positive，重點不同：</p>
<ul>
<li><strong>spurious failure</strong> 強調「<strong>這次失敗的原因不是真因</strong>」——例如 CI 機器磁碟滿了、套件源連不上。</li>
<li><strong><a href="../flaky/">flaky</a></strong> 強調「<strong>間歇、不穩定</strong>」——重跑可能就過，成因常是競態或時序。</li>
</ul>
<p>一次 spurious failure 不一定 flaky（環境修好就穩定失敗或穩定通過）；flaky 的每次紅則多半是 spurious——除非不穩定源自被測碼自身的非確定性（那時紅燈反映的是真缺陷，不是偽失敗）。</p>
<h2 id="處理">處理</h2>
<p>確認是偽失敗後，修的是<strong>環境或基礎設施</strong>，不是被測程式碼。把它和真失敗區分開，避免污染對測試的信任（見 <a href="../alert-fatigue/">alert fatigue</a>）。</p>
<h2 id="相關概念">相關概念</h2>
<ul>
<li>上位概念：<a href="../false-positive/">false positive</a>。</li>
<li>近鄰：<a href="../flaky/">flaky</a>。</li>
</ul>
]]></content:encoded></item></channel></rss>