Détection d'erreurs d'exécution C/C++

Objectifs

  • Débordement arithmétique
  • Division par zéro
  • Lecture d'un emplacement mémoire avant écriture
  • Indexation de tableaux hors limites
  • Déréférencement de pointeur illicite
  • Pointeur non initialisé
  • Non terminaison d'un appel de fonction
  • Non terminaison de boucle
  • Cohérence des opérations de décalage binaire
  • Cohérence des interfaces de pointeurs de fonctions
  • Code non atteignable
  • Procédures non appellées
  • Accès concurents illicites à des variables partagées
  • Assertion utilisateur
  • Appel de fonction virtuelle pure (C++)
  • Utilisation incorrecte d'informations de types dynamiques (C++)

Bénéfices

  • Couverture exhaustive du code
  • Fiabilité opérationnelle des logiciels
  • Détection de bugs au plus tôt
  • Diminue les itérations de tests
  • Mesure de la robustesse du code
  • Optimisation de la validation & vérification
    • Tests untaires et relecture critique de code focalisés aspects métier
    • Intégration dans la démonstration de sécurité
  • Appropriation de logiciels existants