Concepts fondamentaux
Définition :
Les cas de test significatifs sont des scénarios spécifiques choisis pour valider le bon fonctionnement d'une solution, en couvrant les cas normaux, limites et d'erreur.
Couverture = (Cas testés / Cas possibles) × 100%
Exemples de cas de test :
Entrée: 5
✓ Attendu: 25
Entrée: 0
✓ Attendu: 0
Entrée: -3
✓ Attendu: 9
Entrée: "abc"
✗ Attendu: Erreur
Catégories de cas :
✅ Cas nominaux (valeurs standards)
⚠️ Cas limites (bornes extrêmes)
❌ Cas d'erreur (entrées invalides)
🔄 Cas frontière (valeurs limites)
⚠️ Cas limites (bornes extrêmes)
❌ Cas d'erreur (entrées invalides)
🔄 Cas frontière (valeurs limites)
Types de cas de test
Nominal : Valeurs standards
Limite : Bornes extrêmes
Erreur : Données invalides
Frontière : Limites exactes
Critères de sélection
Pertinence
Couverture
Diversité
Efficacité
Règle fondamentale :
Les cas de test doivent être représentatifs des situations réelles et couvrir tous les chemins d'exécution possibles.
Méthodes & Astuces
Processus de sélection :
1. Analyser la spécification
2. Identifier les entrées possibles
3. Choisir les cas critiques
4. Définir les sorties attendues
5. Créer les jeux de test
6. Exécuter et analyser les résultats
2. Identifier les entrées possibles
3. Choisir les cas critiques
4. Définir les sorties attendues
5. Créer les jeux de test
6. Exécuter et analyser les résultats
Testez les cas limites
Diversifiez les entrées
Validez les cas nominaux
Équilibrez la couverture vs effort
Automatisez quand c'est possible
📌 Des cas de test bien choisis garantissent la robustesse du code !
# Exemple de cas de test
def carre(nombre):
if not isinstance(nombre, (int, float)):
raise TypeError("Entrée invalide")
return nombre * nombre
# Cas de test
cas_de_test = [
{"entree": 5, "attendu": 25},
{"entree": 0, "attendu": 0},
{"entree": -3, "attendu": 9},
{"entree": 2.5, "attendu": 6.25}
]
for cas in cas_de_test:
try:
resultat = carre(cas["entree"])
reussite = resultat == cas["attendu"]
print(f"Entrée: {cas['entree']} → {'✓' if reussite else '✗'}")
except:
print(f"Entrée: {cas['entree']} → Erreur attendue")