Exceptions, tests et débogage
Rendre un programme fiable, vérifiable et plus simple à corriger.
Gestion des exceptions
Réflexe de base
Une exception signale une erreur pendant l’exécution, sans arrêter forcément tout le programme.
À retenir
- Utiliser
try,catchetfinallyselon le langage. - Lever une exception quand la situation est anormale.
Validation des entrées
- 1
Vérifier le type, le format et les bornes dès l’entrée.
- 2
Refuser les données incohérentes avant tout traitement.
Assertions et tests unitaires
Deux outils proches, rôles différents
Assertion
- Vérifie une condition supposée vraie.
- Aide à repérer vite une anomalie.
- Souvent placée dans le code pour contrôler un invariant.
Test unitaire
- Vérifie une fonction ou méthode.
- Prépare une entrée et compare un résultat attendu.
- S’exécute automatiquement et se rejoue souvent.
Jeux de tests
| Cas | But | Exemple |
|---|---|---|
| Nominal | Valider le comportement normal | Entrée correcte |
| Limite | Tester les frontières | Valeur minimale ou maximale |
| Invalide | Vérifier le refus | Format faux ou donnée absente |
Cas limites
Ce qu’il faut couvrir
- Tester les valeurs minimales et maximales.
- Vérifier les cas vides, nuls ou absents.
- Chercher les comportements aux frontières.
Mini-défi
Pense à trois bordures : le premier, le dernier et le vide.
Débogage pas à pas
Méthode
- 1
Reproduire le bug dans des conditions connues.
- 2
Poser des points d’arrêt aux zones suspectes.
Ce qu’on surveille
Traces et logs
Différence utile
Trace
- Suit l’exécution du programme.
- Aide pendant le débogage.
- Souvent temporaire.
Log
- Enregistre des événements utiles.
- Reste exploitable hors débogueur.
- Doit être précis sans être bavard.
À garder en tête
- Conserver assez d’informations pour diagnostiquer.
- Éviter les messages trop vagues ou trop nombreux.
Rappel express
Trace pour comprendre sur le moment, log pour comprendre plus tard.
Synthèse
L’idée centrale
- Valider les entrées avant le traitement.
- Gérer les exceptions sans masquer le vrai problème.
- Vérifier avec assertions et tests unitaires.
- Couvrir les jeux de tests et les cas limites.
