Flaky なテストとは?

Flaky なテストは、コードまたはテストそのものに変更がないにもかかわらず、合格と不合格の両方を返すテストであると定義されています。

不確実なテスト結果が返されるのには、環境が矛盾している、テストランごとにテストデータをリフレッシュしていない、来ミングとタイムゾーンの問題、テストの実行順の依存関係といったいくつかの要因が原因として挙げられます。

Flaky なテストが問題となるのは、こういったテストによって CI/CD パイプラインの速度が低下し、テストプロセスへの信頼が損なわれてしまうためです。 Flaky なテストの結果に頼ることができなければ、テストランがうまくいったとしても、コードにバグがないのか、テストに失敗した場合には問題を再現して修正することに時間を費やすべきなのかに不安が募ります。

Flaky なテストを見つけるには、複数のテストランで得られたテスト結果を比較する必要があります。 この解析を手動で実行するには時間が掛かってしまいますが、幸いにも、多くの CI サーバーは Flaky なテストを自動的に検出することができます。

Flaky なテストを管理するには、まずそれらの Flaky なテストを特定する必要があります。 問題の範囲がわかれば、修正の優先順位を決めることができます。 Flaky なテストを暫定的にミュートして、不確実なテスト結果が自動化テストのレポートから除外されるようにすることをお勧めします。