TL;DR

プロダクトコードにもテストコードにも手を触れていないのに、結果が成功したり失敗したりする不安定なテスト。信頼不能テストとも呼ぶ。

なぜ必要か

Flaky test が増えると、開発者はテストの結果を信じなくなる。書籍『Google のソフトウェアエンジニアリング』では、テストスイート全体の 1% が信頼不能テストになると、エンジニアはテストの結果を信じなくなり始めるとされている。

仕組み

追跡と集計

1 回の実行だけでは、テストが Flaky かどうか判断できない。テストスイートを何度も実行し、その結果を保存、集計、比較する必要がある。BuildPulse などの SaaS を使うか、Rust の cargo-nextest のように SaaS と連携できるツールを使う。

抜本的な対策

根本的には、テストをできるだけ小さくする(テストサイズ)。

自分の理解

Flaky test は、偽陰性と偽陽性のうち偽陰性の一種である。

関連

出典