Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Réduction des risques et des coûts liés à l'obtention d'un logiciel conforme

Par Arthur Hicken

13 octobre 2020

10  min lire

La conformité dans le développement de logiciels peut signifier des choses légèrement différentes pour différentes organisations. Les différences dans l'obtention de logiciels conformes sont probablement liées au marché sur lequel ils vendent leurs produits. Ils vont du développement rigoureux de logiciels critiques pour la sécurité aux applications d'entreprise qui nécessitent des capacités de sécurité et de confidentialité pour traiter des données sensibles.

Qu'est-ce qu'un logiciel conforme?

Des normes et des réglementations émergent dans différentes industries et sont mises en place pour protéger les clients et les utilisateurs contre les préjudices. Ce préjudice pourrait se manifester par un danger physique ou une perte financière des informations d'identification et des informations personnelles sensibles. Souvent, ces normes sont une réaction à des événements qui ont entraîné des blessures ou des violations majeures de données.

Normes de sûreté, de sécurité et de confidentialité

En termes de sécurité, il existe plusieurs normes dont certaines incluent:

  • DO-178C (avionique aéronautique)
  • ISO 26262 (logiciel automobile)
  • EN 50128 (systèmes ferroviaires)
  • CEI 62304 (médical)

Il existe également des normes de sécurité et de confidentialité telles que le RGPD pour la protection / confidentialité générale des données et PCI-DSS pour le traitement sécurisé des informations de carte de crédit.

Satisfaire aux exigences des normes

Pour la plupart des normes, la conformité démontre de diverses manières que le logiciel que vous déployez répond aux exigences de la norme. Le processus de développement produit de la documentation, des rapports et d'autres artefacts qui montrent la conformité. Il garde à l'esprit les audits et peut inclure des démonstrations et des tests d'acceptation.

Le temps et le coût de la conformité dépendent du niveau de rigueur requis par la norme industrielle. Ces normes définissent les directives de conception et de développement à suivre en fonction de l'impact sur la sûreté ou la sécurité du logiciel sur l'utilisateur final. La défaillance du produit peut entraîner la mort ou des blessures dans les cas graves. Par exemple, la norme ISO 26262 est définie pour les niveaux de niveau d'intégrité de sécurité (A, B, C, D), où ASIL A est le risque ou l'impact de sécurité le plus faible et D le plus élevé.

Niveau d'intégrité de sécurité

La probabilité de survenance ainsi que la gravité du risque et la contrôlabilité déterminent la place d'un produit sur le plan de l'intégrité de la sécurité. (La contrôlabilité est la capacité du conducteur à atténuer le risque.):

Logiciels conformes: tableau de gravité, d'exposition et de contrôlabilité
Tableau de gravité, d'exposition et de contrôlabilité

Le tableau suivant montre la gravité, l'exposition et la contrôlabilité se traduisent par les différents ASIL de l'ISO 26262:

Analyse des dangers et évaluation des risques
Analyse des dangers et évaluation des risques

Figure 2: Analyse des dangers et évaluation des risques

La norme EN 50128 utilise les termes niveaux d'intégrité de sécurité du logiciel (SSIL) avec des critères similaires. Les normes ISO 26262 et EN50128 tirent leurs définitions de la CEI 61508, qui est une norme globale pour la sécurité fonctionnelle.

Ces niveaux de SSIL sont également basés sur la probabilité d'échec et la gravité de l'échec sur la vie et l'intégrité corporelle. Comme prévu, le niveau ou la rigueur augmente au fur et à mesure que le niveau ASIL / SIL l'exige et les coûts de conformité augmentent avec lui. Le niveau de contrôle augmente avec le risque. En tant que tel, il y a un impact sur les coûts et le calendrier de développement logiciel, que les équipes de développement peuvent améliorer grâce à l'automatisation.

Risques et coûts associés à la mise en conformité logicielle

Le plus grand risque pour les entreprises de logiciels est une défaillance logicielle qui peut entraîner la mort, des blessures ou tout autre type de dommage qui ouvre la porte à la responsabilité. Pour aider à réduire ce risque, les entreprises de logiciels doivent se conformer aux normes de sûreté et de sécurité. Les organisations doivent démontrer qu'elles ont fait tous les choix techniques raisonnables pour assurer la sûreté et la sécurité de l'utilisateur / client / opérateur. La création de logiciels plus sûrs et sécurisés nécessite un engagement envers l'esprit et la lettre des normes de l'industrie. 1

Retravailler, retester et redocumentation

La découverte de problèmes importants de sûreté et de sécurité à la fin du cycle de vie du logiciel nécessite des retouches, des tests et une nouvelle documentation importants. C'est cher et prend du temps à résoudre. Cela indique également une possible défaillance du système et du processus d'ingénierie.

Il est essentiel de déplacer la conformité gauche le plus tôt possible dans le cycle de vie du développement logiciel (SDLC). (Nous recommandons de passer à gauche pour toutes les pratiques de qualité, de sécurité et de sûreté.) À cette fin, nos recommandations incluent les bons outils, processus et automatisation pour aider à réduire les risques logiciels et augmenter la conformité sans nuire aux coûts et au calendrier.

Manque de processus adapté à l'espace applicatif

Souvent, l'adoption d'une culture et d'un processus adaptés à l'espace applicatif fait défaut dans de nombreuses organisations. Les logiciels critiques pour la sécurité, par exemple, nécessitent un niveau élevé de rigueur dans le développement de logiciels, ce qui implique une qualité supérieure partout.

Manque des bons outils et automatisation

Les organisations qui s'alignent sur les exigences de sûreté et de sécurité portent une lourde charge de travail qui implique de fournir une piste d'audit de conformité pour chaque étape et processus du logiciel. Outre le développement logiciel habituel, le travail supplémentaire comprend:

  • Suivi des exigences par rapport au code et aux tests.
  • Génération de rapports sur les échecs, la couverture du code, la correction et les écarts.

Dans la plupart des cas, les normes de codage sont applicables, par exemple MISRA pour ISO 26262. Les équipes doivent donc travailler pour corriger les écarts par rapport aux normes et mesurer la conformité.

Des tests fonctionnels sont nécessaires pour prouver que les produits répondent aux exigences. Ceci s'ajoute aux tests des exigences de sûreté et de sécurité. Tous les tests nécessitent une traçabilité et une documentation d'audit.

Ensemble, le niveau accru de traçabilité, de tests, de normes de développement strictes et de documentation augmente considérablement les coûts de développement des produits. Cela rend le risque de problèmes de conformité en aval encore plus intimidant.

L'automatisation est la clé pour réduire la charge de travail et l'ennui de ces processus.

Outils et automatisation pour la conformité

Les outils de développement logiciel aident à réduire la charge de travail et les erreurs des processus de conformité en automatisant les processus les plus répétitifs et les plus fastidieux. En outre, les outils permettent de mieux suivre l'historique du projet et de relier les résultats aux exigences, aux composants logiciels, aux tests et aux écarts enregistrés.

Les outils aident également à appliquer les bonnes pratiques telles que les normes de codage, les tests unitaires, la couverture du code, la traçabilité, etc. Les équipes peuvent adopter des outils tôt dans le cycle de vie pour aider à déplacer vers la gauche la charge de travail de conformité.

Réduire les risques et les coûts de conformité grâce à l'automatisation

Les sections suivantes expliquent comment les outils Parasoft contribuent à réduire les risques et les coûts de conformité.

Comment les produits Parasoft s'intègrent dans chaque phase du diagramme en V classique du SDLC.

Conformité aux normes de sécurité fonctionnelle avec les outils Parasoft

Le développement de logiciels critiques pour la sécurité n'est pas une mince affaire. Parasoft aide à alléger la tâche en offrant une large gamme d'outils de test et de vérification de développement. Voici quelques-uns de ces outils:

  • Analyse de conformité aux normes de codage
  • Analyse des flux de données et de contrôle
  • Tests unitaires
  • Surveillance de l'application
  • Composants de workflow

Les normes que Parasoft prend directement en charge comprennent:

Les équipes de développement logiciel peuvent atteindre la conformité et gagner du temps avec Parasoft C / C ++test . L'outil éprouvé fournit des fonctions de test, des contextes configurables et des mécanismes de rapport qui facilitent les méthodologies de test logiciel avancées.

Les équipes disposent d'un moyen pratique de prévenir, d'exposer et de corriger les erreurs dans leur logiciel grâce à des rapports et des tableaux de bord générés automatiquement. Ils peuvent préparer la documentation requise pour les audits à l'aide de la qualification automatisée des outils.

Parasoft aide les organisations à effectuer des analyses statiques, des tests unitaires, la couverture du code structurel, la traçabilité des exigences et d'autres méthodes de test recommandées par la norme.

Couverture du code d'assemblage

L'outil de couverture d'assemblage de Parasoft (ASMTool) satisfait les recommandations de code d'objet exécutable définies par DO-178B/ C Niveau A. Avec peu d'effort, ASMTool peut générer des rapports de couverture structurelle à partir de code objet exécutable.

La couverture structurelle est rapportée avec un aperçu facilement révisable du code généré par le compilateur qui n'est pas directement traçable aux instructions de code source. Il suit également les instructions de commutation, fournissant un aperçu complet des chemins d'exécution des tests au niveau des instructions du langage machine.

ASMTool prend également en charge la collecte de la couverture structurelle à la fois du processus d'intégration logicielle (test du matériel cible) et de l'environnement de développement de bureau (Test Parasoft C / C ++ pour les tests unitaires).

Outil de couverture d'assemblage de Parasoft (ASMTool)
Outil de couverture d'assemblage de Parasoft (ASMTool)

Conformité aux normes de codage

Les normes de codage jouent un rôle important dans de nombreuses normes de sûreté et de sécurité. Dans la plupart des cas, le seul moyen pratique de faire respecter une norme de codage comme AUTOSAR C ++ 14 (utilisé dans les systèmes automobiles) est avec un outil d'analyse statique. Le test Parasoft C / C ++ prend en charge les vérificateurs mappés pour les normes de codage, de sorte que les développeurs n'ont pas besoin de déréférencer les avertissements aux normes.

Les équipes peuvent personnaliser le système de reporting interactif de Parasoft en fonction des exigences imposées par les règles qu'elles utilisent (AUTOSAR C ++ 14, HIC ++, MISRA, etc.) et permettre un flux de travail quotidien efficace. Les développeurs peuvent vérifier la conformité de leur code sans quitter leurs IDE et intégrer le processus d'analyse dans les builds CI sur les serveurs.

Parasoft prend également en charge les normes axées sur la sécurité telles que CERT SEI. Il aide les organisations à détecter les vulnérabilités de sécurité dans leur code et à gérer le processus de mise en conformité avec la norme. La haute précision des vérificateurs de code, le faible niveau de fausses alarmes et les rapports de conformité sophistiqués conformes à la norme CERT aident à minimiser les coûts et les frais généraux associés.

Les rapports de conformité uniques de Parasoft offrent une vue dynamique du processus de développement. Les rapports interactifs et les tableaux de bord personnalisés fournissent différentes vues sur les résultats de l'état de conformité CERT et utilisent le libellé et les catégorisations définis par la norme, pour en faciliter la compréhension.

Logiciel conforme: normes de codage

Reporting et génération de documents centralisés

La combinaison de plusieurs techniques d'automatisation de test permet d'obtenir de nombreuses informations de qualité. Ces données sont utiles, mais le volume même rend difficile la compréhension de la qualité de vos livrables et la prise de décisions concernant la publication ou les changements dans le processus de développement.

Pour soutenir la prise de décision, il est avantageux d'agréger les données dans une vue centralisée de la qualité. Les tableaux de bord graphiques fournissent une vue d'ensemble de la progression des tests. La corrélation des données de qualité avec vos exigences et vos user stories offre une véritable traçabilité bidirectionnelle afin que vous puissiez évaluer le risque commercial et l'impact des lacunes dans vos pratiques de test.

Le tableau de bord de reporting et d'analyse de Parasoft regroupe les données de toutes les différentes pratiques de test, y compris analyse statique (comme la conformité aux normes de codage AUTOSAR ou MISRA), couverture et traçabilité du code des tests unitaires, des tests API et de la validation fonctionnelle au niveau du système. Cela fournit une vue centralisée de la qualité qui constitue un audit en temps réel de votre processus et une visibilité sur l'état de conformité avec la norme requise. Cette analyse génère également la documentation nécessaire pour démontrer la conformité avec un auditeur.

Parasoft DTP vue centralisée de la qualité agrégée sur l'ensemble des outils et phases de développement.
Parasoft DTP vue centralisée de la qualité agrégée sur l'ensemble des outils et phases de développement.

À titre d'exemples, examinons les rapports du test Parasoft C / C ++ et PAO Parasoft pour MISRA et SEI CERT.

Rapports de conformité pour MISRA

Parasoft C / C ++test fournit des rapports dédiés pour documenter la conformité à MISRA C.Un tableau de bord sur le portail Web Parasoft fournit des vues en un coup d'œil sur l'état actuel du projet, comme celui ici:

Centre de rapports: Conformité MISRA C 2012
Centre de rapports: Conformité MISRA C 2012

Chacun de ces widgets de tableau de bord peut être lié à une vue plus détaillée, contenant des rapports de violation détaillés, des fichiers et du code source.

À partir de là, vous pouvez créer automatiquement les rapports nécessaires pour documenter la conformité MISRA, comme indiqué dans MISRA Compliance 2016: Atteindre la conformité avec les directives de codage MISRA. L'automatisation de ces rapports est un gain de temps considérable, réduisant considérablement la quantité de travail manuel nécessaire pour documenter la conformité des projets.

Rapports de conformité pour SEI CERT C

Bien que la norme SEI CERT C ne nécessite pas de rapports de conformité spécifiques, elle nécessite un projet pour documenter la conformité aux ensembles de règles (tels que L1, L2 et entièrement conforme.) Le test Parasoft C / C ++ comprend un tableau de bord dédié pour CERT Conformité C, qui ressemble à ceci:

Centre de rapports: Conformité SEI CERT C
Centre de rapports: Conformité SEI CERT C

Les chefs d'équipe peuvent utiliser cette vue du tableau de bord pour approfondir des domaines de préoccupation spécifiques et attribuer des tâches aux développeurs afin d'améliorer la conformité au fil du temps. La visualisation des résultats dans le contexte du cadre d'évaluation des risques utilisé par la norme de codage elle-même (par exemple, la constatation de violations spécifiques des directives de L1) rationalise considérablement le processus. L'automatisation de ces rapports réduit la quantité d'analyses que les chefs d'équipe et les architectes doivent effectuer pour atteindre la conformité CERT C.

Qualification des outils

La qualification des outils est un processus obligatoire pour le développement de logiciels critiques pour la sécurité. Kits de qualification de Parasoft pour Parasoft C / C ++ test automatise le processus de création de la documentation de support requise pour la qualification des outils d'analyse statique, les tests unitaires et les exigences de couverture, réduisant à la fois le potentiel d'erreur humaine et le temps nécessaire pour effectuer la qualification des outils.

La réduction du risque et du coût de la qualification des outils comprend les éléments suivants:

Générez automatiquement la documentation de conformité. Parasoft automatise la création de la documentation requise pour la qualification du test Parasoft C / C ++ pour une utilisation dans les industries critiques pour la sécurité en guidant l'utilisateur à travers un flux de travail intuitif et en générant une documentation essentielle pour démontrer la qualification des outils.

Réduisez la portée de ce qui est nécessaire pour qualifier l'outil. La première étape du flux de travail efficace de Parasoft consiste à sélectionner les cas d'utilisation et les capacités spécifiques du test Parasoft C / C ++ utilisé dans le projet logiciel, afin de réduire la portée globale de ce qui doit être qualifié et de rationaliser le processus de qualification.

Exécutez automatiquement les tests. Bien que le processus de qualification des outils ne puisse pas être automatisé à 100%, le flux de travail unique des kits de qualification de Parasoft le rend aussi indolore que possible, réduisant les efforts de test manuels et exécutant des tests automatisés pour certains cas d'utilisation.

Réduire le coût et le risque de conformité logicielle

Compte tenu du rôle des produits Parasoft à chaque étape du développement, comment Parasoft réduit-il les risques et économise de l'argent en matière de conformité logicielle?

Plusieurs technologies de test intégrées dans un seul outil. L'exhaustivité du test Parasoft C / C ++ se traduit par une efficacité accrue des développeurs lors du développement d'applications avec des exigences de sécurité fonctionnelle. Les développeurs peuvent se concentrer sur leurs activités principales sans avoir à apprendre, intégrer et qualifier plusieurs outils. Les intégrateurs d'outils ou les architectes n'ont pas à passer du temps à implémenter des interfaces entre les outils pour échanger des données et générer des rapports uniformes. Au lieu de cela, ils obtiennent tout cela de Parasoft hors de la boîte.

Une suite de tests éprouvée conçue spécifiquement pour les applications critiques pour la sécurité fonctionnelle. Lors de l'exécution de tests unitaires ou de la surveillance de la mémoire d'exécution, tous les composants requis pour créer le binaire de test, y compris les cas de test pour la stimulation du code testé et les stubs, sont exprimés sous forme de code source et peuvent être versionnés et inspectés. Cette approche est supérieure aux autres outils dans lesquels la stimulation du code testé est envoyée au moment de l'exécution depuis l'hôte et nécessite des conversions supplémentaires avant d'être affectée aux variables en mémoire. Le test C / C ++ supprime cette couche inutile et garantit que l'état de la mémoire avant l'exécution des tests est construit de la même manière que dans les systèmes de production.

Éliminez les frais généraux pour la conformité de la sécurité fonctionnelle. Parasoft fournit une intégration de données à l'échelle de l'équipe, des rapports pratiques personnalisés selon différentes normes de codage et des analyses avancées grâce au moteur primé d'intelligence de processus de Parasoft. Les utilisateurs bénéficient de la possibilité d'agréger des informations sur plusieurs sources différentes (telles que le code source ou les systèmes de gestion des exigences, les outils de test ou les ALM) pour des analyses de données uniques, aidant à concentrer les efforts de la manière la plus productive. Les équipes peuvent augmenter la productivité en surveillant les tendances du processus de développement et générer facilement des rapports conformes aux normes de l'industrie telles que «MISRA Compliance: 2016».

Résumé

Les logiciels critiques pour la sûreté et la sécurité des bâtiments nécessitent des processus rigoureux qui prennent du temps et sont coûteux à mettre en œuvre et pour une bonne raison: l'échec d'un tel logiciel peut avoir des conséquences dramatiques. Les normes de l'industrie sont mises en place pour aider les entreprises à créer des logiciels de haute qualité pour assurer la sûreté et la sécurité des produits développés. Cependant, le respect de ces normes de l'industrie est coûteux. Ce coût réside à la fois dans le processus de développement et dans les artefacts nécessaires pour documenter le processus d'ingénierie. Les organisations peuvent réduire leurs coûts avec les bonnes applications d'outils et des techniques logicielles modernes.

Parasoft fournit les bons outils et le support pour les processus qui aident à réduire les risques et les coûts de conformité des logiciels avec une suite d'outils éprouvée et unifiée qui réduit le «frottement» causé par l'utilisation de plusieurs outils de plusieurs fournisseurs. Une solution intégrée simplifie également considérablement la qualification des outils, un aspect critique de la conformité.

Disposer d'une plateforme intégrée permet une analyse de données unique collectée à partir de plusieurs outils à différents stades de développement pour concentrer les ressources sur les objectifs les plus importants. Cette vision centralisée de la conformité, de la qualité et de la sécurité est essentielle pour prendre des décisions éclairées et réduire considérablement les conjectures pour atteindre la conformité.

S'attaquer à la conformité ISO 26262 dans les tests de logiciels automobiles

« MISRA », « MISRA C » et le logo triangulaire sont des marques déposées de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Tous droits réservés.

Par Arthur Hicken

Arthur est impliqué dans la sécurité logicielle et l'automatisation des tests chez Parasoft depuis plus de 25 ans, aidant à la recherche de nouvelles méthodes et techniques (dont 5 brevets) tout en aidant les clients à améliorer leurs pratiques logicielles.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.