agent-qa の紹介:実行メモリを備えたオープンソースのエージェント型 QA ハーネス
従来の自動品質保証(QA)アプローチは、硬直したスクリプトを書き、壊れやすいセレクタに対処し、UI 要素が数ピクセルずれるだけでテストが壊れるたびに何時間も修正に費やすという脆弱なサイクルを伴うことが多いです。アプリケーションの複雑さが増すにつれ、これらのテストの保守コストはその価値を上回ることが頻繁にあります。
agent-qa(Vostride 提供)は、エージェント型テストアプローチを導入することでこの課題を解決しようとしています。自然言語によるテスト定義と高度な実行メモリシステムを組み合わせることで、QA を静的なスクリプト作業から、製品と共に進化する動的で自己修復可能なプロセスへと変換します。
自然言語テスト作成
agent-qa の核心は、人間の言語でテストを定義できることです。複雑な Playwright や Selenium スクリプトを書く代わりに、開発者はプレーンな英語で YAML にテストを記述できます。例えば、Linear での課題作成を検証するテストは次のようになります:
- Create issue アイコンをクリックする。
- Create issue モーダルが表示されていることを確認する。
- "Fix mobile login" を "Issue title" 入力フィールドに入力する。
- Team セレクタから "Engineering" を選択する。
- Create issue ボタンをクリックする。
エージェントは可視的なロール、ラベル、現在の画面状態に基づいて動作するため、これらの指示を動的に解釈できます。これによりハードコードされた CSS セレクタや XPath が不要となり、テストは UI の細かな変更に対して大幅に耐性を持つようになります。
実行メモリの力
agent-qa の最も革新的な機能の一つは Execution Memory(実行メモリ)です。ほとんどの AI 主導のテストツールは、各実行を白紙として扱い、エージェントに毎回ナビゲーションモデルや UI パターンを再発見させます。agent-qa は代わりに、製品、テストスイート、テストの観測から知識ベースを構築します。
メモリの仕組み
エージェントがテストを実行する際に、"contracts"(契約)や観測をキュレーションします。例えば、"Sidebar groups stay visible after switching between Docs and Projects."(Docs と Projects を切り替えてもサイドバーのグループは表示されたまま)ということを学習するかもしれません。このメモリは将来の実行に注入され、エージェントは次のことが可能になります:
- 冗長性の回避: ワークスペースのナビゲーション方法を再発見するプロセスをスキップする。
- 精度の向上: 確認されたパターン(例:コマンドパレットは正確なタイトル検索が必要であること)を使用して一般的な落とし穴を回避する。
- 失敗の削減: 特定の要素(例:ページツールバー)が特定のアクション後にのみ表示されることを認識し、隠れた要素を失敗としてフラグ付けするのを防ぐ。
セルフヒーリングとパフォーマンス最適化
自動テストを悩ませる「フレーク」問題に対処するため、agent-qa は Self-Healing Execution(セルフヒーリング実行)を実装しています。クリックや入力といったサブアクションが失敗した場合、エージェントはテストを直ちに失敗させません。その代わりに UI を再観測し、同じ実行内で同じ目標を達成する代替パスを探します。
これらのエージェント機能が過度なレイテンシやコストを招かないように、プラットフォームには Smart Cache(スマートキャッシュ)が含まれています。類似した後続の実行で検証済みのアクションプランを再利用することで、agent-qa はプランナーの作業とトークン使用量を削減し、実行速度を最大 5 倍に加速させると報告されています(例:42 秒の実行を 8 秒に短縮)。
開発者中心のインフラストラクチャ
LLM によって駆動されているにもかかわらず、agent-qa はプロフェッショナルなソフトウェア開発ライフサイクル(SDLC)に組み込めるよう設計されています:
- Version Controlled: テスト、設定、フックはコードとして保存され、Pull Request を通じて差分確認やレビューが可能です。
- Sandboxed Hooks: ユーザーは Node、Bun、Python、または Bash のフックを分離された Docker コンテナ内で実行し、フィクスチャのシード、API 呼び出し、または状態のクリーンアップができます。
- LLM Agnostic: システムは OpenAI、Anthropic、Gemini、そして Ollama や LM Studio 経由のローカルモデルなど、幅広いプロバイダーをサポートします。
- Machine Readable: MCP(Model Context Protocol)と特定のスキルを通じて、他のコーディングエージェントがスキーマを発見し、失敗を自動的にトリアージできます。
結論
UI とどのようにやり取りするか(how)から、何を達成したいか(what)へ焦点を移すことで、agent-qa は包括的なテストスイートの保守に伴う摩擦を軽減します。現在はフロントエンドとモバイルのインタラクションに重点が置かれていますが、実行メモリとセルフヒーリング機構の統合は、より耐久性が高く自律的な品質保証の設計図を提供します。