Flaky test シバキ隊(Fukuoka.rb #397 〜RubyKaigi 2025の機運〜)

796 Views

March 20, 25

スライド概要

profile-image

航海士 → Webプログラマー / #fjordbootcamp / Kaigi on Rails Organizer / Rubyist / Vimmer / Turntablist / hiphop / cactus / workout / fukuoka / IDA JAPAN 2023 finalist

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

Flaky test シバキ隊 @obregonia1

2.

自己紹介 • @obregonia1(オブレゴニア) • 株式会社mov • 趣味は DJ や珍奇植物 • 推しは NJZ (NewJeans) • 2024年から Kaigi on Rails のオーガナイザー

3.

4月 17 mov Drinkup at RubyKaigi 2025 主催: 株式会社mov DAY 2 Drink up at Rubykaigi 2025 4.17 Thu. 19:00 START ハッシュタグ : #movdrinkup RubyKaigi Day2 ドリンクアップやります

4.

Flaky test とは? • コードを変更していないにも関わらず成功したり失敗したりする不安定なテスト • 原因はランダム性だったり、テスト間の依存関係によるものだったり色々ある • おそらくほとんどのアプリケーションに Flaky test が存在している • テストの内16%は Flaky test だとも言われている ◦ https://testing.googleblog.com/2016/05/flaky-tests-at-google-and-how-we.html

5.

Flaky test の何が問題? • テストが頻繁に落ちてしまうと CI に対する信頼性が無くなってしまう • Flaky test が落ちたのか、コードの変更によって落ちるようになったのかが分かりにくくなる • 再実行してテストが終わるまでの時間や、再実行するための GitHub Actions などのワークフローの実行時間が無駄になってしまう

6.

入社したときの状況 • 現職に入ったのは2024年の11月 • Flaky test の影響で結構な頻度で CI が落ちる… • おそらく社内ではそんなに問題視されてはいない • 一人だけ先輩のエンジニアが Flaky test の PR を作ってたりした • 地味にストレス…

7.

やってみるか

8.

やったこと • master 以外のブランチでしか CI が回ってなかったから master でも回すように変更 ◦ 基本的に CI がパスしてからマージするので master で失敗したテストは基本的に Flaky test だから特定しやすい

9.

やったこと • Gem "rspec-retry " を使って retry する # rails_helper.rb config.around :each, :retry do |ex| ex.run_with_retry retry: 3 end # test it "foo", :retry do ~

10.

やったこと あとは flaky test を見つけて対応していくだけの簡単なお仕事…

11.

その後… before after

12.

その後… 月間MVPゲットした オブレゴニア(DJ OB-ONE) @obregonia1 · Mar 12 やったぜ 御祝 月間MVP 株式会社mov

13.

その後… 別のチームの方からも改善してくれてる人だと認知されてた!

14.

ということで みなさんも Flaky test シバキ隊やっていきましょう

15.

THANK YOU ! ! !