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エージェントによるテストフレームワーク Arbigent
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
takahirom
May 31, 2025
Programming
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AIエージェントによるテストフレームワーク Arbigent
デモ動画が見られるリンク:
https://github.com/takahirom/arbigent
takahirom
May 31, 2025
More Decks by takahirom
See All by takahirom
AndroidアプリのAI実装をAndroidifyで学ぶ ー Google公式サンプルによる体験と実装 ー
takahirom
0
140
Google の LLM ライブラリ を Android アプリで 使うには?
takahirom
1
2.1k
Robolectric Native Graphics and Roborazzi
takahirom
1
2.3k
Androidアプリで安定して動作させ継続的に開発するために設計の原則を利用して開発した話
takahirom
3
1.4k
Android Tools & Performance
takahirom
1
1.2k
Jetpack Compose State Practices
takahirom
1
1.4k
Inside Jetpack Compose
takahirom
1
1.1k
What’s new in Android Jetpack and Tools
takahirom
0
430
ABEMAのKotlin Multiplatform
takahirom
4
6.2k
Other Decks in Programming
See All in Programming
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
320
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
120
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
370
Lessons from Spec-Driven Development
simas
PRO
0
150
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
220
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
260
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
1.8k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
440
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
4.6k
A2UI という光を覗いてみる
satohjohn
1
110
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
How to Talk to Developers About Accessibility
jct
2
220
Mind Mapping
helmedeiros
PRO
1
240
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Claude Code のすすめ
schroneko
67
230k
Scaling GitHub
holman
464
140k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
190
Side Projects
sachag
455
43k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Transcript
(Arbiter-Agent) Arbigent AIエージェントによるテストフレームワーク UIテストの脆さ、AIエージェントの扱いにくさ… 感じたことはありませんか? takahirom takahirom/ arbigent
DEMO動画 https://github.com/ takahirom/arbigent
具体的な「よくある悩み」 から見ていきましょう…
UIテスト、すぐ壊れませんか? Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク 従来のUIテストの課題 UIの少しの変更 (A/Bテスト, 広告, ダイアログ, ユーザー投稿コンテンツ) ですぐ失敗…
UIの少しの変更 (A/Bテスト, 広告, ダイアログ, ユーザー投稿コンテンツ) ですぐ失敗… 要素の特定 (テキスト, ID) が変更されて落ちてしまう… 要素の特定 (テキスト, ID) が変更されて落ちてしまう… 表示要素のローディング待ちで不安定に… 表示要素のローディング待ちで不安定に… メンテナンスに追われる日々… テストがボトルネックになっていませんか? メンテナンスに追われる日々… テストがボトルネックになっていませんか?
UIテストだけでなく、 AIエージェント自体にも課題が… 5 / 20
AIエージェント、期待通りに動きますか? UIテストの脆さへの解決策として期待されるAIエージェント。しかし… UIテストの脆さへの解決策として期待されるAIエージェント。しかし… シンプルなAIエージェントの限界 複雑なタスクを与えると、意図しない動きをすることも… (例: 違うボタンを押す、関係ないアプリを開く) • テストの安定性・再現性に課題が残る場合も… •
シンプルなAIエージェントの限界 複雑なタスクを与えると、意図しない動きをすることも… (例: 違うボタンを押す、関係ないアプリを開く) • テストの安定性・再現性に課題が残る場合も… • AIの可能性は感じるけれど、そのままではうまく動かせない… Arbigent は、これらの課題解決を目指します。 AIの可能性は感じるけれど、そのままではうまく動かせない… Arbigent は、これらの課題解決を目指します。 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
手動テストの項目書、例えば… 前提条件 テスト項目 期待する結果 (アプリ起動済み) ログインする ホーム画面表示 ログイン済み 商品を検索する 検索結果表示
ログイン済み 先頭アイテムを開く アイテム詳細表示 ... ... ... このように、多くのテストには 前提条件 があり、 手順 を追って実行されますよね。 このように、多くのテストには 前提条件 があり、 手順 を追って実行されますよね。 では、これをAIエージェントで扱うにはどうすれば良いでしょうか? では、これをAIエージェントで扱うにはどうすれば良いでしょうか? Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
Arbigentはこれを「シナリオ」として扱います Arbigentでは、テスト項目書の各行(前提+手順)のような単位を 「シナリオ」 として定義します 。 Arbigentでは、テスト項目書の各行(前提+手順)のような単位を 「シナリオ」 として定義します
。 複雑なタスク(例: 購入フロー全体)を、依存関係のある小さな「シナリオ」に分割します 。 複雑なタスク(例: 購入フロー全体)を、依存関係のある小さな「シナリオ」に分割します 。 シナリオ1: 「ログインする」 シナリオ2: 「商品を検索する」 (シナリオ1に依存) シナリオ3: 「カートに追加する」 (シナリオ2に依存) 大きな目標を段階的に達成させます 。 大きな目標を段階的に達成させます 。 手動テストの考え方を、AIエージェントで再現しやすくするアプローチです 。 手動テストの考え方を、AIエージェントで再現しやすくするアプローチです 。 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
ログイン ログイン 検索 検索 先頭アイテムを開く 先頭アイテムを開く この流れ(依存関係)を、どう賢く管理する? ? 9 /
20
依存関係があると、どう実行される? 前のスライドの図のように、YAMLファイルで依存関係を定義すると… # (YAMLファイルのイメージ) scenarios id goal : - :
: "login" "ログインする" - : : : id goal dependency "search" "商品を検索する" "login" # loginシナリオに依存 - : : : id goal dependency "open_head_item" "先頭アイテムを開く" "login" # loginシナリオに依存 Arbigentはこれを解釈し、 自動的 に以下のように実行します: 依存関係に基づき、 「ログイン」 シナリオを実行 「ログイン」完了後、 「検索」 シナリオを実行 (再度)依存関係に基づき、 「ログイン」 シナリオを実行 「ログイン」完了後、 「先頭アイテムを開く」 シナリオを実行 Arbigentはこれを解釈し、 自動的 に以下のように実行します: 依存関係に基づき、 「ログイン」 シナリオを実行 「ログイン」完了後、 「検索」 シナリオを実行 (再度)依存関係に基づき、 「ログイン」 シナリオを実行 「ログイン」完了後、 「先頭アイテムを開く」 シナリオを実行 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
このアプローチを、 「誰が」「どうやって」使う? 12 / 20
UIによるシナリオ作成 QAエンジニアなど、非プログラマー でも直感的なUIでテストシナリオ を設計可能。 作成したシナリオはYAMLファイルとして保存。 UIによるシナリオ作成 QAエンジニアなど、非プログラマー でも直感的なUIでテストシナリオ を設計可能。
作成したシナリオはYAMLファイルとして保存。 コード/CLIによる実行 エンジニア は保存されたYAMLファイルを使い、プログラムやCLIからテ ストを実行。 CI/CDなど既存のテストインフラへの統合が容易。 # CLIインストール (Homebrew) brew tap takahirom/homebrew-repo brew install takahirom/repo/arbigent # YAMLファイルを指定して実行 arbigent --project-file=your_project.yaml ... コード/CLIによる実行 エンジニア は保存されたYAMLファイルを使い、プログラムやCLIからテ ストを実行。 CI/CDなど既存のテストインフラへの統合が容易。 # CLIインストール (Homebrew) brew tap takahirom/homebrew-repo brew install takahirom/repo/arbigent # YAMLファイルを指定して実行 arbigent --project-file=your_project.yaml ... 役割分担しやすく、チームでの協力体制を築きやすい Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
12 / 20 実際どうやって、 Arbigent は動く?
Arbigent: AIエージェントテストフレームワークの実装 ArbigentはAIエージェントを活用したテストフレームワークで、 画面の画像、UIツリー情報、会話履歴をAI に渡し、次のアクションを決定するサイクルを繰り返します。 Input 設定された目標・タ ス ク
設定された目標・タ ス ク 画面のスクリーン ショット 画面のスクリーン ショット UIツリー情報 UIツリー情報 会話履歴 (History) 会話履歴 (History) AIモデル処理 AIに情報送信 Goal + 画像 + history AIに情報送信 Goal + 画像 + history Output 画像のAIが認識した内 容 画像のAIが認識した内 容 AIの思考メモ AIの思考メモ 次の行動 次の行動 実行 ツール実行結果 ツール実行結果 記録 履歴に追加 履歴に追加 目標・入力データ AIモデル処理 AI出力 アクション実行 履歴・記録 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
では、Arbigentの 具体的な特徴を見ていきましょう。 14 / 20
まずは対応範囲 → 特徴 (1): マルチプラットフォーム対応 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク • 幅広いデバイス・OSをサポート:
Android 幅広いAndroidデバイス と様々なバージョンに 対応 iOS iPhoneとiPadの各種モ デルに対応 Web (Chrome) Webアプリケーション のテストに対応 TV D-Padナビゲーション を含むTVアプリに対応 Maestro というテストライブラリを活用し、実現しています。 好きなデバイスでテストできる 好きなデバイスでテストできる
次にAIの効率性 → 特徴 (2): AIの理解度向上 & コスト効率化 幅広いデバイスで動くだけでなく、AI自体を賢く、効率的に使う工夫も必要です。 幅広いデバイスで動くだけでなく、AI自体を賢く、効率的に使う工夫も必要です。
AIの「目」を助ける工夫 アクセシビリティ情報がなくても、注釈付きスクリーンショットでAI の理解を支援。 複雑な画面をAIが理解しやすいように情報を構造化。 AIに渡されるプロンプト 0:View(accessibilityText=Search, bounds=...) 1:View (accessibilityText=Settings, bounds=...) 2:View(text=Android Studio & Tools, ... ) 3:View(accessibilityText=Android Studio & Tools, ...) AIに渡される注釈付きスクリーンショット Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
次にAIの効率性 → 特徴 (2): AIの理解度向上 & コスト効率化 幅広いデバイスで動くだけでなく、AI自体を賢く、効率的に使う工夫も必要です。 幅広いデバイスで動くだけでなく、AI自体を賢く、効率的に使う工夫も必要です。
AIの「目」を助ける工夫 アクセシビリティ情報がなくても、注釈付きスクリーンショットでAI の理解を支援。 複雑な画面をAIが理解しやすいように情報を構造化。 コストを意識した設計 オープンソースでライセンス費用不要。 都合が良いAIモデルを選択し利用可能 AI結果キャッシュ: UIツリーや履歴が同一の場合、キャッシュを利用 しコスト削減 処理の最適化による不要なAI呼び出しの削減 賢く そして経済的に AIを活用することができます。 賢く そして経済的に AIを活用することができます。 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
AIテストで気になるのは 安定性 → 特徴 (3): 堅牢性 17 / 20
AIで気になるのは堅牢性 → 特徴 (3): テストをより確実に! AIによる画像ダブルチェック Roborazzi スクリーンショットテストライブラリ Roborazziの機能を統合し、”リストが表示されていること”などを画像でAIを使いダブルチェックし、
それをAIへフィードバックすることで、自己修正することが可能になり、テスト結果の信頼性を高めます。 前回のアクションにより画面が変化しなかったこと(スタック)を検出 & 回復 AIが操作不能になっても、それを検知して回復を試みます。エラー状態からの自動復帰機能により、テストの継続性を確保します。 AI自体の不安定さへの耐性 例えば起動中のローディングを待ってくれたりします。リトライなしでも安定動作することが多いという特性を活かし、テスト実行の効率性と 確実性を両立しています。 「AIテストって不安定そう…」という不安を軽減する機能が備えています。 「AIテストって不安定そう…」という不安を軽減する機能が備えています。 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
安定性に加え、 柔軟性も重要 → 特徴 (4): 高い拡張性 18 / 22
柔軟性も重要 → 特徴 (4): ニーズに合わせて進化! AIプロバイダー AIプロバイダー
OpenAI, Gemini, Azure OpenAI etc. ArbigentAi I/Fで追加可 デバイス デバイス Android, iOS, Web, TV ArbigentDevice I/Fで追加可 柔軟な設定 初期化・クリーンアップ処理を追加可能 柔軟な設定 初期化・クリーンアップ処理を追加可能 柔軟なカスタマイズ 特定の環境や要件に合わせて拡張できます。 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
AIに道具を与え可能性を広げる → 特徴 (5): MCPサポート
AIに道具を与え可能性を広げる → 特徴 (5): MCPサポート Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク MCP (Model
Context Protocol) サポート ArbigentがUI操作に加えて、 外部ツール や サービスとの連携 を実現し ます。 MCP (Model Context Protocol) サポート ArbigentがUI操作に加えて、 外部ツール や サービスとの連携 を実現し ます。 MCPサポートにより可能になることの例 アプリのインストールなどのセットアップ サーバーログの確認 デバッグログの取得 MCPサポートにより可能になることの例 アプリのインストールなどのセットアップ サーバーログの確認 デバッグログの取得 実現できるテストシナリオ例 「 UIを操作 → (MCP経由で) サーバーログを確認 」のような、 UI操作と外部ツール連携を組み合わせた高度なテストが可能になります。 実現できるテストシナリオ例 「 UIを操作 → (MCP経由で) サーバーログを確認 」のような、 UI操作と外部ツール連携を組み合わせた高度なテストが可能になります。
既存のテストなどと どう比較して 考えたらいいんだろう? 22 / 22
比較してみていくために - GoogleのSMURFの紹介 SMURFは従来のテストピラミッドを超えた、バランスの取れたテストスイート構築のための新しいフレーム ワークです。 5つの要素のトレードオフを考慮することで、より効果的なテスト戦略を実現します。 Speed (速度) ユニットテストは他のテストタイプより高速で、よ り頻繁に実行可能
→ 問題を早期発見 S Speed (速度) ユニットテストは他のテストタイプより高速で、よ り頻繁に実行可能 → 問題を早期発見 M Maintainability (保守性) テストのデバッグと保守にかかるコストは急速に 増加 → 自己完結性が重要 M Maintainability (保守性) テストのデバッグと保守にかかるコストは急速に 増加 → 自己完結性が重要 U Utilization (使用率) U Utilization (使用率) テストが頻繁に実行され、価値を提供する度合い → コスト対効果の最大化 R Reliability (信頼性) R Reliability (信頼性) 信頼性の高いテストは実際の問題がある場合のみ失敗 → フレーキーテスト排除 F Fidelity (忠実度) F Fidelity (忠実度) 本番環境での実際の動作をどれだけ正確に再現できるか → 現実的な検証 出典: Google Testing Blog - SMURF: Beyond the Test Pyramid (2024) SMURFを使ってArbigentをみていってみましょう
GoogleのSMURFフレームワークで5点満点で評価 → まずは強み Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク Maintainability (保守性) 4/5 • AIがUI変化に適応
• 自然言語ゴール • タスク分解 • 非エンジニアでもメンテ可 Fidelity (忠実度) 5/5 • 実環境でテスト • 動画再生確認など従来困難だったテストも可能 Maintainability (保守性) 4/5 • AIがUI変化に適応 • 自然言語ゴール • タスク分解 • 非エンジニアでもメンテ可 Maintainability (保守性) 4/5 • AIがUI変化に適応 • 自然言語ゴール • タスク分解 • 非エンジニアでもメンテ可 Fidelity (忠実度) 5/5 • 実環境でテスト • 動画再生確認など従来困難だったテストも可能 Fidelity (忠実度) 5/5 • 実環境でテスト • 動画再生確認など従来困難だったテストも可能 特に保守性と忠実度 の高さが特徴です
もちろん、良い点ばかりではありません。 現状の課題は?
SMURF評価: 課題と対策 Speed (速度) 1/5 遅い (AI連携/実機操作) 対策:
--shardで並列化して実行可能 Speed (速度) 1/5 遅い (AI連携/実機操作) 対策: --shardで並列化して実行可能 Utilization (利用率) 1/5 高コスト (デバイス+AIリソース) 対策: AI結果キャッシュすることで ある程度抑えられる 状況: AI技術の進化による改善し ていっている 4o → 4.1 (25%コスト改善など) Utilization (利用率) 1/5 高コスト (デバイス+AIリソース) 対策: AI結果キャッシュすることで ある程度抑えられる 状況: AI技術の進化による改善し ていっている 4o → 4.1 (25%コスト改善など) Reliability (信頼性) 3/5 改善機能はあるが外部要因も影響 状況: 起動してくれれば、AIが勝手 に起動待ちなどを待ってくれたり する。 外的要因: Emulatorの起動に失敗 したり、Emulatorが通信に失敗し たりなどをうまくハンドリングす る必要がある Reliability (信頼性) 3/5 改善機能はあるが外部要因も影響 状況: 起動してくれれば、AIが勝手 に起動待ちなどを待ってくれたり する。 外的要因: Emulatorの起動に失敗 したり、Emulatorが通信に失敗し たりなどをうまくハンドリングす る必要がある 速度やコストは現状の課題ですが、AI技術の進化による改善が期待されます。
Firebase アプリ テスト エージェントや Journeys for Android
Studio と比べてArbigentの特徴は?
AIエージェントテストフレームワーク比較 (1/2) 主要機能の比較(2025/05/24時点) 主要な AIエージェントテストフレームワーク の機能比較 それぞれの特徴と適用シーンを理解して、最適な選択をしましょう フレームワーク Made by
Google シナリオ 依存関係管理 シナリオ 自動作成機能 マネージド 環境 自分のCI 環境での実行 MCP 対応 Arbigent ✗ ✗ ✓ ✓ ✓ ✓ Firebase App Testing ✓ ✗ ✗ ✓ ✗ ✗ Journeys for Android Studio ✓ ✗ ✓ ✗ ✗ ✗
AIエージェントテストフレームワーク比較 (2/2) 連携・対応プラットフォームの比較(2025/05/24時点) 各フレームワークの 連携機能 と 対応プラットフォーム の比較 フレームワーク Googleログイン
連携 iOS, AndroidTV Web対応 Gemini以外の モデル Android Studio との連携 Arbigent ✗ ✓ ✓ ✗ Firebase App Testing ✓ ✗ ✗ ✗ Journeys for Android Studio ✗ ✗ ✗ ✓ まとめ Arbigent はマルチプラットフォーム対応と複数AIモデル対応で幅広い環境に対応。 FirebaseはGoogle連携、JourneysはAndroid Studio統合に特化。
では、実際にどうやって 使い始めるのでしょうか?
Arbigent 使い始め方フローチャート まずUIで試す あなたの会社で使える AIのAPIを使い UIでシナリオを作成 OpenAI Gemini Azure
など 1 まずUIで試す あなたの会社で使える AIのAPIを使い UIでシナリオを作成 OpenAI Gemini Azure など 1 1 シナリオを保存する 保存マークで yamlファイルを保存 リポジトリに格納 2 シナリオを保存する 保存マークで yamlファイルを保存 リポジトリに格納 2 2 CIで動かす GitHub Actions などのCIで yamlファイルを実行 arbigent --os=android --project-file=arbigent-project.yaml CIサンプル: https://github.com/takahirom/arbigent-sample 3 CIで動かす GitHub Actions などのCIで yamlファイルを実行 arbigent --os=android --project-file=arbigent-project.yaml CIサンプル: https://github.com/takahirom/arbigent-sample 自動的に品質を確認 3 3 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
まとめ & 今後の可能性 Arbigent とは 複雑なタスクをシナリオに分解し、AIエージェントテストを実践的・スケーラブル にするフレームワーク。 Arbigent
とは 複雑なタスクをシナリオに分解し、AIエージェントテストを実践的・スケーラブル にするフレームワーク。 主な特徴 高い保守性・忠実度 、ハイブリッドワークフロー、クロスプラットフォーム、高い拡張性(MCP含む)。 主な特徴 高い保守性・忠実度 、ハイブリッドワークフロー、クロスプラットフォーム、高い拡張性(MCP含む)。 現状と展望 速度・コストに課題はあるが、AI技術の進化と共に改善が期待される開発中のOSSプロジェクトです。 現状と展望 速度・コストに課題はあるが、AI技術の進化と共に改善が期待される開発中のOSSプロジェクトです。 AIエージェントテストが、より身近で強力な選択肢になる未来は近いかもしれません。 AIエージェントテストが、より身近で強力な選択肢になる未来は近いかもしれません。 Arbigent: モダンアプリケーション向けAIエージェントテストフレームワーク
ご清聴ありがとうございました Arbigent モダンアプリケーション向けAIエージェントテストフレームワーク takahirom/arbigent オープンソースプロジェクト