Flaky Test
不穩定測試
不穩定測試會在程式沒變時忽好忽壞。常見原因有時間、順序、共用狀態、隨機值或外部系統。
另一個例子
瀏覽器測試在平行執行時失敗,因為兩個 Worker 共用帳戶。獨立 Fixture 和事件等待可消除搶用資料的問題。
主要部分
- 01被測程式或行為
- 02可觀察證據
- 03覆蓋、失敗與復原
什麼時候用
記錄並重現失敗。若暫時隔離測試,要指定負責人並修正真正原因。
什麼時候不要用
避免盲目重試、永久隔離、無證據責怪環境,或把一次通過當成修好。
程式裡的名稱
repetition + seed + timing/order isolation 上線前要檢查
檢查環境與預先準備的測試資料。定義看得到的預期結果、失敗與邊界案例。也要定義隔離方式、固定輸入、查錯資訊與清理流程。設定執行時間預算、負責人與不穩定測試的處理規則。
預期成果:用 不穩定測試 (Flaky Test) 收集可重複驗證這項行為或品質風險的證據。 使用者情境:瀏覽器測試在平行執行時失敗,因為兩個 Worker 共用帳戶。獨立 Fixture 和事件等待可消除搶用資料的問題。 驗證方式:不穩定測試 (Flaky Test)。 適用理由:記錄並重現失敗。若暫時隔離測試,要指定負責人並修正真正原因。 不應使用的情況:避免盲目重試、永久隔離、無證據責怪環境,或把一次通過當成修好。 測試要求:說明要測的系統與環境。定義預先準備的測試資料(Fixture)、其他輸入,以及看得到的預期結果。加入預期失敗、邊界案例、容許值、隔離方式與清理流程。 測試維護:讓失敗原因容易查找,並控制隨機或會改變的輸入。指定負責人。測試速度與維護成本要符合發布前檢查的需要。 驗收條件:已知缺陷存在時測試會失敗,修正後通過。測試能在目標環境重複執行,提供可採取行動的證據,且不洩漏或改動無關資料。 證據與限制(證據邊界):沒有一份官方標準能管到全部內容。不同團隊、平台或框架的用法可能不同。 待確認:發布前必過的檢查、環境、測試資料、容許值、執行時間預算、負責人,以及不穩定測試的處理規則。
檢查這份需求
請 AI 程式助手檢查目前如何使用 不穩定測試 (Flaky Test)。 定義:不穩定測試會在程式沒變時忽好忽壞。常見原因有時間、順序、共用狀態、隨機值或外部系統。 正式環境檢查:檢查環境與預先準備的測試資料。定義看得到的預期結果、失敗與邊界案例。也要定義隔離方式、固定輸入、查錯資訊與清理流程。設定執行時間預算、負責人與不穩定測試的處理規則。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。