【用語解説】John Micco氏の言う"Flaky"なテストとは?

JaSST'18 TokyoではGoogleのJohn Micco氏が基調講演とチュートリアルで登壇します。
この2つのセッションのキーワードとなるのが「"Flaky"なテスト」です。

Flakyなテストって?

みなさんCI回してますか?
CI回していると一定の割合でコードもテストも環境にも変更を加えていないのにたまに失敗するテストってありませんか?
今回の基調講演者のJohn Micco氏が所属するGoogleでは、このような「同じコードでpass/failどちらの結果にもなってしまう」テストを、"flaky"(nondeterministicとも呼ばれます)なテスト結果と呼んでいます。

We define a "flaky" test result as a test that exhibits both a passing and a failing result with the same code.

(引用:Google Testing Blog | Flaky Tests at Google and How We Mitigate Them )

Flakyなテストには、(多分)みんな困っている

Googleでも全てのテストランにおいて毎回1.5%程度の割合で"flaky"なテスト結果が出るそうです。
Flakyなテストが増えると、

  • 原因の確認にQAや開発者の貴重な時間を使ってしまう
  • 開発者がバグを見逃す機会になる

失敗したテストだけを自動再実行するなどの対処療法もありますが効果は限定的ですし、なによりコミットからフィードバックまでの時間が長くなってしまいます。
この問題はリリースの頻度が高い組織ほど、大きな問題になります。

Googleの解決策

この問題に対して、Googleでは実行時間・テストタイプ・消費リソースなどの沢山のデータを集めて、それらのデータがflaky testsとどう関係しているかを研究しているそうです。
JaSST'18 TokyoのJohn Micco氏の基調講演やチュートリアルでは、この問題に対する世界最先端の取り組みが聞けるかもしれません。

参考記事

お申込み締め切りは2/26(月) 18:00!

日本にいながらGoogleの人から直接CIを教えてもらえる機会なんて、たぶん今後10年ありません。自動化でFlakyなテストに困っている皆様、必聴です。
他にもGoogleが自動テストという文脈においてどのような問題に直面しているのか、どのような取り組みを行っているのかを聞いてみたい/知りたい方も是非お越しください。情報交換会で、Micco氏に直接質問することも出来るかもしれません。

お申込みはこちらから。2/26(月) 18:00締め切りです!