TesterArmy⁠⁠、AIエージェントを使うE2Eテストフレームワーク「e2e」をオープンソースで公開

TesterArmyは、AIエージェントを使ってWeb・モバイルアプリを検証できるエンドツーエンド(E2E)テストフレームワーク「e2e」をオープンソースで公開した。同社のCTO、Oskar Kwaśniewski氏が2026年10月1日にXで紹介した[1]。

e2eでは、アプリを実際に操作して一連の動作を確かめる。AIエージェントへの自然言語の指示と、対象要素や期待する結果をコードで指定する検証を、同じテスト内で組み合わせられる。ローカル環境やCIで実行できる。ソースコードはGitHubでApache-2.0ライセンスで公開されている。

自然言語の指示とロケーターによる検証を併用

テストコードはTypeScriptで記述する。agent.act()では、エージェントに達成させたい目標を自然言語で指定する。agent.assert()では、画面の内容が期待に合うかをAIに判定させる。これらのAPIは、画面上の要素をロケーターで特定し、期待する値や状態をアサーションで確認する検証と併用できる。AIを使わずにテストを書くこともできる。

公式ドキュメントには、ToDoリストに2件のタスクを追加し、最初の1件を完了する操作をテストする例が掲載されている。以下はテスト本体の抜粋。

await app.open('/todos');

await agent.act('add todos "Buy milk" and "Walk the dog", complete the first');
await agent.assert('only one todo remains open');

await screen.getByRole('tab', 'Done').tap();
await expect(screen.getByTestId('todo')).toHaveCount(1);

タスクの追加と完了操作をエージェントに任せ、未完了のタスクが1件だけ残っているかをAIで判定する。その後、ロケーターで「Done」タブを選び、完了済みのタスクが1件表示されることをアサーションで確認する。

繰り返し実行する際には、検証済みの操作をキャッシュから再実行する仕組みも使える。キャッシュへの書き込みが有効な場合、agent.act()の操作結果が後続の検証で確認されると、その操作が記録される。次回以降、利用できる記録があれば、モデルを呼び出さずに操作を再実行する。

デフォルトの設定では、再実行中に操作対象や終了時の状態が記録とあわなくなると、AIエージェントがその時点の画面から処理を引き継ぐ。ただし、組み込みエージェントによるagent.assert()などの判定は毎回モデルを呼び出す。

キャッシュは、デフォルトではローカル環境で読み書きでき、CIでは読み取り専用となる。

Webとモバイルを共通APIでテスト

Webアプリとモバイルアプリは、共通のAPIを使って同じテストスイートで扱える。Web側はPlaywrightを通じてChromium、Firefox、WebKitを操作する。モバイル側は、OSSのアプリ操作ツール「agent-device」を通じてiOSシミュレーターやAndroidエミュレーターを操作する。

同社のCEO、Szymon Rybczak氏の紹介投稿には、e2eのデモ動画も添えられている。デスクトップ側のアプリ画面とAndroidエミュレーターが並び、ターミナルにテストの実行状況が表示されている。

e2eは、クラウド上の実行環境とも連携できる。Web向けには、ブラウザーをクラウド上で動かすサービス「Kernel」のChromiumを利用できる[2]。モバイル向けには、Expoの「EAS Simulators」を通じて、クラウド上のiOSシミュレーターやAndroidエミュレーターを利用できる[3]。

AIモデルを選択⁠、独自のエージェント実装も利用可能

エージェントが使うAIモデルは利用者が設定する。Vercel AI Gatewayなどを経由する方法や、AI SDKのプロバイダーパッケージとAPIキーを使う方法、ローカルで動かすモデルに接続する方法を選べる。組み込みエージェントには、ツール呼び出しと画像入力に対応するモデルが必要となる。

なお、ChatGPTなどのサブスクリプション契約があれば、そのサービスのアカウントでログインしてモデルを利用することもできる[4]。この方法ではAPIキーを用意する必要がない。

テストの実行には、独自のエージェント実装も利用できる。組み込みエージェントが使うツールを差し替える方法と、agent.act()やagent.assert()の実行処理を独自に実装する方法を用意している。

探索テストや開発用エージェントとの連携も

テストを事前に書かず、AIエージェントにアプリを操作させて問題を調べるe2e exploreも備える。「⁠初めての利用者として購入手続きを試し、不自然な点を報告する」といった目標を指定すると、エージェントが操作手順を考えて実行する。レポートには、期待した動作と実際の動作、問題の再現手順などが記録される。

バグ探索のワークフローでは、コーディングエージェントがアプリの領域ごとに複数の探索を並行して実行する。探索結果から、ローカル環境やテストデータなどによる誤検出を除外する。残った問題ごとに、期待する動作を検証する再現テストを作成する。その問題が原因でテストが失敗することを確認し、再現できたバグとして報告する。

また、e2e mcpを通じて、コーディングエージェントがアプリを開いて操作し、ロケーターを確かめることもできる。

導入方法

クイックスタートではNode.js 22.12以上を要件とし、WindowsではWSL内で実行するよう案内している。ローカルでモバイルテストを実行するには、対象に応じてXcodeとiOSシミュレーターのランタイム、またはAndroid SDKとエミュレーターも必要となる。

導入するには、アプリのディレクトリでnpx e2e initを実行する。対話形式でWeb/モバイルの実行エンジンとモデルの利用方法を選択すると、設定ファイルとテスト例が作成される。

おすすめ記事

記事・ニュース一覧