8.6 KiB
Guide de Test - Mode Assisté avec Suggestions
Date: 2025-11-19
Objectif: Valider le fonctionnement du Mode Assisté en conditions réelles
Durée estimée: 30-45 minutes
📋 Pré-requis
Vérifications avant de commencer
# 1. Vérifier que toutes les dépendances sont OK
python3 diagnostic_complet_systeme.py
# 2. Vérifier que les tâches critiques sont complétées
python3 verifier_tasks_mode_assiste.py
# 3. Activer l'environnement virtuel
source geniusia2/venv/bin/activate
Résultat attendu:
- ✓ Système à 100%
- ✓ 4/6 tâches complétées (dont les 3 critiques)
🎯 Scénarios de Test
Test 1: Détection de Workflow Simple
Objectif: Vérifier que le système détecte un workflow en cours
Étapes:
-
Lancer l'application en mode Assist
python3 geniusia2/main.py --mode assist -
Ouvrir la Calculatrice
gnome-calculator & -
Effectuer une séquence d'actions connue:
- Cliquer sur "7"
- Cliquer sur "+"
- Cliquer sur "3"
-
Observer: Une suggestion devrait apparaître après 2-3 actions
Résultats attendus:
- ✓ Le système détecte le workflow
- ✓ Une suggestion apparaît dans les 2 secondes
- ✓ La suggestion affiche le nom du workflow
- ✓ La confiance est > 80%
Logs à vérifier:
tail -f geniusia2/data/logs/logs_2025-11-19.json | grep workflow_match
Test 2: Acceptation de Suggestion
Objectif: Vérifier que l'acceptation complète le workflow
Étapes:
- Reprendre le Test 1 jusqu'à l'apparition de la suggestion
- Appuyer sur Enter pour accepter
- Observer l'exécution automatique
Résultats attendus:
- ✓ Le workflow se complète automatiquement
- ✓ Les actions restantes sont exécutées
- ✓ Le compteur de rejets ne change pas
- ✓ Le workflow est marqué comme accepté
Vérification:
# Dans les logs, chercher:
# - "suggestion_accepted"
# - "workflow_acceptance_tracked"
Test 3: Rejet de Suggestion
Objectif: Vérifier que le rejet incrémente le compteur
Étapes:
- Reprendre le Test 1 jusqu'à l'apparition de la suggestion
- Appuyer sur Escape pour rejeter
- Continuer manuellement
- Répéter 3 fois pour tester l'ajustement de priorité
Résultats attendus:
- ✓ La suggestion disparaît immédiatement
- ✓ Le compteur de rejets s'incrémente
- ✓ Après 3 rejets, la confiance est ajustée (× 0.9)
- ✓ Les suggestions futures ont une confiance réduite
Vérification:
# Dans les logs, chercher:
# - "suggestion_rejected"
# - "workflow_rejection_tracked"
# - "workflow_priority_adjusted" (après 3 rejets)
Test 4: Timeout Automatique
Objectif: Vérifier que la suggestion disparaît après 10 secondes
Étapes:
- Reprendre le Test 1 jusqu'à l'apparition de la suggestion
- Ne rien faire pendant 10 secondes
- Observer la disparition automatique
Résultats attendus:
- ✓ La suggestion disparaît après ~10 secondes
- ✓ Aucun impact sur le compteur de rejets
- ✓ Le callback
on_suggestion_timeoutest appelé
Vérification:
# Dans les logs, chercher:
# - "suggestion_timeout"
Test 5: Workflows Multiples
Objectif: Vérifier la sélection du meilleur match
Étapes:
- Créer 2 workflows similaires mais différents
- Commencer une séquence qui matche les deux
- Observer quelle suggestion apparaît
Résultats attendus:
- ✓ Le workflow avec la meilleure confiance est suggéré
- ✓ Un seul workflow est suggéré à la fois
- ✓ La priorité ajustée est prise en compte
Test 6: Tolérance de Position
Objectif: Vérifier que la tolérance de 50px fonctionne
Étapes:
- Enregistrer un workflow avec des clics précis
- Rejouer en cliquant légèrement à côté (< 50px)
- Observer si le match fonctionne
Résultats attendus:
- ✓ Le workflow est détecté malgré le décalage
- ✓ La confiance reste élevée (> 80%)
- ✓ Au-delà de 50px, le match échoue
Test 7: Fenêtre Différente
Objectif: Vérifier le filtrage par fenêtre
Étapes:
- Enregistrer un workflow dans la Calculatrice
- Ouvrir une autre application (ex: gedit)
- Effectuer des actions similaires
- Observer qu'aucune suggestion n'apparaît
Résultats attendus:
- ✓ Pas de suggestion dans une fenêtre différente
- ✓ Le filtrage par fenêtre fonctionne
- ✓ Les workflows sont spécifiques à l'application
🔍 Vérifications Techniques
Vérifier les Workflows Disponibles
# Lister les workflows
ls -la geniusia2/data/user_profiles/workflows/
# Afficher le contenu d'un workflow
cat geniusia2/data/user_profiles/workflows/workflow_*.json | jq .
Vérifier les Logs en Temps Réel
# Tous les événements
tail -f geniusia2/data/logs/logs_2025-11-19.json
# Seulement les workflows
tail -f geniusia2/data/logs/logs_2025-11-19.json | grep workflow
# Seulement les suggestions
tail -f geniusia2/data/logs/logs_2025-11-19.json | grep suggestion
Vérifier l'État du SuggestionManager
# Dans une console Python avec l'app en cours
from geniusia2.core.orchestrator import Orchestrator
# Accéder au SuggestionManager
stats = orchestrator.suggestion_manager.get_stats()
print(stats)
# Vérifier les rejets
print(orchestrator.suggestion_manager.workflow_rejections)
# Vérifier les ajustements
print(orchestrator.suggestion_manager.workflow_priority_adjustments)
📊 Métriques à Collecter
Pendant les Tests
| Métrique | Valeur Attendue | Valeur Réelle |
|---|---|---|
| Temps de détection | < 2s | |
| Confiance moyenne | > 80% | |
| Taux de faux positifs | < 10% | |
| Taux de faux négatifs | < 5% | |
| Temps d'exécution | ~500ms/action |
Après les Tests
# Analyser les logs
python3 analyser_logs_tests.py
🐛 Problèmes Courants
Problème 1: Aucune Suggestion n'Apparaît
Causes possibles:
- Pas de workflows enregistrés
- Confiance < 80%
- Fenêtre différente
- Vérification périodique désactivée
Solutions:
# Vérifier les workflows
ls geniusia2/data/user_profiles/workflows/
# Vérifier les logs
tail -f geniusia2/data/logs/logs_*.json | grep workflow_match
# Réduire le seuil temporairement (pour debug)
# Dans config: "min_confidence": 0.60
Problème 2: Suggestions Trop Fréquentes
Causes possibles:
- Seuil de confiance trop bas
- Tolérance de position trop large
- Workflows trop génériques
Solutions:
- Augmenter
min_confidenceà 0.85 - Réduire
position_toleranceà 30px - Affiner les workflows enregistrés
Problème 3: Exécution Échoue
Causes possibles:
- Élément UI introuvable
- Timing trop rapide
- Fenêtre changée
Solutions:
- Vérifier les logs de TaskReplayEngine
- Augmenter les délais entre actions
- Vérifier que la fenêtre est au premier plan
✅ Checklist de Validation
Fonctionnalités Core
- Détection de workflow fonctionne
- Suggestions apparaissent dans les 2s
- Confiance > 80% pour les bons matchs
- Acceptation complète le workflow
- Rejet incrémente le compteur
- Timeout après 10 secondes
- Ajustement après 3 rejets
Performance
- Latence de détection < 2s
- Pas de lag pendant l'utilisation
- Mémoire stable
- CPU raisonnable
Robustesse
- Tolérance de position fonctionne
- Filtrage par fenêtre fonctionne
- Gestion des erreurs correcte
- Pas de crash
📝 Rapport de Test
Template à Remplir
# Rapport de Test - Mode Assisté
**Date**: 2025-11-19
**Testeur**: [Nom]
**Durée**: [XX minutes]
## Résultats Globaux
- Tests réussis: X/7
- Bugs trouvés: X
- Améliorations suggérées: X
## Détails par Test
### Test 1: Détection de Workflow
- Statut: ✓ / ✗
- Notes: ...
### Test 2: Acceptation
- Statut: ✓ / ✗
- Notes: ...
[etc.]
## Bugs Identifiés
1. [Description du bug]
- Sévérité: Critique / Importante / Mineure
- Reproduction: [Étapes]
- Logs: [Extraits]
## Recommandations
1. [Recommandation 1]
2. [Recommandation 2]
## Conclusion
[Résumé global]
🚀 Prochaines Étapes
Après les tests:
-
Si tout fonctionne ✓
- Passer à Task 8 (ajustement des seuils)
- Ou améliorer l'UI (Tasks 4 & 5)
-
Si des bugs sont trouvés ✗
- Documenter dans le rapport
- Prioriser les corrections
- Re-tester après correction
-
Si des améliorations sont identifiées ⚠️
- Ajouter dans le backlog
- Évaluer la priorité
- Planifier l'implémentation
Bon test ! 🧪