- Create complete integration test system (test-integration.js) - Add UI/UX interaction testing with real event simulation (test-uiux-integration.js) - Implement end-to-end scenario testing for user journeys (test-e2e-scenarios.js) - Add console testing commands for rapid development testing (test-console-commands.js) - Create comprehensive test guide documentation (TEST-GUIDE.md) - Integrate test buttons in debug panel (F12 → 3 test types) - Add vocabulary modal two-progress-bar system integration - Fix flashcard retry system for "don't know" cards - Update IntelligentSequencer for task distribution validation 🧪 Testing Coverage: - 35+ integration tests (architecture/modules) - 20+ UI/UX tests (real user interactions) - 5 E2E scenarios (complete user journeys) - Console commands for rapid testing - Debug panel integration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
201 lines
6.1 KiB
Markdown
201 lines
6.1 KiB
Markdown
# 🧪 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. |