diff --git a/TEST-GUIDE.md b/TEST-GUIDE.md new file mode 100644 index 0000000..e4c4a29 --- /dev/null +++ b/TEST-GUIDE.md @@ -0,0 +1,201 @@ +# 🧪 DRS Integration Test Suite - Guide d'utilisation + +## 📋 Vue d'ensemble + +Le système de test d'intégration complet permet de vérifier le bon fonctionnement de tous les modules DRS et leur interaction. + +## 🚀 Comment lancer les tests + +### Option 1: Interface utilisateur (Recommandé) +1. Ouvrir l'application (http://localhost:3000) +2. Appuyer sur `F12` pour ouvrir le Debug Panel +3. Cliquer sur le bouton "🧪 Run Integration Tests" +4. Observer les résultats dans le panneau de test qui apparaît + +### Option 2: Console +```javascript +// Tests complets d'intégration +runDRSTests() // Tests architecture et modules +runUIUXTests() // Tests interface utilisateur complets +runE2ETests() // Tests scénarios end-to-end + +// Tests rapides spécifiques +test.testAll() // Tous les tests rapides +test.testFlashcardRetry() // Test du système de retry des flashcards +test.testVocabularyProgress() // Test du système de progrès vocabulary +test.testIntelligentSequencer() // Test du séquenceur intelligent +test.testAIIntegration() // Test de l'intégration IA +test.testDRSSystem() // Test du système DRS +test.testWordDiscovery() // Test du système de découverte de mots + +// Statut des modules +test.showModuleStatus() // Affiche l'état de tous les modules + +// Aide +test.help() // Affiche l'aide des commandes +``` + +## 📊 Types de tests + +### 1. Tests du système de base +- ✅ Application chargée et fonctionnelle +- ✅ EventBus opérationnel +- ✅ ModuleLoader fonctionnel +- ✅ Router opérationnel + +### 2. Tests de chargement de contenu +- ✅ ContentLoader accessible +- ✅ Chargement de contenu de chapitre +- ✅ Validation de la structure des données + +### 3. Tests du système DRS +- ✅ UnifiedDRS disponible +- ✅ IAEngine opérationnel +- ✅ LLMValidator disponible + +### 4. Tests des modules d'exercices +- ✅ TextModule +- ✅ AudioModule +- ✅ ImageModule +- ✅ GrammarModule +- ✅ TextAnalysisModule +- ✅ GrammarAnalysisModule +- ✅ TranslationModule +- ✅ OpenResponseModule +- ✅ WordDiscoveryModule + +### 5. Tests d'intégration IA +- ✅ Configuration des fournisseurs IA +- ✅ Validation des réponses (structure) +- ✅ Gestion des erreurs + +### 6. Tests du système de prérequis +- ✅ PrerequisiteEngine disponible +- ✅ Suivi des mots maîtrisés +- ✅ Système de découverte de mots +- ✅ Calcul des progrès + +### 7. Tests IntelligentSequencer +- ✅ Chargement du séquenceur +- ✅ Création de sessions guidées +- ✅ Recommandations d'exercices +- ✅ Insights de performance + +### 8. Tests d'intégration croisée +- ✅ Intégration modal de vocabulaire +- ✅ Intégration Flashcard-PrerequisiteEngine +- ✅ Intégration DRS-IA +- ✅ Communication EventBus + +## 📈 Interprétation des résultats + +### Taux de réussite +- **90%+** : 🎉 EXCELLENT - Système hautement fonctionnel +- **75-89%** : 👍 BON - Système majoritairement fonctionnel avec problèmes mineurs +- **50-74%** : ⚠️ MODÉRÉ - Système avec problèmes significatifs +- **<50%** : 🚨 CRITIQUE - Système avec problèmes majeurs + +### Messages d'erreur communs + +#### ❌ "Application not loaded" +- **Cause** : L'application ne s'est pas initialisée correctement +- **Solution** : Recharger la page et attendre l'initialisation complète + +#### ❌ "Module not found" +- **Cause** : Un module n'est pas chargé ou accessible +- **Solution** : Vérifier les logs de console pour les erreurs de chargement + +#### ❌ "API key" / "provider" errors +- **Cause** : Tests IA échouent sans clés API (normal) +- **Impact** : N'affecte pas les autres fonctionnalités + +#### ❌ "Content not available" +- **Cause** : Fichiers de contenu manquants +- **Solution** : Vérifier que les fichiers JSON de contenu existent + +## 🔧 Dépannage + +### Tests échouent massivement +1. Vérifier que le serveur de développement fonctionne (port 3000) +2. Ouvrir les outils de développement (F12) et vérifier les erreurs +3. Recharger la page complètement +4. Vérifier que tous les fichiers JS sont accessibles + +### Tests IA échouent +- **Normal** sans clés API configurées +- Pour tester réellement l'IA : configurer les clés dans `IAEngine` + +### Tests de contenu échouent +- Vérifier que les fichiers `/content/chapters/*.json` existent +- Vérifier la structure des données JSON + +### Tests de modules spécifiques échouent +- Vérifier que les fichiers de modules existent dans `/src/DRS/exercise-modules/` +- Contrôler les erreurs de syntaxe dans les modules + +## 📝 Ajout de nouveaux tests + +### Tests dans `test-integration.js` +```javascript +// Ajouter dans la classe DRSIntegrationTester +async testNewFeature() { + this.log('🧪 Testing new feature...'); + + this.test('Feature test name', () => { + // Test synchrone + return condition; + }); + + await this.asyncTest('Async feature test', async () => { + // Test asynchrone + const result = await someAsyncOperation(); + return result.isValid; + }); +} +``` + +### Tests console dans `test-console-commands.js` +```javascript +// Ajouter dans window.testCommands +async testNewFeature() { + console.log('🧪 Testing new feature...'); + // Logique de test + return success; +} +``` + +## 🎯 Utilisation en développement + +### Tests rapides pendant le développement +```javascript +// Test rapide d'un module spécifique +test.testFlashcardRetry() + +// Vérifier l'état après modifications +test.showModuleStatus() +``` + +### Tests complets avant release +```javascript +// Tests d'intégration complets +runDRSTests() +``` + +### Tests de régression +Lancer les tests après chaque modification majeure pour s'assurer qu'aucune fonctionnalité existante n'est cassée. + +## 📋 Checklist de validation + +Avant de considérer le système comme stable : + +- [ ] Tests de base > 95% de réussite +- [ ] Tests de contenu fonctionnels +- [ ] Tests DRS > 90% de réussite +- [ ] Tests de modules d'exercices > 85% de réussite +- [ ] Tests d'intégration croisée > 90% de réussite +- [ ] Aucune erreur critique dans la console +- [ ] Tous les modules accessibles via `test.showModuleStatus()` + +--- + +**🎯 Objectif** : Maintenir un taux de réussite global > 90% pour assurer la stabilité du système. \ No newline at end of file diff --git a/index.html b/index.html index 38c9846..1f51065 100644 --- a/index.html +++ b/index.html @@ -48,6 +48,20 @@