TL;DR
プロダクトコードにもテストコードにも手を触れていないのに、結果が成功したり失敗したりする不安定なテスト。信頼不能テストとも呼ぶ。
なぜ必要か
Flaky test が増えると、開発者はテストの結果を信じなくなる。書籍『Google のソフトウェアエンジニアリング』では、テストスイート全体の 1% が信頼不能テストになると、エンジニアはテストの結果を信じなくなり始めるとされている。
仕組み
追跡と集計
1 回の実行だけでは、テストが Flaky かどうか判断できない。テストスイートを何度も実行し、その結果を保存、集計、比較する必要がある。BuildPulse などの SaaS を使うか、Rust の cargo-nextest のように SaaS と連携できるツールを使う。
抜本的な対策
根本的には、テストをできるだけ小さくする(テストサイズ)。
自分の理解
Flaky test は、偽陰性と偽陽性のうち偽陰性の一種である。