Garantir la Qualité du Code : Assertions et Exceptions

Cet article explique comment assurer la qualité du code en utilisant les assertions et les exceptions, avec une attention particulière à la programmation par contrat.

Détails de la leçon

Description de la leçon

Dans ce cours, nous abordons la qualité du code en mettant l'accent sur les techniques de programmation par contrat. Nous détaillons comment utiliser les assertions et les exceptions pour garantir que le code est bien écrit et respecte les conditions spécifiées. Les assertions vous permettent de vérifier les préconditions et postconditions des fonctions, en posant des hypothèses de fonctionnement qui doivent être respectées par les paramètres d’entrée et les valeurs de retour.

Par exemple, lors de la réalisation d'une division, nous imposons qu'un diviseur ne soit jamais nul. Cette règle est définie comme une assertion. Si elle est violée en mode debug, cela permet de détecter exactement où l'erreur s'est produite, facilitant ainsi le débogage. En mode release, ces assertions disparaissent, éliminant les tests devenus inutiles pour un code déployé en production.

Nous illustrons également l'utilisation des assertions avec d'autres exemples, comme le calcul d'une racine carrée qui nécessite un nombre positif en entrée. Les tests d’assertion sont utilisés tant en entrée qu'en sortie pour garantir que les conditions de validité sont toujours respectées.

Objectifs de cette leçon

Les objectifs de cette vidéo sont :

  • Apprendre à utiliser les assertions pour vérifier les préconditions et postconditions des fonctions.
  • Comprendre la programmation par contrat et son utilité dans le développement logiciel.
  • Connaître les différences entre les modes debug et release en C++.
  • Découvrir comment les exceptions peuvent être employées pour gérer les erreurs de manière efficace.

Prérequis pour cette leçon

Pour suivre cette vidéo, il est recommandé d'avoir des connaissances en programmation C/C++ et une compréhension de base des concepts de gestion des erreurs et des structures conditionnelles.

Métiers concernés

Ce sujet est particulièrement pertinent pour les métiers suivants :

  • Développeur Logiciel
  • Ingénieur en Qualité Logicielle
  • Architecte Logiciel

Alternatives et ressources

En plus des assertions, les développeurs peuvent utiliser des outils de tests unitaires comme Google Test ou des bibliothèques de vérification de contrat comme Boost.Contract.

Questions & Réponses

Une assertion en C++ est une macro définie dans le fichier d'en-tête cassert qui permet de vérifier certaines conditions durant l'exécution du code. Si la condition est fausse, elle génère une alerte en mode debug et aide au débogage.
En mode debug, les assertions vérifient les conditions et génèrent des alertes en cas de violation. En mode release, les assertions sont désactivées, ce qui permet d’optimiser les performances en éliminant les vérifications inutiles pour un code déjà testé.
Les assertions sont utilisées pour vérifier des conditions qui ne devraient jamais échouer si le programme est correctement utilisé. Les exceptions, quant à elles, gèrent des situations inattendues ou des erreurs qui peuvent survenir pendant l'exécution normale du programme.