Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
長年続く手動E2Eテストを自動化で救いたい
Search
kinosuke01
September 24, 2025
Technology
0
94
長年続く手動E2Eテストを自動化で救いたい
「10年以上続くプロダクトの苦労と知恵 ~運用と技術の本音、3社がぶっちゃけます~」におけるLT資料です。
https://replus.connpass.com/event/366589/
kinosuke01
September 24, 2025
Tweet
Share
More Decks by kinosuke01
See All by kinosuke01
AIを導⼊しても、 開発⽣産性は"爆増"していない なぜ?
kinosuke01
4
4.2k
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
1.3k
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
290
カンファレンス登壇資料を毎日読む習慣
kinosuke01
0
210
Notionで作るWebサイト「MuuMuu Sites」の裏側
kinosuke01
0
2.4k
Other Decks in Technology
See All in Technology
インフラ室事例集
mixi_engineers
PRO
2
160
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
9
5.7k
学術的根拠から読み解くNotebookLMの音声活用法
shukob
1
620
AI開発の定着を推進するために揃えるべき前提
suguruooki
1
460
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
13
8.7k
AI エージェント活用のベストプラクティスと今後の課題
asei
2
420
MS Ignite 2025で発表されたFoundry IQをRecap
satodayo
1
170
【ASW21-02】STAMP/CAST分析における生成AIの支援 ~羽田空港航空機衝突事故を題材として (Support of Generative AI in STAMP/CAST Analysis - A Case Study Based on the Haneda Airport Aircraft Accident -)
hianraku9498
2
480
AI 時代のデータ戦略
na0
8
2.6k
『星の世界の地図の話: Google Sky MapをAI Agentでよみがえらせる』 - Google Developers DevFest Tokyo 2025
taniiicom
0
450
生成AIシステムとAIエージェントに関する性能や安全性の評価
shibuiwilliam
2
290
ローカルVLM OCRモデル + Gemini 3.0 Proで日本語性能を試す
gotalab555
1
250
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.3k
Raft: Consensus for Rubyists
vanstee
140
7.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
66
Documentation Writing (for coders)
carmenintech
76
5.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Being A Developer After 40
akosma
91
590k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Navigating Team Friction
lara
191
16k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Fireside Chat
paigeccino
41
3.7k
Transcript
1 ⻑年続く⼿動E2Eテストを ⾃動化で救いたい ロリポップ‧ムームードメイン事業部 ⻄⽥貴之 2025.09.24
2 ⾃⼰紹介 ロリポップ‧ムームードメイン事業部 事業開発チーム 2020年 中途⼊社 ⻄⽥ 貴之 Nishida Takayuki
• Webアプリケーションエンジニア • 主に新規事業開発を担当 • エンジニア組織におけるAI活⽤の推進や 開発⽣産性向上への取り組みも⾏っている。 • X : @kinosuke01
背景 3
背景 • GMOペパボのロリポップ‧ムームードメイン事業部は、 コンパネの操作でサーバー等のインフラをセットアップして提供する プロダクトが多い。 • 例)ロリポップ!レンタルサーバー • これらは個別のユニットテストだけではカバーできないので、 E2Eテストで品質担保する必要がある。
• 20年以上運⽤されてきたプロダクトもあるが、 E2Eテストが⼿動のままなので、これを⾃動化したい 🔥 E2Eテストを⾃動化したい
背景 • Playwrightとは • Microsoft社製のE2Eテストツール。 • 実装したテストコードに従い、ブラウザを⾃動操作‧動作検証してくれる。 • 実⾏結果をブラウザ画⾯のスクリーンショットつきで、レポートしてくれる。 •
このPlaywrightを、 事業部の主要なプロダクトに導⼊開始した。 解決策としてPlaywrightを導⼊開始 スクリーンショットつきの テスト結果のレポート例
現状と理想像 6
現状と理想像 1. 開発者は、PRを作る。 2. PRのコードを検証環境にデプロイする (ここは既に⾃動化されている)。 3. 開発者は、検証環境で必要なE2Eテストを⼿動で⾏いスクリーンショットを撮る。 4. 開発者は、E2Eテスト結果とエビデンス(スクリーンショット)をコメントする。
5. レビュアーは、コードレビューに加え、 E2Eテスト結果から本番環境に反映して問題ないかをチェックする。 6. 問題なければ承認&マージ。 現状の開発フローは、⼿動のE2Eテストとスクリーンショットが必要
現状と理想像 1. 開発者は、PRを作る。 2. PRのコードを検証環境にデプロイする (ここは既に⾃動化されている)。 3. 開発者は、任意のE2Eテスト実⾏をコメントで指⽰する。 4. GitHub
Actions で Playwright が起動。 コードに含まれるテストケースともとに、E2Eテストが⾃動実⾏。 結果がスクリーンショット付きでコメントされる。 5. レビュアーは、コードレビューに加え、 E2Eテスト結果から本番環境に反映して問題ないかをチェックする。 6. 問題なければ承認&マージ。 理想は、⼿動のE2Eテストとスクリーンショット登録を⾃動化
課題と対応 任意のE2Eテストを実⾏したい 9
課題と対応:任意のE2Eテストを実⾏したい • 課題 • E2E⾃動テストは時間もかかり不安定なので、PR作成やpushと同時に全部動かすという ことはしたくない。なので、任意のE2EテストをPRの中で発動させる必要がある。 • 対応 • Playwrightのタグ機能を使って、
特定のタグに紐づいたテストのみ実⾏できるようにする。 • PRのコメントで、スラッシュコマンドと実⾏対象のタグを受け取る。 • ⾃前でパースしてもいいし、カスタムアクション使ってもいい。 • これにより任意のテストだけの実⾏を実現する。 Playwrightのタグと、スラッシュコマンドで対応
課題と対応:任意のE2Eテストを実⾏したい PRに、このようにコメントすると Playwrightのタグと、スラッシュコマンドで対応 /pw signup npx playwright test --grep "@signup"
巡り巡って、これがGithub Actionsで実⾏される。 これは簡単にできる。
課題と対応 スクショつきのテスト結果がほしい 12
課題と対応:スクショつきのテスト結果がほしい • 課題 • 現状、⼿動のE2Eテストの結果は、スクリーンショットつきでPRコメントしている。 • これと同じことをやりたいが、GitHub API は画像登録に対応していない 🔥
• どこかにホストされている画像を、Markdownの中で表⽰させることはできるが、 GitHub上に画像を登録するAPIはなさそう。 スクリーンショット登録は簡単ではない 「ここにドラッグアンドドロップで画像 登録する」と同等のことがAPIではで きない
課題と対応:スクショつきのテスト結果がほしい • 対応案 • S3等のオブジェクトストレージを準備して、スクリーンショットをホストする。 • ホストされた画像URLを、PRコメント欄に登録する。 • 評価 •
管理対象のインフラを増やしたくないので、できれば避けたい ❌ • GitHub 上で完結できる⽅が望ましい。 案1: オブジェクトストレージにホストする
課題と対応:スクショつきのテスト結果がほしい • Playwrightはテスト結果として、 htmlとスクリーンショットのセットをレポート出⼒する。 • これを、GitHub Actions の中で、任意のリポジトリにプッシュして、 GitHub Pages
で公開する。 • 社内で利⽤している GitHub Enterprise には GitHub Pages のページにデフォルトでアクセス制御ついているので安⼼。 • Github Pages へのリンクをPRコメントに投稿する。 案2: GitHub Pages使う
課題と対応:スクショつきのテスト結果がほしい 案2: Github Pages 使うケースはうまく動いた GitHub Actions上で、 レポートとスクリーンショットを 任意のリポジトリにプッシュ ビルドとデプロイされて、
レポートがGithub Pagesで確認できる
課題と対応:スクショつきのテスト結果がほしい • GitHub Pages は静的サイトをビルドしてデプロイしている。 • 対象ファイルが増えれば増えるほど、時間がかかってしまう。 • レポートが増えてくると、反映されるまで相当の時間がかかりそう ❌
案2: GitHub Pages使うのは問題もある
課題と対応:スクショつきのテスト結果がほしい • Playwrightのテスト結果を、 Markdownとスクリーンショットのセットで出⼒する。 • これを、GitHub Actions の中で、任意のリポジトリにプッシュする。 • プッシュしたMarkdownファイルのGitHubのURLを、PRコメントに投稿する。
• Markdownファイルは、GitHub上でプレビュー表⽰されるので、 GitHub Pages のような仕組みが不要。 案3: スクショつきのMarkdownを使う
課題と対応:スクショつきのテスト結果がほしい • Playwright標準のレポーターはMarkdownに⾮対応。 • サードパーティ製のMarkdownに対応したカスタムレポーターはあるけど、 スクリーンショットを表⽰してくれなさそう... • 要件を満たすMarkdownレポーターがない 🔥 案3:
ただ、PlaywrightのはMarkdownのレポーターがない
課題と対応:スクショつきのテスト結果がほしい • 仕⽅ないので、Playwrightのカスタムレポーターを作って、 今回の要件に合うMarkdownファイルを出⼒できるようにした。 • こんな感じの構造で出⼒している。 案3: Markdownのカスタムレポーターを作った - playwright-md-report
- index.md - screenshots - xxx.png - xxx.png
課題と対応:スクショつきのテスト結果がほしい • 出⼒された index.md をエディタでプレビューするとこんな感じ • 出⼒項⽬は調整の必要があるけど、できるのはわかった。 案3: Markdownのカスタムレポーターを作った
課題と対応:スクショつきのテスト結果がほしい こんな感じになった 1. `/pw xxx` とコメント 2. xxxタグのE2Eテストが実⾏ 3. 結果がコメントされる
4. 結果コメント欄にある View Reportをクリックすると 案3: 全体の挙動確認
課題と対応:スクショつきのテスト結果がほしい 5.ViewReportをクリックすると Markdown形式のレポートが GitHub上でプレビュー表⽰。 スクショ付き。 案3: 全体の挙動確認 理想とする体験を 実現することができた 👏👏
課題と対応:スクショつきのテスト結果がほしい • Markdownのレポーターの出⼒内容を調整して、OSSにする。 • ⼀連のGitHub Actionsの流れをカスタムアクションにして、 複数のプロダクトで簡単に導⼊できるようにする。 • 複数のプロダクトに導⼊していく。 残作業
まとめ 25
26 まとめ 現業務プロセスを踏まえて、E2Eテスト⾃動化を進めている。 Markdown対応等「ないものは作る」ことで課題解決。 ⾃動化を進めて、⻑年続くサービスを⽀えていきましょう。 以上になります。ありがとうございました!