Flaky Test とは?
flaky test は、テスト対象のコードに何の変更もないのに、時に pass し時に fail するという一貫しない結果を生むテストです。よくある原因には race condition、timing への依存、テスト間の共有状態、不安定な外部依存などがあります。flaky test は CI への信頼を蝕みます。赤い build がもはや確実に実際の問題を意味しなくなるからです。
なぜ重要か
flaky test はチームを、失敗を無視して緑になるまで再実行するよう仕向け、それが本物のバグを覆い隠し runner の分を無駄にします。クリーンで分離された ephemeral な環境は、残留状態に起因する flakiness の一種を丸ごと取り除き、flaky test を隔離して修正することでスイートへの信頼が回復します。
関連する概念
- テストの分離は共有状態の flakiness を取り除く
- ephemeral な runner は job 間の汚染を防ぐ
- retry は flakiness を修正せず覆い隠すことがある
関連ガイド
What Is a Regression Test?A regression test verifies that previously working functionality still works after a change, catching newly i…
What Is an Ephemeral Runner?An ephemeral runner is a CI worker that runs exactly one job on a fresh machine, then is destroyed, giving ev…
What Is Retry with Backoff?Retry with backoff re-attempts a failed operation after progressively longer waits, often with jitter, to han…