Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2023.3.30 開発者体験向上に⽋かせない 不安定なテスト改善の秘訣 Mai Kaneko
Slide 2
Slide 2 text
⾃⼰紹介 ⽒名 : ⾦⼦茉以(Kaneko Mai) 会社 : LINE Fukuoka 所属 : 開発2室 SETチーム 役割 : Software Engineer in Test 担当プロジェクト : LINE Creators Market https://creator.line.me/ja/ Twitter : https://twitter.com/maturika_ne
Slide 3
Slide 3 text
発表内容 安定化 ⾼速化
Slide 4
Slide 4 text
発表内容 安定化 ⾼速化 安定化
Slide 5
Slide 5 text
01 02 03 04 05 06 07 Contents LINEのSETがやっていること Flaky testとは Flaky testあるある Flaky testへの対応 Launchableを使った事例 Launchableを使った感想 まとめ
Slide 6
Slide 6 text
以前のE2Eテストの実⾏状況 QA環境 本番環境 開発環境 Daily E2E テスト (約200テスト ケース) Daily E2E テスト (約80テストケー ス) 開発者へのフィードバックが遅い
Slide 7
Slide 7 text
現在のE2Eテスト実⾏状況 QA環境 本番環境 開発環境 Daily E2E テスト 実⾏ Daily E2E テスト 実⾏ 早いフィードバックが可能 PR毎に E2E テスト実⾏
Slide 8
Slide 8 text
PR-Driven E2Eテスト ref. https://speakerdeck.com/line_devday2020/pull-request-driven-e2e-testing-with-kubernetes
Slide 9
Slide 9 text
開発者への フィードバック 実⾏頻度 Flaky testの 発⾒頻度 遅い 1⽇ 1~2回 低い 早い 1⽇ 数⼗回 ⾼い After (Daily + PR-Driven) Before (Daily テストのみ) PR-Driven E2Eテスト 導⼊前後⽐較
Slide 10
Slide 10 text
Flaky test Flakyなテスト結果とは、 同じコードで合格と失敗の両⽅の結果 を⽰すテストである Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを⽀える技術、⽂化、プロセス ⽵辺 靖昭 (監修), Titus Winters (編集), Tom Manshreck (編集), Hyrum Wright (編集), 久富⽊ 隆⼀ (翻訳), 2021, P.253, 訳注13より引⽤
Slide 11
Slide 11 text
Flaky test ⾃分が修正した内容とは関係ないテストがCIで落ちて困ったり、イライラすることはありませんか? • E2Eテストは外部要因も絡むのでテストが不安定になりがち • ロングランしているサービスはユニットテスト数が多くなり、⽐例して不安定なテストも多くなる テストコードもテスト対象サービスのコードも変えていないのにもかかわらず、 ときどき失敗したりする不安定なテストのこと
Slide 12
Slide 12 text
Flaky testあるある① 放置されがち 再現性が低い→エラー状態を作るのが⾯倒→放置されがち Flaky testがあるとテスト結果を有効に活⽤できなくなる 最悪、誰もテスト結果⾒なくなってしまうことも
Slide 13
Slide 13 text
Flaky testあるある② リトライしがち テストをリトライする →テストが不安定なのかテスト対象サービスが不安定なのか不明 →サービスのバグを⾒落とす可能性ある
Slide 14
Slide 14 text
実際の事例 E2Eテストが数回に1回失敗したが、 E2Eテストには問題がなくcache storageの⽅で問題があった 暗黙のリトライは本当の解決策ではない server cache storage 数回に1回失敗
Slide 15
Slide 15 text
Flaky testへの対応 Flaky test の発⾒ 膨⼤な時間と労⼒がかかる 原因調査 &修正 どのくらいの 頻度で発⽣する のか調査 修正確認
Slide 16
Slide 16 text
Launchable Flaky testのスコアを出してくれる
Slide 17
Slide 17 text
Launchable導⼊後 Flaky test の発⾒ 原因調査 &修正 どのくらいの 頻度で発⽣する のか調査 修正確認 Flaky test対応の⼤部分はLaunchableにおまかせができる!!
Slide 18
Slide 18 text
Launchableを使っての感想 • Flaky test対応楽になった • 導⼊簡単 • Documentわかりやすい • CLI (https://github.com/launchableinc/cli) 使いやすい • エラーメッセージで何が間違っているのかすぐわかる • さまざまなテストフレームワークに対応している • サポート⼿厚い • 複数のCIを使っているPR-Driven E2Eテストの複雑な環境にも適⽤できた • 改善要望を伝えると検討・実現してくれる
Slide 19
Slide 19 text
まとめ • PR-Driven E2EテストによりE2Eテスト実⾏回数が膨⼤に増えた • それに伴い、Flaky testが増えた • Flaky testは放置されがち、リトライしがちな傾向がある • 対応するのは⼤変 • Launchableを使うことで調査、修正確認などの⼿間が減らせた • 今後展望として • ユニットテストへの適⽤ • 他の機能を活⽤し効率的なテスト実⾏を⽬指す
Slide 20
Slide 20 text
THANK YOU