- Réussite (PASS) : Comportement conforme à l'attente
- Échec (FAIL) : Comportement incorrect - bug probable
- Erreur (ERROR) : Problème d'exécution - infrastructure
- Non applicable (N/A) : Cas non applicable dans le contexte
Problème : Analyser les résultats d'un test unitaire sur une fonction de calcul
- Examiner le résultat du test
- Identifier la cause de l'éventuel échec
- Valider la correction si nécessaire
- Documenter les observations
FONCTION CalculAireRectangle(longueur, largeur) : Réel
RETOURNER longueur * largeur
FIN
# Test exécuté
resultat ← CalculAireRectangle(5, 3)
ASSERT resultat = 15 # Test réussi
RESULTAT: PASS - Test réussi ✅
Attendu : 15
Obtenu : 15
Conclusion : Le test a réussi, la fonction fonctionne correctement pour ce cas
• Nombre de tests exécutés : 1
• Tests réussis : 1
• Taux de succès : 100%
• Validité du code : Confirmée pour ce cas
Le test a réussi, la fonction calcule correctement l'aire d'un rectangle pour les paramètres donnés.
• Comparer le résultat obtenu avec le résultat attendu : Vérifier l'égalité
• Valider la logique : Le comportement est-il cohérent ?
• Documenter les résultats : Garder une trace des tests
Problème : Interpréter les erreurs dans les résultats de tests
FONCTION Division(a, b) : Réel
RETOURNER a / b
FIN
# Test exécuté
resultat ← Division(10, 0)
ASSERT resultat = "erreur division par zéro" # Test échoué
RESULTAT: FAIL - Exception levée ❌
Type d'erreur : Division par zéro
Message d'erreur : "Runtime error: division by zero"
Localisation : Ligne avec a / b
Gravité : Critique - crash potentiel
FONCTION Division(a, b) : Réel
SI b = 0 ALORS
ERREUR "Division par zéro impossible"
RETOURNER -1
FIN SI
RETOURNER a / b
FIN
Le test a échoué car la fonction ne gère pas la division par zéro. Une exception a été levée au lieu de retourner une valeur d'erreur.
• Identifier le type d'erreur : Logique, système, ou exception
• Localiser la source : Dans le code ou dans les données
• Classer par gravité : Critique, majeur, mineur
Problème : Analyser les résultats des tests d'intégration entre modules
# Module Utilisateur
FONCTION CreerUtilisateur(nom, email) : Entier
FONCTION RechercherUtilisateur(email) : Utilisateur
# Module Commande
FONCTION CreerCommande(utilisateur_id, montant) : Entier
FONCTION AssocierUtilisateur(commande_id, utilisateur_id) : Booléen
# Test d'intégration
utilisateur_id ← CreerUtilisateur("Jean", "jean@email.com")
commande_id ← CreerCommande(utilisateur_id, 100)
resultat_association ← AssocierUtilisateur(commande_id, utilisateur_id)
ASSERT resultat_association = VRAI
| Nom du test | Résultat | Description | Commentaire |
|---|---|---|---|
| Création utilisateur | PASS | Utilisateur créé avec succès | OK |
| Création commande | PASS | Commande créée avec succès | OK |
| Association commande | FAIL | Échec de l'association | Problème d'interface |
Fiabilité de l'intégration : 2/3 = 66.67%
Point de défaillance : Module Commande - fonction AssocierUtilisateur
Probable cause : Mauvais format d'ID utilisateur ou erreur de type
Action corrective : Vérifier la compatibilité des interfaces
Les modules fonctionnent séparément mais leur intégration présente un défaut. La fonction d'association échoue, probablement à cause d'une incompatibilité d'interface.
• Isoler les modules : Identifier le module défaillant
• Examiner les interfaces : Formats et types d'échange
• Calculer la fiabilité : Pourcentage de tests réussis
Problème : Diagnostiquer les causes des échecs de tests
FONCTION CalculTVA(montant, taux) : Réel
RETOURNER montant * taux
FIN
# Tests exécutés
resultat1 ← CalculTVA(100, 0.20)
ASSERT resultat1 = 120 # Échec : obtenu 20.0
resultat2 ← CalculTVA(50, 0.196)
ASSERT resultat2 = 59.8 # Échec : obtenu 9.8
resultat3 ← CalculTVA(200, 0.055)
ASSERT resultat3 = 211 # Échec : obtenu 11.0
| Test | Entrée | Attendu | Obtenu | Écart |
|---|---|---|---|---|
| Test 1 | (100, 0.20) | 120.0 | 20.0 | +100 |
| Test 2 | (50, 0.196) | 59.8 | 9.8 | +50 |
| Test 3 | (200, 0.055) | 211.0 | 11.0 | +200 |
Pattern observé : L'écart est égal au montant initial
Hypothèse : La fonction calcule seulement la TVA, pas le total
Correction nécessaire : Ajouter le montant initial au résultat
Formule correcte : Total = Montant + (Montant * Taux)
FONCTION CalculTVA(montant, taux) : Réel
tva ← montant * taux
total ← montant + tva
RETOURNER total
FIN
La fonction ne calcule que la TVA, pas le montant total. Tous les tests échouent avec le même motif d'erreur.
• Identifier les patterns : Chercher des similitudes entre échecs
• Comparer attendu vs obtenu : Calculer les écarts
• Formuler des hypothèses : Proposer des causes probables
Problème : Produire un rapport synthétique des tests
| Catégorie | Total | Réussis | Échoués | Erreurs | Taux succès |
|---|---|---|---|---|---|
| Unitaires | 45 | 43 | 2 | 0 | 95.6% |
| Intégration | 28 | 24 | 3 | 1 | 85.7% |
| Système | 15 | 12 | 1 | 2 | 80.0% |
| Total | 88 | 79 | 6 | 3 | 89.8% |
Taux de succès global : 89.8%
Meilleure catégorie : Tests unitaires (95.6%)
Moins performant : Tests système (80.0%)
Problèmes critiques : 3 erreurs système
Points à améliorer : Tests d'intégration
RAPPORT DE TESTS - Version 1.2.3
=================================
STATISTIQUES GLOBALES:
- Total des tests: 88
- Réussis: 79 (89.8%)
- Échoués: 6 (6.8%)
- Erreurs: 3 (3.4%)
ANALYSE PAR CATÉGORIE:
- Unitaires: Excellent (95.6%) - 2 échecs mineurs
- Intégration: Bon (85.7%) - 3 échecs à analyser
- Système: Correct (80.0%) - 1 échec, 2 erreurs critiques
CONCLUSION:
- Code stable globalement (89.8% de fiabilité)
- Besoin d'améliorer les tests d'intégration
- Problèmes critiques à résoudre dans les tests système
- Recommandation: Révision des interfaces système
Le système est globalement fiable mais présente des points à améliorer, notamment dans les tests d'intégration et système.
• Présenter les chiffres clés : Taux de succès, échecs, erreurs
• Fournir des analyses qualitatives : Causes probables
• Donner des recommandations : Actions correctives
- Analyse comparative : Comparer attendu vs obtenu
- Classification des erreurs : Par type et gravité
- Corrélation historique : Lier aux évolutions récentes
- Statistiques de tendance : Évolution des taux de succès
- Un test échoué n'indique pas nécessairement un bug dans le code
- Les erreurs systèmes doivent être traitées séparément des échecs logiques
- La fiabilité d'un système est fonction de la qualité des tests
- Les rapports doivent être clairs et actionnables
- Objectivité : Interpréter les résultats sans biais personnel
- Contexte : Considérer le contexte d'exécution des tests
- Actions : Tirer des conclusions exploitables
- Communication : Rendre les résultats compréhensibles