Slide 1

Slide 1 text

Copyright coconala Inc. All Rights Reserved. WebのE2Eテスト自動化 〜導入から運用・評価までの道のり編〜 DATA : 2023.12.09 株式会社ココナラ 鈴木悠仁 Ver. テスト自動化カンファレンス2023

Slide 2

Slide 2 text

Copyright coconala Inc. All Rights Reserved. 鈴木 悠仁(すずき ゆうと) 株式会社ココナラ プロダクト開発部 DevOpsグループ QA開発チーム Team Manager ● ココナラ入社2年目の1人目QAE ● SeleniumからPlaywrightに気移り中 ● 筋トレ系QAエンジニア 紹介 0 2

Slide 3

Slide 3 text

Copyright coconala Inc. All Rights Reserved. 紹介 0 3

Slide 4

Slide 4 text

Copyright coconala Inc. All Rights Reserved. 4 Agenda まえおき テスト設計編 テスト実装編 運用編 評価 1 2 3 4 5

Slide 5

Slide 5 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 5 今日のゴール 実際にE2Eテストを導入・運用してみて、 いま振り返って「やってよかった」ことを共有する!

Slide 6

Slide 6 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 6 入社時の状況 ● QA知見者が現場にいない ● QA工程での不具合検知数が多い ● テスト漏れの結果、障害流出... etc. ● 機能拡充に伴い、リグレッションも徐々に増加... E2Eテストは ここへのアプローチ!

Slide 7

Slide 7 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 7 目指したいE2Eテスト像 いっぱい作っても1人で 保守できるかな? 今のリリース速度に 影響でないかな? テスト失敗が多くてリ リースの足を引っ張ら ないかな?

Slide 8

Slide 8 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 8 目指したいE2Eテスト像 ● 最小のテストで最大の品質を保証できるテスト ● 運用のボトルネックにならないテスト ● 信頼性の高いテスト

Slide 9

Slide 9 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 9 目指したいE2Eテスト像 ● 最小のテストで最大の品質を保証できるテスト ● 運用のボトルネックにならないテスト ● 信頼性の高いテスト CUJにテストケースを絞る テスト実行時間の上限設定と短縮 “決定性の向上”と”偽陽性への耐性強化”

Slide 10

Slide 10 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 10 運用までの軌跡 プロジェクトQA 2022年 プロジェクトQA 2023年 ツール 選定 PoC テスト 設計 テスト 実装 実行 環境 作成 運用

Slide 11

Slide 11 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 11 詳細はこちら!

Slide 12

Slide 12 text

Copyright coconala Inc. All Rights Reserved. まえおき 1 12 作業用Mac ショートカット HTTP Request リアルタイム通知 テスト実行 テスト結果送信 詳細はこちら!

Slide 13

Slide 13 text

Copyright coconala Inc. All Rights Reserved. 13 Agenda まえおき テスト設計編 テスト実装編 運用編 評価 1 2 3 4 5

Slide 14

Slide 14 text

Copyright coconala Inc. All Rights Reserved. テスト設計編 2 14 目指したいE2Eテスト像 ● 最小のテストで最大の品質を保証できるテスト ● 運用のボトルネックにならないテスト ● 信頼性の高いテスト CUJにテストケースを絞る テスト実行時間の上限設定と短縮 “決定性の向上”と”偽陽性への耐性強化”

Slide 15

Slide 15 text

Copyright coconala Inc. All Rights Reserved. テスト設計編 2 15 ①運用に耐えられる 自動テスト実行時間を決めた! 大規模プロジェクト => 30分以内 上記以外 => 15分以内

Slide 16

Slide 16 text

Copyright coconala Inc. All Rights Reserved. テスト設計編 2 16 CUJを絞るため! リリース速度に対応するため!

Slide 17

Slide 17 text

Copyright coconala Inc. All Rights Reserved. テスト設計編 2 17 ②実行時間内に実施するCUJを EM・PdMと決めた!

Slide 18

Slide 18 text

Copyright coconala Inc. All Rights Reserved. テスト設計編 2 18 機能毎にUser Journeyを一覧化 する 以下に基づきCUJを決定 ● テスト実行時間 ● アクセス数の多い導線 ● 流通高への影響度

Slide 19

Slide 19 text

Copyright coconala Inc. All Rights Reserved. 19 Agenda まえおき テスト設計編 テスト実装編 運用編 評価 1 2 3 4 5

Slide 20

Slide 20 text

Copyright coconala Inc. All Rights Reserved. テスト実装編 3 20 目指したいE2Eテスト像 ● 最小のテストで最大の品質を保証できるテスト ● 運用のボトルネックにならないテスト ● 信頼性の高いテスト CUJにテストケースを絞る テスト実行時間の上限設定と短縮 “決定性の向上”と”偽陽性への耐性強化”

Slide 21

Slide 21 text

Copyright coconala Inc. All Rights Reserved. テスト実装編 3 21 ③固定秒待機を使わない! Playwrightの自動待機は優秀!

Slide 22

Slide 22 text

Copyright coconala Inc. All Rights Reserved. テスト実装編 3 22 ④“Retry”で偽陽性への耐性を上げる!

Slide 23

Slide 23 text

Copyright coconala Inc. All Rights Reserved. テスト実装編 3 23 Question: ● テストケース数:100 ● 1テストケースの成功率:95% => 1回の実行で成功する確率 は??

Slide 24

Slide 24 text

Copyright coconala Inc. All Rights Reserved. 24 Agenda まえおき テスト設計編 テスト実装編 運用編 評価 1 2 3 4 5

Slide 25

Slide 25 text

Copyright coconala Inc. All Rights Reserved. 運用編 4 25 目指したいE2Eテスト像 ● 最小のテストで最大の品質を保証できるテスト ● 運用のボトルネックにならないテスト ● 信頼性の高いテスト CUJにテストケースを絞る テスト実行時間の上限設定と短縮 “決定性の向上”と”偽陽性への耐性強化”

Slide 26

Slide 26 text

Copyright coconala Inc. All Rights Reserved. 運用編 4 26 ⑤テスト信頼性をモニタリングする! 信頼不能性が1%になるあたりで、 テストは価値を失い始める

Slide 27

Slide 27 text

Copyright coconala Inc. All Rights Reserved. 運用編 4 27 失敗原因を必ず分類する

Slide 28

Slide 28 text

Copyright coconala Inc. All Rights Reserved. 運用編 4 28 ここを捕捉して撲滅する

Slide 29

Slide 29 text

Copyright coconala Inc. All Rights Reserved. 運用編 4 29 ⑥“Retry”をしても 徹底的に原因調査・修正をする!

Slide 30

Slide 30 text

Copyright coconala Inc. All Rights Reserved. 運用編 4 30 1回目失敗。2回目で成功。 それでも失敗したことには変わらない。 辛抱強く、確実に潰す。 総合的には成功。

Slide 31

Slide 31 text

Copyright coconala Inc. All Rights Reserved. 31 Agenda まえおき テスト設計編 テスト実装編 運用編 評価 1 2 3 4 5

Slide 32

Slide 32 text

Copyright coconala Inc. All Rights Reserved. 評価 5 32 運用を始めて4ヶ月目の現在...

Slide 33

Slide 33 text

Copyright coconala Inc. All Rights Reserved. 評価 5 33 1%以内を達成!

Slide 34

Slide 34 text

Copyright coconala Inc. All Rights Reserved. 評価 5 34 運用しながら信頼性 が上がっている

Slide 35

Slide 35 text

Copyright coconala Inc. All Rights Reserved. 評価 5 35 沈静化

Slide 36

Slide 36 text

Copyright coconala Inc. All Rights Reserved. 評価 5 36 ほぼほぼ撲滅!

Slide 37

Slide 37 text

Copyright coconala Inc. All Rights Reserved. 評価 5 37 時間超過も安定傾向 ここは外部サー ビス起因...です 最近 昔

Slide 38

Slide 38 text

Copyright coconala Inc. All Rights Reserved. 評価 5 38 まとめ ● 最小のテストで最大の品質を保証できるテスト ● 運用のボトルネックにならないテスト ● 信頼性の高いテスト CUJにテストケースを絞る テスト実行時間の上限設定と短縮 “決定性の向上”と”偽陽性への耐性強化” ● 運用面:不満なし ● 保守面:最近暇 ● 品質面:CUJにおける重大な本番障害なし 今のところいい感じ!

Slide 39

Slide 39 text

Copyright coconala Inc. All Rights Reserved. Fin. 39