Initial commit
This commit is contained in:
397
docs/archive/old-summaries/GUIDE_TEST_MODE_ASSISTE.md
Normal file
397
docs/archive/old-summaries/GUIDE_TEST_MODE_ASSISTE.md
Normal file
@@ -0,0 +1,397 @@
|
||||
# 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 ! 🧪**
|
||||
Reference in New Issue
Block a user