Initial commit

This commit is contained in:
Dom
2026-03-05 00:20:25 +01:00
commit dcd4de9945
1954 changed files with 669380 additions and 0 deletions

View 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 ! 🧪**