Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIともっと楽するE2Eテスト
Search
Yohei Maeda
July 08, 2025
Programming
9
3.3k
AIともっと楽するE2Eテスト
Yohei Maeda
July 08, 2025
Tweet
Share
More Decks by Yohei Maeda
See All by Yohei Maeda
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
370
Other Decks in Programming
See All in Programming
AIエージェント開発、DevOps and LLMOps
ymd65536
1
340
TDD 実践ミニトーク
contour_gara
0
140
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.2k
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
13
7.1k
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
900
CSC305 Summer Lecture 04
javiergs
PRO
1
100
Portapad紹介プレゼンテーション
gotoumakakeru
1
130
自作OSでDOOMを動かしてみた
zakki0925224
1
1.4k
TanStack DB ~状態管理の新しい考え方~
bmthd
2
310
サイトを作ったらNFCタグキーホルダーを爆速で作れ!
yuukis
0
460
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
980
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
720
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
How to Ace a Technical Interview
jacobian
279
23k
Statistics for Hackers
jakevdp
799
220k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
For a Future-Friendly Web
brad_frost
179
9.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
AIともっと楽するE2Eテスト 〜未来の「当たり前」を今、試してみる〜 2025/07/08 yohei
アジェンダ 自己紹介 なぜ今、AIとテストの話をするのか? AIとの協業に向けたアーキテクチャの試み AIと目指すテスト自動化への挑戦 我々の現在地と、これからの話
yohei © LayerX Inc. $ whoami LayerX バクラク事業部 (2023-09 -)
Software Engineer バクラク申請経費精算 エンジニアリングマネー ジャー ラジオとお酒が好き 最近の悩み 夜になると疲れ目でコードレビューができない
時代の変化 Agentic Coding コードは 「書く」 から 「生成・レビューする」 時代へ © LayerX
Inc. なぜ今、AIとテストの話をするのか? Cursor, Claude CodeなどのAIツールが急速に普及 コード生成の効率は大幅に向上 テストの重要性が高まり、QA(品質)がボトルネックに 4
新たな課題 開発速度の爆発的な向上 AIツールの普及により、機能開発・コード生成が 大幅に高速化 、多くの人が書ける時代に ↓ 品質保証のボトルネック化 © LayerX Inc.
なぜ今、AIとテストの話をするのか? E2Eテスト作成: 依然として時間がかかる 手動テスト実行: 人的リソースに依存 品質と速度のトレードオフが顕在化 5
我々の視点 AI時代のテスト戦略の重要性 特にユーザー体験の最後の砦である 複雑なドメインのためE2Eテストの重要性が増している バクラク 申請・経費精算での実例 © LayerX Inc. なぜ今、AIとテストの話をするのか?
複雑な申請作成フロー 多様な企業設定(様々な組み合わせ) 属人性の排除できる動く仕様書としてのE2Eテスト 6
AIでテストを書くことの重要性 従来のテスト作成の課題 AIがもたらす変化 ※想像も多分に含んでます © LayerX Inc. AIでテストを書くことの重要性 学習コスト :
テストフレームワークの習得が必要 属人化 : テスト設計・実装に専門知識が必要 メンテ : 仕様変更時のテスト更新が大変 実装障壁の低下 : 自然言語でテストシナリオを記述 民主化 : 専門知識がなくてもテスト作成可能 継続的なメンテ : チーム全体でテストに貢献、AIがテストをメンテナンス 7
我々のアプローチ AI Firstな設計思想 AIが最大限のパフォーマンスを発揮できる アーキテクチャ設計こそが重要 人間のためではなく、AIのための設計へ © LayerX Inc. AIが書きやすい「ScreenActionパターン」
8
技術スタック・ツールと成果 技術構成 © LayerX Inc. 利用している技術スタック 言語: Flutter(Dart) E2Eツール: Patrol
AI基盤: Claude 4 Opus(希望者全員に配布) 開発支援: Cursor, Claude Code, Roo Code, Cline レビュー: Greptile(トライアル中) 9
E2Eアーキテクチャの検討 3つのパターンを比較検討 © LayerX Inc. AIが書きやすい「ScreenActionパターン」 Page Object Pattern: 画面ごとに要素と操作を一つのクラスに統合
シンプルだが、大規模になると責務が混在 Custom Commands Pattern: よく使う操作を再利用可能なコマンドとして定義 重複は減るが、画面固有のロジックが散らばりがち Screen Action Pattern: 要素・操作・検証を別々のクラスに分離 責務が明確で、AIが理解しやすい構造 10
検討結果:Screen Action Patternを採用 採用理由 AIが特化しやすい設計 各クラスの役割が明確で、 AIが迷わずコード生成できる © LayerX Inc.
AIが書きやすい「ScreenActionパターン」 AI適性: 生成すべきコードの責務が明確 保守性: 変更の影響範囲が限定的 チーム開発: 役割分担がしやすい 11
ScreenActionパターンの概要 責務を明確に分離した構造 © LayerX Inc. AIが書きやすい「ScreenActionパターン」 PageObject: UI要素の定義のみ ( enterEmail()
, enterPassword() , tapLoginButton() ) ActionObject: 操作の定義のみ ( login() ) StateObject: 状態検証のみ ( isErrorVisible , isLoggedIn ) ScreenObject: 上記3つを統合 ( isLoginSuccess() , navigateToNextScreen() ) ScenarioFile: テストケースの定義 (ログイン→申請作成ボタンタップ→申請作成) 12
AIと目指すテスト自動化への挑戦 AIと目指すテスト自動化への挑戦
Before / After ※まだ実験段階です これまで(手作業) 手作業でのテスト作成にはかなりの時間がかかっていた AI活用後 プロンプト一つで短時間でベースとなるテストコードを生成可能 大幅な効率化を実現 ©
LayerX Inc. Step 1: 既存コードからテストコード生成 14
実際のプロンプト例 → 簡単なページの作成はこれで十分 © LayerX Inc. Step 1: 既存コードからテストコード生成 15
Dart MCP使った自動生成の例 ※Dart MCPは開発中の機能になります(次回Flutterリリースで使えるようになりそう) © LayerX Inc. Step 2: MCP利用したテスト作成
0:00 16
チーム全体でのテスト作成の可能性 チーム開発の革新につながる可能性 期待される成果 © LayerX Inc. チーム全体でのテスト作成 QAエンジニア: 実際に操作しながらシナリオを自然言語で描述→コード生成 プロダクトオーナー:
ユーザーストーリーをテストに変換 デザイナー: UIの振る舞いを直接テスト化 テスト作成時間の大幅短縮 カバレッジの向上 品質の継続的改善 17
未来へのロードマップ 今後の目標 © LayerX Inc. 我々の現在地と、これからの話 Mobile MCPの本格導入 アプリ内自動回遊テストの実現 ビジュアルリグレッションテストの自動生成
チーム全体でのテスト作成フロー確立 18
長期ビジョン AIによるテストの完全自動生成 そんな未来を夢見て、これからも試行錯誤を続けます © LayerX Inc. 未来へのロードマップ テスト保守の自動化 ユーザーストーリーからの直接生成 19
None
ご清聴ありがとうございました © LayerX Inc. 21