Auto-QA: 自律的な意図駆動型QAエンジン
自律的なWeb QAテストツールチェーンであり、平易な英語の意図、自己修復型W3Cアクセシビリティヒューリスティック、アクティブモーダル分離、およびネイティブ @playwright/test コンパイルを使用して、任意のWebアプリケーション(ローカル開発サーバーまたはライブWebサイト)に対してエンドツーエンドのユーザージャーニーを実行します。
1. デュアルモード動作決定ルール
アクションを実行する前に、宣言されたツールを確認します。
- モード1: MCPツールモード:
auto_qa_で始まるツール(例:auto_qa_execute_and_heal)がアクティブなツールリストで利用可能な場合、JSON-RPC経由で直接呼び出します。 - モード2: Antigravity Skill CLIモード(デフォルト&スタンドアロン):
auto_qa_*MCPツールが宣言されていない場合、統一CLIを使用してrun_command経由ですべてのQAアクションを実行します。(node "<skillPath>/scripts/cli.js" <command><skillPath>は~/.gemini/config/skills/auto-qaまたはリポジトリルートに解決します)。
2. 3段階のテストライフサイクル
ステージ1: サーフェス発見(操作可能なコントロールのマッピング)
ターゲットURLをクロールして、インタラクティブなボタン、入力フィールド、リンク、モーダルダイアログを抽出します。
- MCPモード:
auto_qa_generate_code_summary(projectPath, url)を呼び出します。 - Skill CLIモード:
node "<skillPath>/scripts/cli.js" discover http://localhost:3000 -o auto_qa_tests/tmp/surface.json
ステージ2: 意図計画の作成(auto_qa_frontend_test_plan.json)
auto_qa_tests/auto_qa_frontend_test_plan.json に宣言型テスト計画を作成します。
- MCPモード:
auto_qa_generate_frontend_test_plan(projectPath, name, planSteps)を呼び出します。 - Skill CLIモード: ファイル作成ツールを使用してJSONファイルを直接書き込みます。
{
"$schema": "https://raw.githubusercontent.com/TestSprite/testsprite-cli/main/schemas/plan.schema.json",
"projectId": "project-name",
"type": "frontend",
"name": "ユーザー登録とログインフロー",
"targetUrl": "http://localhost:3000",
"priority": "p0",
"planSteps": [
{ "type": "action", "description": "navigate to http://localhost:3000/login" },
{ "type": "action", "description": "type '[email protected]' into 'Email'" },
{ "type": "action", "description": "type 'TestPass123!' into 'Password'" },
{ "type": "action", "description": "click 'Sign In'" },
{ "type": "assertion", "description": "verify 'Dashboard' is visible" },
{ "type": "assertion", "description": "verify URL contains '/dashboard'" }
]
}
サポートされている意図動詞(大文字小文字を区別せず、一重引用符または二重引用符)
- アクション:
navigate to <http(s)://url>/go to </path or http(s)://url>type '<text>' into '<target>'/fill '<text>' into '<target>'click '<target>'/press '<target>'select '<option>' from '<target>'check '<target>'/tick '<target>'
- アサーション:
verify '<target>' is visible/appearsverify '<target>' is not visible/disappearsverify text '<text>'/contains '<text>'verify URL contains '<path>'
ステージ3: 実行、自己修復、およびコードコンパイル
自己修復型要素解決を使用して宣言型テスト計画を実行し、失敗時のスクリーンショットをキャプチャし、ネイティブコードをエクスポートします。
- MCPモード:
- 実行:
auto_qa_execute_and_heal(projectPath, planFile, baseUrl) - エクスポート:
auto_qa_compile_to_playwright(planPath, outputPath)
- 実行:
- Skill CLIモード:
- テストを実行:
(注: 終了コード1は、テスト中のアサーション失敗を示します。スクリーンショットはnode "<skillPath>/scripts/cli.js" run auto_qa_tests/auto_qa_frontend_test_plan.json -u http://localhost:3000auto_qa_tests/artifacts/を、ステップのタイミングとエラートレースはauto_qa_tests/auto-qa-test-report.mdを確認してください)。 - ネイティブPlaywright TypeScriptにコンパイル:
node "<skillPath>/scripts/cli.js" compile auto_qa_tests/auto_qa_frontend_test_plan.json -o tests/e2e/flow.spec.ts
- テストを実行:
3. CLIサブコマンドの概要
| サブコマンド | 目的 | デフォルトの出力 |
|---|---|---|
doctor | Node、Playwright、Chromiumバイナリの事前チェック。 | ターミナルステータス |
discover <url> [-o <file>] | Webサイトをクロールし、ボタン、入力フィールド、リンク、モーダル、アクセシビリティツリーを抽出します。 | JSONサーフェスマップ |
run <planFile> [-u <url>] [-o <dir>] | 自己修復型解決を使用して意図計画を実行します。 | auto_qa_tests/artifacts/ + auto-qa-test-report.md |
compile <planFile> [-o <file>] | 宣言型計画をネイティブの @playwright/test .spec.ts にコンパイルします。 | <planName>.spec.ts |
bootstrap [dir] [-u <url>] | auto_qa_tests/tmp/config.json を初期化します。 | config.json |
mcp | stdio JSON-RPC 2.0 MCPサーバーを起動します。 | stdioストリーム |
4. 5層検証戦略
「すべてをテスト」 または未知のWebアプリケーションを監査するよう求められた場合:
- 層1: ナビゲーションとルート: ナビゲーションバーとフッターのリンクをクロールし、404レスポンスがないことをアサートします。
- 層2: インタラクティブコントロール: ドロップダウン、アコーディオン、テーマトグル、フィルターボタンをテストします。
- 層3: フォーム検証ファネル:
- 正常系: 有効な入力を送信 → 成功バナーまたは状態更新をアサートします。
- 異常系: 必須フィールドを空で送信 → インラインバリデーションアラートをアサートします。
- 層4: 認証ライフサイクル: 有効なログイン、無効な認証情報の拒否、セッションの永続性、ログアウト。
- 層5: コアCRUDワークフロー: アイテムを作成 → 一覧表示されることをアサート; アイテムを変更 → 更新されることをアサート; アイテムを削除 → 削除されることをアサート。