AIエージェントにモバイルアプリのテストを自動化させる方法
よくある話ですね:CursorやClaudeのようなAIアシスタントにモバイルアプリの機能を書いてくれるよう頼むと大量のコードを出力するので、コピーして...そしてシミュレータを開いて、手動で各画面をクリックしてレイアウトが崩れていないか確認する。その瞬間、自動化はどこかで道を誤ったように感じる。AIはコードを書けるが、テキストエディタの外にある実際のインターフェースに対しては「盲目」的だ。
Callstackの人々がagent-deviceをリリースしてこの問題を解決した。CLIツールで、AIエージェントを理論家から実践家に変える。エージェントはiOSシミュレータやAndroidエミュレータでアプリを開き、画面要素を確認し、正しいボタンをタップできる。
AppiumやMaestroがあるのに、なぜ面倒を見るのか
モバイル自動化ツールは既にたくさんあるように見えるかもしれない。だが落とし穴がある:AppiumとMaestroは人間のために設計されている。AIエージェントは複雑なYAMLシナリオを書いたり、XMLツリーのセレクタを弄ったりする必要はない。ハードウェアとやり取りするための高速で安価でシンプルな方法が必要なのだ。
agent-deviceは異なるアプローチを取る。スクリーンショットを画像としてだけでなく、構造化されたアクセシビリティツリーとしてキャプチャする。マルチモーダルモデルに重いスクリーンショットを投げてトークンを消費するのではなく、エージェントは要素のテキストベースの説明を短い参照(@e1、@e2など)で受け取る。これによりコストが削減され、速度が向上する。
このツールでできること
このツールはエージェントの「手と目」として位置づけられている。注目に値する主な機能は以下の通り:
- スマートスクリーンショット。
snapshot -iコマンドはインタラクティブな要素のみを返す。エージェントはリストを見る:@e1 [button] "Sign In"、@e2 [text-field] "Email"。タップする場所を推測する必要がない。 - クロスプラットフォーム対応。 同じワークフローがiOS、Android、TV(tvOSとAndroid TV)、さらにmacOSとLinuxのデスクトップアプリでも動作する。
- エビデンス収集。 問題が発生した場合、エージェントは自らビデオ録画を開始し、ログをキャプチャし、ネットワークトラフィックを抽出できる。これは実行時のみ再現するバグのデバッグに非常に役立つ。
- React Native統合。 Callstackがこのプロジェクトを主導しているため、深いRNサポートがある:コンポーネントツリーの検査やレンダリングのプロファイリングが可能だ。
実際の使い方
AIエージェント用のMCPサーバ(Model Context Protocol)をセットアップ 한다고想象してほしい。ターミナルで直接コマンドを実行できるようになる。
まず、環境を確認する:
問題なければ、エージェントはアプリを起動できる:
次に、画面を確認する:
要素のリストを取得したら、ユーザーの操作をシミュレートする:
それだけだ。コンパイルを待ったり、手動でウィンドウを切り替えたりする必要はない。
内部構造
このツールは、既に標準が機能しているところで車輪の再発明をしようとはしない。iOSではXCTestを使用し、AndroidではADBとカスタムスクリーンショットヘルパーを組み合わせている。WebではPlaywrightが裏で動作している(具体的にはvercel/agent-browserのロジック)。
興味深いことに、agent-deviceはセッションをMaestro形式に変換できる。これは、エージェントがアプリを「探索」しながらテストの下書きを作成し、それをCI用の完全なE2Eテストとして保存できることを意味する。
誰が試すべきか
これが本当に時間を節約できるシナリオがいくつかある:
- React NativeとExpo開発者。 CursorやWindsurfを使用している場合は、エージェントにagent-deviceドキュメントをコンテキストに追加する。エージェントは中断せずに自らの変更を検証できる。
- QAエンジニア。 基本的なスモークテストの作成をAIに任せられる。ボタンを見つけ、遷移が正常に動作するかを確認してくれる。
- TVプラットフォームを扱うチーム。 TVの自動化は常に面倒だが、ここではバンドルされている。
このプロジェクトは積極的に開発中で、ドキュメントはまだ一部の場所で整備中だが、主要なCLIは安定して動作する。Agentic Workflowsのコンセプトを信じているなら、このツールは確かに一晩かけて試す価値がある。
公式ドキュメントから始めるといい。 인기 있는 AI 에이전트와의 CLI 통합 방법을 설명하고 있다.
関連プロジェクト