Fiche de révision Vérifications

information-icon

Les premières épreuves du bac de français édition 2026 sont pour bientôt! Consulte les dates du bac de français, notre programme de révision accompagné de toutes nos fiches de révisions pour te préparer au mieux à ton examen 💪

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

  • Le mot-clé assert permet de vérifier si une condition est vraie, et de générer une erreur si la condition n’est pas remplie.
  • Si nous introduisons une valeur erronée en argument pour le paramètre utilisé, une AssertionError survient et le programme s’arrête.
  • Le mécanisme d’assertion ne se déclenche pas si le programme n’est pas exécuté en mode debug car l’instruction assert est alors ignorée.
  • Il faut donc privilégier l’assertion à des fins de mise au point d’un programme uniquement.
  • Le mot-clé raise nous permet de lever une exception.

Tests unitaires dissociés du code principal

  • Nous pouvons programmer nos tests dans un fichier séparé qui aura accès à notre fonction pour l’évaluer. Ce fichier peut par ailleurs comporter d’autres fonctions et un code les mettant en œuvre.
  • Puis créons un autre programme, destiné à effectuer différents tests unitaires, situé dans le même répertoire que le fichier séparé.
  • Les tests doivent être aussi indépendants que possible du code.
  • Notre programme de tests constitue un ensemble de vérifications également appelé jeu de tests.
  • Il existe des bibliothèques spécialisées capables de vérifier des jeux de tests complets sans s’arrêter à la première erreur.

Tests et démarche de développement

Non régression

  • L’un des intérêts des tests unitaires est de nous protéger contre des régressions.
  • Cela peut notamment se produire lors de la réécriture du code, parfois appelée réusinage.

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.