0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mobile-mcpで始めるAndroidアプリの次世代自動テストの可能性

Last updated at Posted at 2025-09-14

はじめに

「Androidアプリのテストで、UIが少し変わるたびに自動テストが壊れて、その修正に追われて大変…」 そんな経験はありませんか?

あるいは、

  • UIテストコードを記述できる人材がいない
  • 工数がかかりすぎて導入効果が薄い

といった理由から、結局は 自動化を諦めてしまう… そんな状況も珍しくないかもしれません

前回の記事では、Webアプリを対象に AI駆動の自動テストフレームワーク「AgentiTest」 を紹介しました。Webブラウザを LLM(大規模言語モデル)で自動操作できる Browser-Use を活用し、「自然言語で書いたテスト仕様」がそのまま動く未来を体感しました。

では、これを Androidアプリ にも応用できないか?

そう考え、Browser-Use の代わりとなる AndroidアプリをLLMで自動操作可能な仕組み を調査したのです。その結果たどり着いたのが mobile-mcp です。

これは Model Context Protocol (MCP) に準拠したサーバー で、モバイルアプリの自動操作や開発を、特定のプラットフォームに依存せずにスケーラブルに実現できる仕組み を提供します。

背景:WebアプリからAndroidアプリへの挑戦

WebアプリでのAI駆動テスト成功事例

以前の記事「AI駆動の自動テストフレームワーク「AgentiTest」で始める次世代テスト自動化」で紹介したように、WebアプリではすでにAIを活用した画期的なテスト自動化が実現できています。

従来のSeleniumやPlaywrightベースのテストが抱えていた課題:

  • セレクター依存の脆さ:DOM構造が少し変わるだけでテストが失敗
  • メンテナンスコストの高さ:UI変更のたびに修正作業が発生
  • スケールの困難さ:画面数や機能が増えるほど保守が複雑化

これらの問題を、AgentiTestは以下の技術で解決しました:

  • browser-use:自然言語をブラウザ操作に変換するエンジン
  • pytest:テストの構造化と実行管理
  • Allure Report:ステップごとのスクリーンショットとAIの思考プロセス可視化

自然言語で書かれたテスト指示(例:"find the search bar, type 'BigQuery', and press enter")をLLMが理解し、実際にブラウザを操作してくれる仕組みです。

Androidアプリへの展開の必要性

WebアプリでのAI駆動テスト成功を受けて、自然な疑問が浮かびました:

「この素晴らしいアプローチをAndroidアプリでも使えないか?」

Androidアプリのテスト自動化でも、従来のEspressoやAppiumベースのテストは似たような課題を抱えています:

  • ビューIDやリソース名への依存
  • レイアウト変更による頻繁なテスト修正
  • 複雑なセットアップと保守作業

そこで注目したのが mobile-mcp です。Webアプリのbrowser-useに相当する、AndroidアプリをAIで自動操作できるライブラリとして活用できる可能性を感じました。

mobile-mcpとは?

mobile-mcp は、Model Context Protocol (MCP) に準拠したサーバーで、プラットフォームに依存しないインターフェースを通じてスケーラブルなモバイル自動化や開発を可能にします。これにより、iOS や Android の専門的な知識を個別に持つ必要がなくなります。

主な特徴

  • プラットフォーム非依存:iOS・Android両対応
  • デバイス対応の柔軟性:エミュレータ・シミュレータ・実機すべてに対応
  • AIとの統合:LLMが直接モバイルアプリを操作可能
  • アクセシビリティベース:構造化されたアクセシビリティスナップショットを活用

WebアプリのAI駆動テストとの類似点

要素 Webアプリ (AgentiTest) Androidアプリ (mobile-mcp)
操作ライブラリ browser-use mobile-mcp
対象プラットフォーム Webブラウザ Android/iOS
AI統合方法 自然言語指示 自然言語指示
要素認識方法 DOMアクセシビリティツリー アクセシビリティスナップショット

この類似性から、WebアプリでのAI駆動テスト成功パターンをAndroidアプリにも適用できる可能性が見えてきます。

実際にmobile-mcpを試してみた

環境構築

mobile-mcp を VS Code の GitHub Copilot と連携させる設定は非常にシンプルです:

  1. VS Codeの設定 - ワークスペースに .vscode/mcp.json を作成
    {
      "servers": {
        "mobile-mcp": {
          "command": "/opt/homebrew/bin/npx",
          "args": ["-y", "@mobilenext/mobile-mcp@latest"],
          "env": {
            "PATH": "/opt/homebrew/opt/node@20/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
          }
        }
      }
    }
    
  2. MCPサーバーを起動
    • 起動ボタンを押す
      image.png
    • うまく動作しない場合は vscode を再起動する
  3. MCPサーバーとの連携
    • copilot のツールの構成ボタンを選択したおきに、MCPサーバ:mobile-mcp が表示されていればOK
      image.png
  4. Androidエミュレータを起動(Android Studio経由)
    • 最後に Androidエミュレータを予め起動しておきましょう
      image.png

実践1:AndroidエミュレータのChromeで動画を検索

セットアップが完了したら、GitHub Copilotに自然言語で指示を出すだけです。

指示例:

Androidエミュレータで https://www.yahoo.co.jp を開き、スポーツのリンクをクリックして、最初のニュースを選択しなさい。また、そのニュースの内容を取得しなさい。

驚きの結果!

GitHub Copilotは見事にこの指示を理解し、以下のステップを自動で実行してくれました:

  1. Chromeブラウザを起動
  2. Yahoo! JAPANにアクセス
  3. 「スポーツ」リンクをクリック
  4. 最初のニュース記事を選択
  5. 記事内容を取得・要約

実際の応答:

AndroidエミュレータでYahoo! JAPANを開き、「スポーツ」リンクをクリックし、最初のニュース「大谷が49号特大HR 偉業へ王手」を選択しました。

ニュース内容(要約):
ドジャースの大谷翔平選手がジャイアンツ戦で今季49号ホームランを記録。
先頭打者アーチは今季13本目、通算25本目。
ナ・リーグ本塁打王争いで2本差に迫り、史上6人目の偉業に王手。

実際の動作:
GitHub Copilotの動作記録

WebアプリのAI駆動テストで見た光景が、Androidアプリでも再現されました!

実践2:Chromeのヘルプ画面を表示する

指示例:

AndroidエミュレータのChromeを開いて、縦三点ボタンをクリックして、Help の画面を表示させなさい

実際の動作:

GitHub Copilotは以下のステップを自動で実行しました

  1. Chromeブラウザを起動
  2. "・・・" のボタンをクリック
  3. "Help & feedback" メニューをクリック
  4. Helpページを表示

GitHubCopilotでGUI操作(HELP).gif

検証で見えてきた課題と可能性

成功要因

mobile-mcpが効果的に動作した理由:

  1. LLMの選択が重要:GPT-4.1やClaude Sonnet 4で安定動作
  2. 自然言語指示の威力:技術的な詳細を知らなくても操作可能
  3. アクセシビリティベースの堅牢性:UIの細かな変更に対する耐性

直面した制限

一方で、以下のような課題も明らかになりました:

  1. LLM依存の不安定性:GPT-4oやGPT-5-miniでは失敗率が高い
  2. 日本語入力での問題:テキスト入力時に処理が止まるケースあり
  3. プロンプト最適化の必要性:現時点ではうまく動作させるにはコツが必要

mobile-mcpの技術的な価値

WebアプリAI駆動テストの延長線上

mobile-mcpは、WebアプリでのAI駆動テスト成功パターンをモバイルアプリに拡張する重要なピースです:

  • 統一されたAIインターフェース:Web・Mobile問わず自然言語で操作指示
  • プラットフォーム抽象化:Android・iOS固有の知識不要
  • 既存ワークフローとの統合:VS Code・GitHub Copilotとシームレス連携

今後の発展可能性

mobile-mcpとWebアプリのAI駆動テストフレームワークを組み合わせることで、以下のような統合的なテスト環境が実現できる可能性があります:

  1. クロスプラットフォームテストスイート
    • Web・Android・iOS を同一の自然言語テストケースで検証
    • UIの変更に強い、保守性の高いテストコード
  2. AI主導のテスト生成・修正
    • 要件定義から自動的にテストケース生成
    • UI変更を検知して自動的にテスト修正
  3. 開発者体験の向上
    • 複雑なセットアップ不要
    • 自然言語で直感的なテスト記述
    • AIによる自動デバッグとトラブルシューティング

まとめ

mobile-mcpの検証を通じて、AndroidアプリでもWebアプリと同様のAI駆動自動化の可能性 を確認できました。

得られた知見

技術的価値

  • LLMによるモバイルアプリの自動操作が実用レベルのちょっと前くらいで可能
  • アクセシビリティベースの堅牢なUI操作

実用的価値

  • 自然言語による直感的な操作指示
  • プラットフォーム固有知識の抽象化

将来性

  • Webアプリとモバイルアプリの統合テスト環境への道筋
  • AI駆動テスト自動化のエコシステム拡張
  • 開発生産性向上の新たな可能性

課題と今後の展望

現状では課題があるものの、急速に発展している分野であり、今後の改善が期待できます:

WebアプリでのAI駆動テスト成功に続き、mobile-mcpによってモバイルアプリでも同様の革新の道筋が確認できました。「UIの変更で壊れない」「自然言語で記述できる」「AIが自動で実行してくれる」次世代のテスト自動化が、ついにAndroidアプリでも手の届く場所にやってきたかもしれません。

まずは小さなプロジェクトから、mobile-mcpでの自動化を試してみてはいかがでしょうか?Webアプリとモバイルアプリを統合したAI駆動テスト環境の未来は、すでに始まっています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?