Dogfood (agent-device)
Explorez systématiquement une application mobile, trouvez des défauts et produisez un rapport avec des preuves complètes de reproduction pour chaque découverte.
Configuration
Seule l'application cible est obligatoire. Tout le reste a des valeurs par défaut sensées.
| Paramètre | Défaut | Exemple de surcharge |
|---|---|---|
| Application cible | (obligatoire) | Settings, com.example.app, URL deep link |
| Plateforme | Déduire du contexte utilisateur ; sinon demander (ios ou android) |
--platform ios |
| Nom de session | App/plateforme slugifiée (par exemple settings-ios) |
--session my-session |
| Répertoire de sortie | ./dogfood-output/ |
Output directory: /tmp/mobile-qa |
| Portée | Application complète | Focus on onboarding and profile |
| Authentification | Aucune | Sign in to user@example.com |
Si l'utilisateur fournit suffisamment de contexte pour commencer, démarrez immédiatement avec les valeurs par défaut. Posez des questions de suivi uniquement quand un détail obligatoire manque (par exemple plateforme ou identifiants).
Préférez le binaire agent-device direct quand disponible.
Flux de travail
1. Initialize Configurer la session, répertoires de sortie, fichier de rapport
2. Launch/Auth Ouvrir l'app et se connecter si nécessaire
3. Orient Capturer l'instantané initial et cartographier la navigation
4. Explore Tester systématiquement les flux et états
5. Document Enregistrer les preuves reproductibles pour chaque défaut
6. Wrap up Réconcilier le résumé, fermer la session
1. Initialize
mkdir -p {OUTPUT_DIR}/screenshots {OUTPUT_DIR}/videos
cp {SKILL_DIR}/templates/dogfood-report-template.md {OUTPUT_DIR}/report.md
2. Launch/Auth
Démarrez une session nommée et lancez l'application cible :
agent-device --session {SESSION} open {TARGET_APP} --platform {PLATFORM}
agent-device --session {SESSION} snapshot -i
Si une connexion est requise :
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
Pour les codes OTP/e-mail : demandez à l'utilisateur, attendez l'entrée, puis continuez.
3. Orient
Capturez les preuves initiales et les points d'ancrage de navigation :
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/initial.png
agent-device --session {SESSION} snapshot -i
Cartographiez la navigation de haut niveau, les onglets et les flux clés avant les tests approfondis.
4. Explore
Lisez references/issue-taxonomy.md pour l'étalonnage de la sévérité/catégorie.
Stratégie :
- Parcourez chaque zone majeure de l'app (onglets, tiroirs, pages de paramètres).
- Testez les parcours principaux de bout en bout (créer, éditer, supprimer, soumettre, récupérer).
- Validez les états limites (vide/erreur/chargement/hors ligne/permissions refusées).
- Utilisez
diff snapshot -iaprès les transitions d'UI pour éviter les références obsolètes. - Capturez périodiquement
logs pathet inspectez le log de l'app si le comportement semble suspect.
Commandes utiles par écran :
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. Document Issues (Repro-First)
Explorez et documentez en un seul passage. Quand vous trouvez un défaut, arrêtez-vous et capturez complètement les preuves avant de continuer.
Problèmes interactifs/comportementaux
Utilisez vidéo + captures d'étapes :
- Commencez l'enregistrement :
agent-device --session {SESSION} record start {OUTPUT_DIR}/videos/issue-{NNN}-repro.mp4
- Reproduisez avec un rythme visible. Capturez chaque étape :
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-1.png
sleep 1
# perform action
sleep 1
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-step-2.png
- Capturez l'état final cassé :
sleep 2
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}-result.png
- Arrêtez l'enregistrement :
agent-device --session {SESSION} record stop
- Ajoutez le défaut immédiatement au rapport avec des étapes numérotées et des références de captures.
Problèmes statiques/au chargement
Une seule capture d'écran suffit ; aucune vidéo requise :
agent-device --session {SESSION} screenshot {OUTPUT_DIR}/screenshots/issue-{NNN}.png
Définissez Repro Video sur N/A dans le rapport.
6. Wrap Up
Ciblez 5-10 défauts bien documentés, puis finissez :
- Réconciliez les comptes de sévérité du résumé dans
report.md. - Fermez la session :
agent-device --session {SESSION} close
- Rapportez le nombre total de défauts, la répartition des sévérités et les découvertes à plus haut risque.
Guidance
- La qualité de la repro importe plus que le nombre de défauts.
- Utilisez les refs (
@eN) pour l'exploration rapide, les sélecteurs pour les assertions de relecture déterministes si nécessaire. - Re-capturez après toute mutation (navigation, modal, mise à jour de liste, soumission de formulaire).
- Utilisez
fillpour la sémantique d'effacement puis de saisie ; utiliseztypepour les vérifications de comportement de saisie incrémentale. - Gardez les logs optionnels et ciblés : activez/lisez les logs de l'app uniquement quand utile pour le diagnostic.
- Ne lisez jamais le code source de l'app testée ; les découvertes doivent provenir du comportement d'exécution observé.
- Écrivez chaque défaut immédiatement pour éviter de perdre les preuves.
- Ne supprimez jamais les captures d'écran/vidéos/artefacts de rapport pendant une session.
Références
| Référence | Quand la lire |
|---|---|
| references/issue-taxonomy.md | Début de session ; sévérité/catégories/checklist |
Templates
| Template | Objectif |
|---|---|
| templates/dogfood-report-template.md | Copier dans le répertoire de sortie comme fichier de rapport |