ドッグフーディング(agent-device) は何をしますか?
モバイルアプリを体系的に探索し、問題を発見し、すべての発見に対して完全な再現証拠を含むレポートを生成します。
セットアップ
必要なのは対象アプリのみです。その他はすべて適切なデフォルト値が設定されています。
| パラメータ | デフォルト値 | オーバーライド例 |
|---|---|---|
| 対象アプリ | (必須) | Settings、com.example.app、ディープリンクURL |
| プラットフォーム | ユーザーコンテキストから推測、不明な場合は確認(ios または android) | --platform ios |
| セッション名 | アプリ/プラットフォームをスラグ化(例:settings-ios) | --session my-session |
| 出力ディレクトリ | ./dogfood-output/ | Output directory: /tmp/mobile-qa |
| スコープ | アプリ全体 | Focus on onboarding and profile |
| 認証 | なし | Sign in to [email protected] |
ユーザーが開始に十分なコンテキストを提供している場合は、デフォルトで即座に開始します。必要な詳細(プラットフォームや認証情報など)が不足している場合のみ、フォローアップの質問を行います。
利用可能な場合は、直接 agent-device バイナリを使用することを推奨します。
ワークフロー
1. 初期化 セッション、出力ディレクトリ、レポートファイルを設定
2. 起動/認証 アプリを開き、必要ならサインイン
3. 状況把握 初期スナップショットを取得し、ナビゲーションをマッピング
4. 探索 フローと状態を体系的にテスト
5. ドキュメント 問題ごとに再現可能な証拠を記録
6. 終了処理 サマリーを調整し、セッションを閉じる
1. 初期化
mkdir -p {OUTPUT_DIR}/screenshots {OUTPUT_DIR}/videos
cp {SKILL_DIR}/templates/dogfood-report-template.md {OUTPUT_DIR}/report.md
2. 起動/認証
名前付きセッションを開始し、対象アプリを起動します:
agent-device --session {SESSION} open {TARGET_APP} --platform {PLATFORM}
agent-device --session {SESSION} snapshot -i
ログインが必要な場合:
agent-device --session {SESSION} snapshot -i
agent-device --session {SESSION} fill @e1 "{EMAIL}"
agent-device --session {SESSION} fill @e2 "{PASSWORD}"
agent-device --session {SESSION} press @e3
agent-device --session {SESSION} wait 1000
agent-device --session {SESSION} snapshot -i
OTP/メール認証コードの場合:ユーザーに確認し、入力待ちしてから続行します。
3. 状況把握
初回証拠とナビゲーションのアンカーを取得します:
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/initial.png
agent-device --session {SESSION} snapshot -i
詳細テストの前に、トップレベルのナビゲーション、タブ、主要ワークフローをマッピングします。
4. 探索
references/issue-taxonomy.md を参照し、重要度/カテゴリの基準を確認してください。
戦略:
- 各主要アプリエリア(タブ、ドロワー、設定ページ)を移動します。
- コアとなるジャーニーをエンドツーエンドでテストします(作成、編集、削除、送信、復元)。
- エッジ状態(空/エラー/ローディング/オフライン/権限拒否)を検証します。
- UI遷移後は
diff snapshot -iを使用して、古い参照を避けます。 - 動作が不審な場合は定期的に
logs pathをキャプチャし、アプログを検査します。
画面ごとに便利なコマンド:
agent-device --session {SESSION} snapshot -i
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/{screen-name}.png
agent-device --session {SESSION} appstate
agent-device --session {SESSION} logs path
5. 問題のドキュメント(再現優先)
探索とドキュメントを一度に行います。問題を見つけたら、証拠を完全にキャプチャしてから続行します。
インタラクティブ/動作の問題
動画+手順スクリーンショットを使用します:
- 録画開始:
agent-device --session {SESSION} record start {OUTPUT_DIR}/videos/issue-{NNN}-repro.mp4
- 目に見えるペースで再現します。各ステップをキャプチャします:
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-1.png
sleep 1
# アクションを実行
sleep 1
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-2.png
- 最終的な破損状態をキャプチャ:
sleep 2
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-result.png
- 録画停止:
agent-device --session {SESSION} record stop
- 問題をすぐにレポートに追加します。番号付きの手順とスクリーンショット参照を含めます。
静的/ロード時の問題
スクリーンショット1枚で十分です。動画は不要です:
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}.png
レポートの 再現動画 を N/A に設定します。
6. 終了処理
証拠がしっかりした5〜10件の問題を目標とし、その後終了します:
report.mdのサマリーの重要度カウントを調整します。- セッションを閉じます:
agent-device --session {SESSION} close
- 問題の総数、重要度の内訳、最もリスクの高い発見事項を報告します。
ガイダンス
- 問題数よりも再現品質が重要です。
- 高速な探索には参照(
@eN)を使用し、決定論的な再現アサーションが必要な場合にはセレクタを使用します。 - 変更(ナビゲーション、モーダル、リスト更新、フォーム送信)の後は必ずスナップショットを取り直します。
- クリアしてからタイプする動作には
fillを使用し、インクリメンタルなタイピング動作の確認にはtypeを使用します。 - ログはオプションかつ目的に応じて使用します:診断に役立つ場合のみログを有効化/読み取りを行います。
- テスト対象アプリのソースコードは絶対に読みません。発見事項はすべて観察された実行時動作に基づく必要があります。
- 証拠を失わないよう、各問題はすぐに記述します。
- セッション中にスクリーンショット、動画、レポートアーティファクトを決して削除しないでください。
参照資料
| 参照 | 読むタイミング |
|---|---|
| references/issue-taxonomy.md | セッション開始時、重要度/カテゴリ/チェックリストの確認 |
テンプレート
| テンプレート | 目的 |
|---|---|
| templates/dogfood-report-template.md | 出力ディレクトリにレポートファイルとしてコピー |