Principes et utilité des tests
Test unitaires
- Vérifier un programme nécessite de multiples tests pour en contrôler les différentes parties.
- Le test unitaire permet d’évaluer une portion réduite de code. Il s’assure que le code produit le résultat attendu.
Implémentation basique d’un test
- Dans la démarche la plus élémentaire, on introduit des tests conditionnels dans le code pour tenter de traiter certains problèmes.
- Si l’utilisateur de la fonction introduit des données insensées, elle dysfonctionne. Ainsi, notre fonction déclenche une erreur.
Pour y remédier, il faut introduire un test conditionnel préalable au calcul.
Mais le message d’erreur sera accessible à l’utilisateur sur le même plan que les affichages du programme dans son fonctionnement normal.
- On peut vite se retrouver avec des problèmes en cascade et des erreurs dont les conséquences pourraient apparaitre loin de leur origine.
Implémentation d’un test avec une assertion
Tests unitaires dissociés du code principal
Tests et démarche de développement
Non régression
Couverture des tests
- Malgré les précautions et contrôles apportés par les tests, des défauts de conception et des erreurs logiques présents dans le code peuvent passer inaperçus.
- Dans l’approche classique de développement, les tests sont écrits après le code et en fonction du code.
Développement piloté par les tests
- Le « Test Driven Development » (TDD) consiste en un développement informatique piloté par les tests.
- Dans cette approche du développement, on ne commence pas par écrire le code du programme mais celui d’un test du code à venir.
- Le développement est incrémental : chaque test précise le comportement désiré de notre programme.