Avec QA Systems, les règles de codage Misra sont analysées en statique dès l’écriture du code

QA-Misra, tel est le nom donné par l’éditeur allemand d’environnements de test logiciel QA Systems à un outil d’analyse statique de code destiné à vérifier les règles de codage utilisées par les équipes de développement. En d’autres termes, ce logiciel est une solution de test pour les codes écrits en C et C++ qui permet de vérifier leur conformité aux directives de codage stipulées par des normes utilisées par les équipes de développeurs, notamment dans l’automobile, à savoir les spécifications Misra (*) mais aussi Autosar.

Objectif affiché : identifier très en amont dans un cycle de développement les défauts et vulnérabilités des logiciels, trouver des bogues potentiels et améliorer la productivité des développeurs. L’idée sous-jacente, bien connue des développeurs, étant que plus les erreurs logicielles sont identifiées tôt dans un cycle de développement, moins il est coûteux de les corriger.

A l’origine de cette technologie, on trouve une collaboration étroite entre QA Systems et son compatriote AbsInt, spécialiste des technologies logicielles d’analyse et de vérification de code pour applications critiques, et plus spécifiquement éditeur d’outils d’analyse des erreurs d'exécution, de débordement de pile et de temps d'exécution dans le cas le plus défavorable (WCET, Worst Case Execution Time).

Selon QA Systems, QA-Misra permet d’ores et déjà de vérifier dans un code source, avant de l’exécuter, plus de 900 erreurs logicielles potentielles. Ainsi, selon la société, grâce à cette analyse statique, les structures dangereuses ainsi que les problèmes de sécurité, de maintenance et de portabilité peuvent être détectés à un stade précoce, et ce quelle que soit la taille du code.

Concrètement, QA-Misra vérifie automatiquement la conformité du code C ou C++ avec les règles Misra (C 2012 et C++ 2008), Autosar (C++ 14), ainsi que celle liée à des normes de sécurité comme CERT C/C++ 2016, CWE 4.7 (Common Weakness Enumeration), ISO/CEI TS 17961 :2013 et HIS Metrics (Hersteller Initiative Software).

A noter qu’aujourd’hui, il existe de nombreux utilisateurs des normes Misra en dehors du monde automobile, ces règles de codage étant devenues un modèle pour les meilleures pratiques appliquées par les développeurs dans des secteurs tels que l'aérospatial, les télécommunications, les dispositifs médicaux, la Défense, les chemins de fer, etc.

Signalons enfin que QA-Misra peut être intégré à l'outil de test d'unité et d'intégration Cantata de QA Systems.

(*) Misra, acronyme de Motor Industry Software Reliability Association, est une norme de codage largement adoptée pour les langages C et C++ qui fournit un ensemble de directives et de règles de codage pour protéger les applications contre les violations de sécurité et les vulnérabilités de sécurité connues. Une règle est accompagnée d'une description complète de l'exigence de codage (donc vérifiable par analyse statique), alors qu’une directive procure une prescription ou des conseils de développement à suivre pour les développeurs.