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.4k
AIともっと楽するE2Eテスト
Yohei Maeda
July 08, 2025
Tweet
Share
More Decks by Yohei Maeda
See All by Yohei Maeda
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
390
Other Decks in Programming
See All in Programming
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
3
690
iOSからFlutterへ20代エンジニアの転身とWidget Preview実践
nappannda
0
100
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
250
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
1.4k
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
130
print("Hello, World")
eddie
2
530
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.6k
半自動E2Eで手っ取り早くリグレッションテストを効率化しよう
beryu
1
300
概念モデル→論理モデルで気をつけていること
sunnyone
3
310
Reactをクライアントで使わない
yusukebe
3
690
Featured
See All Featured
Fireside Chat
paigeccino
39
3.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Designing for Performance
lara
610
69k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Into the Great Unknown - MozCon
thekraken
40
2k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Making Projects Easy
brettharned
117
6.4k
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