Logo Parasoft

WEBINAIRE

Rationalisez la conformité aux normes ISO 26262 et ISO 21434 grâce aux tests automatisés

Dans l'industrie automobile, la norme ISO 26262 traite de la sécurité des logiciels dans le développement de produits et décrit diverses méthodes de test pour garantir la livraison de véhicules sûrs. De même, de nombreuses organisations doivent répondre aux exigences de sécurité et de vérification des logiciels recommandées par la norme ISO 21434.  

Les méthodes de vérification essentielles comme l'analyse statique, les tests unitaires, la couverture de code structurelle et la traçabilité des exigences peuvent être chronophages et exigeantes en main-d'œuvre. Découvrez comment les automatiser au sein du flux de travail naturel du développement logiciel afin de réduire les coûts de main-d'œuvre, d'accélérer la mise sur le marché, d'améliorer la qualité du code et de garantir la conformité. ISO 26262 et la ISO 21434 normes de sécurité et de sûreté fonctionnelles.  

À retenir

  • L'intégration est la clé : Vous pouvez intégrer les exigences de cybersécurité dans vos processus de sécurité existants, ce qui facilite leur gestion.
  • Tests continus : L’adoption de pratiques de tests continus au sein de votre pipeline CI est une bonne pratique pour les principaux constructeurs automobiles.
  • Avantages de l'automatisation : L'automatisation des tests tels que l'analyse statique, les tests unitaires et la couverture du code réduit les coûts de main-d'œuvre, accélère la mise sur le marché et améliore la qualité du code.
  • L'outillage est important : En utilisant les bons outils, comme GoogleTest pour les tests unitaires et leur intégration avec des solutions de couverture et de traçabilité, est vital.

Le modèle en V et les niveaux de test

ISO 26262, en particulier la partie 6 pour le développement de logiciels, utilise un modèle en V. Ce modèle présente les différentes phases de développement à gauche (exigences, conception, implémentation) et les phases de test correspondantes à droite (tests unitaires, tests d'intégration, tests système). Bien que le modèle en V soit un processus recommandé, il ne s'agit pas d'une méthodologie de développement comme Waterfall ou Agile.

La norme ISO 21434 utilise également une approche similaire en V pour le développement et la vérification, soulignant la nécessité de tester les fonctions de sécurité à différents niveaux. Cela implique de tester les fonctions de chiffrement, d'intégrer les processus de démarrage et de tester les protocoles de communication système afin de garantir la sécurité des échanges de données.

Découvrez les meilleures pratiques pour accélérer la conformité à la norme ISO 21434 grâce aux tests automatisés.

Connecter les tests de sécurité et de sûreté

La norme ISO 21434 stipule que la cybersécurité doit être intégrée aux processus existants. Comme de nombreux acteurs du secteur automobile connaissent déjà la norme ISO 26262, l'intégration de la sécurité est plus simple. Cela implique souvent une étroite collaboration entre les ingénieurs système et les ingénieurs sécurité pour définir les exigences, réaliser des analyses des risques et des menaces pour la sécurité.

Les deux normes exigent des méthodes de vérification similaires :

  1. Tests basés sur les exigences : Relier directement les tests aux exigences de sécurité.
  2. Analyse statique: Vérification du code pour détecter d’éventuels problèmes sans l’exécuter.
  3. Analyse dynamique : Comprend les tests unitaires, d'intégration et système.
  4. Couverture de code: S'assurer que les tests exercent suffisamment le code. Pour la sécurité, des indicateurs comme la couverture des conditions/décisions modifiées (MCDC) sont importants, car ils vont au-delà de la simple couverture des instructions ou des branches.

Automatisation de la conformité avec CI/CD

De nombreux constructeurs automobiles adoptent des workflows d'intégration continue (CI) et de livraison continue (CD). Ces pipelines permettent de prévoir la livraison des logiciels, de gérer les changements d'exigences et de réduire les problèmes signalés par l'assurance qualité. L'accent est mis sur l'automatisation à grande échelle.

Les frameworks comme GoogleTest sont populaires pour les tests unitaires en C++. Ils sont faciles à utiliser, ont une syntaxe claire et s'intègrent parfaitement aux systèmes de compilation comme CMake. Cependant, pour optimiser leur valeur, ces frameworks peuvent être enrichis d'outils offrant une couverture de code structurelle et une traçabilité des exigences.

Un exemple typique de flux de travail

Voici à quoi pourrait ressembler un flux de travail rationalisé :

  1. Développement de la branche de fonctionnalités : Les développeurs travaillent sur du nouveau code dans une branche distincte, souvent liée aux exigences d'outils comme Jira.
  2. Tests locaux : Les développeurs testent leur code localement à l’aide de GoogleTest et de leur chaîne d’outils conteneurisée.
  3. Demande d'extraction : Une demande d'extraction est créée, déclenchant un pipeline automatisé.
  4. Portails automatisés : Ce pipeline inclut des critères de qualité pour les tests, tels que la couverture du code. Si ces critères ne sont pas respectés (par exemple, couverture MCDC insuffisante), la pull request échoue.
  5. Analyse et correctifs : Les développeurs analysent les rapports de pipeline (souvent publiés sur les pages GitHub ou consultés via les extensions IDE) pour identifier les lacunes et ajouter des cas de test manquants.
  6. Fusionner: Une fois tous les problèmes résolus et le pipeline réussi, le code est fusionné dans la branche principale.
  7. Pipeline de la branche principale : La fusion déclenche un autre pipeline qui surveille la branche stable, envoyant les résultats à un système de reporting comme Parasoft DTP pour des analyses agrégées et des rapports de conformité.

Considérations de coûts

Lorsque l’on compare les outils open source aux solutions commerciales, plusieurs facteurs de coût entrent en jeu :

  • Coût d'acquisition: Les outils open source peuvent sembler moins chers au départ.
  • Effort de qualification : Les outils commerciaux sont souvent pré-certifiés, ce qui réduit les frais de qualification pour votre équipe.
  • Coût d'intégration : Les outils qui s’intègrent facilement dans les flux de travail automatisés (comme les outils de ligne de commande) sont moins coûteux à mettre en œuvre.
  • Coût de la formation : Les outils open source peuvent ne pas nécessiter de formation approfondie si les développeurs les connaissent déjà.
  • Création de cas de test : Les frameworks qui simplifient la création de cas de test, comme GoogleTest, peuvent être très efficaces.
  • Atteindre les objectifs de couverture : Les outils qui fournissent des conseils et des rapports détaillés pour obtenir une couverture plus élevée, en particulier MCDC, peuvent réduire considérablement les efforts et les coûts.

En automatisant les méthodes de vérification et en les intégrant à votre flux de travail de développement, vous pouvez réduire efficacement les coûts de main-d'œuvre, accélérer votre mise sur le marché, améliorer la qualité du code et garantir la conformité aux normes ISO 26262 et ISO 21434.