# 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 ```bash # 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**: 1. Lancer l'application en mode Assist ```bash python3 geniusia2/main.py --mode assist ``` 2. Ouvrir la Calculatrice ```bash gnome-calculator & ``` 3. Effectuer une séquence d'actions connue: - Cliquer sur "7" - Cliquer sur "+" - Cliquer sur "3" 4. **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**: ```bash 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**: 1. Reprendre le Test 1 jusqu'à l'apparition de la suggestion 2. Appuyer sur **Enter** pour accepter 3. 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**: ```python # 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**: 1. Reprendre le Test 1 jusqu'à l'apparition de la suggestion 2. Appuyer sur **Escape** pour rejeter 3. Continuer manuellement 4. 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**: ```python # 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**: 1. Reprendre le Test 1 jusqu'à l'apparition de la suggestion 2. **Ne rien faire** pendant 10 secondes 3. 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_timeout` est appelé **Vérification**: ```python # Dans les logs, chercher: # - "suggestion_timeout" ``` --- ### Test 5: Workflows Multiples **Objectif**: Vérifier la sélection du meilleur match **Étapes**: 1. Créer 2 workflows similaires mais différents 2. Commencer une séquence qui matche les deux 3. 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**: 1. Enregistrer un workflow avec des clics précis 2. Rejouer en cliquant légèrement à côté (< 50px) 3. 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**: 1. Enregistrer un workflow dans la Calculatrice 2. Ouvrir une autre application (ex: gedit) 3. Effectuer des actions similaires 4. 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 ```bash # 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 ```bash # 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 ```python # 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 ```bash # 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**: ```bash # 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 ```markdown # 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: 1. **Si tout fonctionne** ✓ - Passer à Task 8 (ajustement des seuils) - Ou améliorer l'UI (Tasks 4 & 5) 2. **Si des bugs sont trouvés** ✗ - Documenter dans le rapport - Prioriser les corrections - Re-tester après correction 3. **Si des améliorations sont identifiées** ⚠️ - Ajouter dans le backlog - Évaluer la priorité - Planifier l'implémentation --- **Bon test ! 🧪**