De la qualité à la conformité
L'analyse statique, les tests unitaires, la mesure de la couverture et la surveillance continue remplissent simultanément deux objectifs : ils améliorent la qualité des logiciels et fournissent des preuves de conformité. Les défauts sont détectés à un stade précoce et la base de code reste dans un état connu et vérifiable. Les résultats obtenus, à savoir les registres de traçabilité des exigences, les données de couverture structurelle et les preuves de qualification des outils, satisfont aux exigences des normes ISO 26262, DO-178C, CEI 61508 et CEI 62304.
Ce qu'exigent réellement les normes
Bien que chaque norme ait sa propre structure et sa propre terminologie, elles partagent un ensemble commun d'exigences.
- Tests basés sur les exigences : chaque test doit pouvoir être rattaché à une exigence spécifique. Les tests sans traçabilité ne constituent pas une preuve suffisante de vérification.
- Couverture structurelle : les normes exigent des niveaux de couverture minimaux, notamment au niveau des instructions, des branchements ou des MC/DC, en fonction du niveau d’intégrité de sécurité du logiciel.
- Qualification des outils : les outils utilisés dans le processus de vérification doivent eux-mêmes être qualifiés ou certifiés, afin que leurs résultats puissent être considérés comme des preuves fiables.
- Preuves documentées : les résultats doivent être consignés sous une forme permettant leur examen, leur audit et leur reproduction.
Concilier les bonnes pratiques et la conformité
Analyse statique de conformité
PC-lint Plus est certifié conforme aux normes CEI 61508 (SIL 1-3), ISO 26262 (ASIL A-D), CEI 62304 et EN 50716. Il vérifie la conformité aux normes MISRA C:2023, MISRA C++:2023, AUTOSAR C++14, CERT-C et assure la détection des failles compatibles avec le CWE. Chaque résultat est traçable et peut être supprimé avec une justification documentée, ce qui correspond exactement à ce que recherchent les auditeurs.
Tests unitaires et couverture de code à des fins de conformité
VectorCAST prend en charge la gestion des cas de test basée sur les exigences, la traçabilité bidirectionnelle entre les exigences et les résultats de test, ainsi que la mesure de la couverture dans tous les modes requis par les normes de sécurité. Cela inclut les « modes industriels » qui sélectionnent automatiquement les critères de couverture adaptés à une norme et à un niveau d'intégrité de sécurité donnés. Les résultats sont certifiés par le TÜV.
Suivi continu de la qualité
Squore regroupe dans un tableau de bord unique les données issues de l'ensemble de la chaîne d'outils de développement, notamment les résultats d'analyses statiques, les résultats de tests, les indicateurs de couverture et la couverture des exigences. Il met en place des contrôles de qualité qui empêchent le code non conforme d'avancer et fournit des analyses de tendances qui alertent les équipes à un stade précoce en cas de dégradation de la qualité.
Une approche pratique de la mise en conformité
Intégrer la vérification au processus de développement donne de meilleurs résultats que de la considérer comme une activité de dernière minute. Une analyse statique mise en place dès le début empêche l’accumulation de catégories de défauts. Les tests unitaires avec traçabilité créent une base de données factuelles qui s’enrichit au fur et à mesure de l’avancement du projet. La surveillance continue de la couverture met en évidence les lacunes tant qu’elles sont encore minimes. Chaque étape alimente la suivante, et les résultats obtenus à chaque étape sont précisément ceux que les autorités de certification examinent.
PC-lint Plus, VectorCAST et Squore sont certifiés conformes aux normes qu’ils prennent en charge et s’intègrent aux chaînes d’outils de développement existantes. Les preuves de conformité qu’ils fournissent sont le résultat direct du travail d’ingénierie, et non le fruit d’un effort de documentation distinct.