Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »
Aller à la section
Blog Parasoft
S'assurer que vous fournissez des produits logiciels conformes aux normes de conformité et de réglementation peut exercer une pression coûteuse sur le budget de votre entreprise. Dans cet article, vous apprendrez comment l'automatisation des tests de Parasoft vous aidera à réduire les coûts et les risques de conformité.
Aller à la section
La conformité en matière de développement logiciel peut revêtir des significations légèrement différentes selon les organisations. Ces différences, en matière d'obtention de logiciels conformes, sont généralement liées au marché sur lequel les produits sont commercialisés. Elles peuvent aller d'un développement rigoureux pour les logiciels critiques pour la sécurité à des applications d'entreprise exigeant des fonctionnalités de sécurité et de confidentialité pour le traitement des données sensibles.
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.
En termes de sécurité, il existe plusieurs normes dont certaines incluent:
Il existe également des normes de sécurité et de confidentialité telles que le RGPD pour la protection générale des données et la norme PCI-DSS pour le traitement sécurisé des informations de cartes de crédit.
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é.
La probabilité que cela se produise ainsi que la gravité du risque et la contrôlabilité déterminent la place d'un produit au niveau de l'intégrité de la sécurité. La contrôlabilité est la capacité du conducteur à atténuer le risque.
Tableau de gravité, d'exposition et de contrôlabilité
Le tableau suivant montre la gravité, l'exposition et la contrôlabilité traduites en différents ASIL dans la norme ISO 26262.
Analyse des dangers et évaluation des risques
Les normes EN 50716 et EN 50128 utilisent les termes « niveaux d'intégrité de sécurité logicielle » (SSIL) avec des critères similaires. Les normes ISO 26262 et EN 50716/EN 50128 tirent leurs définitions de la norme CEI 61508, norme générale relative à 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.
Le principal risque pour les entreprises de logiciels est la défaillance logicielle pouvant entraîner des décès, des blessures ou d'autres préjudices susceptibles d'engager leur responsabilité. Pour atténuer ce risque, ces entreprises doivent se conformer aux normes de sûreté et de sécurité. Elles doivent démontrer avoir fait tous les choix techniques raisonnables pour garantir la sûreté et la sécurité de l'utilisateur, du client ou de l'opérateur. La création de logiciels plus sûrs et sécurisés exige un engagement envers l'esprit et la lettre des normes du secteur.
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é vers la gauche le plus tôt possible dans le cycle de vie du développement logiciel (SDLC). Parasoft recommande de se déplacer vers la gauche pour toutes les pratiques de qualité, de sécurité et de sûreté. À cette fin, nos recommandations incluent les outils, processus et automatisations appropriés pour aider à réduire les risques logiciels et à accroître la conformité sans impact négatif sur les coûts et le calendrier.
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.
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:
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.
En automatisant les processus les plus répétitifs et fastidieux, les outils de développement logiciel contribuent à réduire la charge de travail et les erreurs des processus de conformité. De plus, les outils sont plus efficaces pour suivre l'historique du projet et 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 dès le début du cycle de vie pour aider à abandonner la charge de travail de conformité.
Voici quatre bonnes pratiques recommandées à suivre pour réussir à fournir des logiciels conformes :
Les outils Parasoft aident à réduire les risques et les coûts de conformité. De plus, les équipes peuvent satisfaire aux exigences de vérification et de validation grâce à des rapports complets et à des intégrations d'outils.
Comment les produits Parasoft s'intègrent dans chaque phase du diagramme en V classique du SDLC.
Développer des logiciels critiques pour la sécurité est une tâche complexe. Parasoft facilite ce processus en proposant une large gamme d'outils de développement, de test et de vérification. Voici quelques-unes de ces méthodes de vérification éprouvées, conçues 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 et les stubs du code testé, sont exprimés sous la forme de code source et peuvent être versionnés et inspectés. Cette approche est supérieure à d'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. Parasoft C/C++test 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.
C/C++test combine plusieurs technologies de test intégrées dans un seul outil. Son exhaustivité 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 ou architectes d'outils n'ont plus à consacrer de temps à la mise en œuvre d'interfaces entre les outils pour l'échange de données et la génération de rapports uniformes. Ils bénéficient de toutes ces fonctionnalités prêtes à l'emploi avec Parasoft.
L'outil de couverture d'assemblage (ASMTool) de Parasoft satisfait aux recommandations de code objet exécutable définies par le niveau C A. ASMTool peut générer des rapports de couverture structurelle à partir de code objet exécutable avec peu d'effort.
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 à partir du processus d'intégration logicielle (tests matériels cibles) et de l'environnement de développement de bureau ( Parasoft C/C++test pour les tests unitaires ).
Outil de couverture d'assemblage de Parasoft (ASMTool)
Les normes de codage jouent un rôle essentiel dans de nombreuses normes de sûreté et de sécurité. Dans la plupart des cas, le seul moyen pratique de garantir la conformité à une norme de codage telle qu'AUTOSAR C++14 (utilisée dans les systèmes automobiles) est d'utiliser un outil d'analyse statique. Parasoft aide les organisations à réaliser des analyses statiques, des tests unitaires, des analyses de couverture de code structurelle, des analyses de traçabilité des exigences et d'autres méthodes de test recommandées par la norme.
Parasoft C/C++test prend en charge les vérificateurs mappés pour les normes de codage, évitant ainsi aux développeurs de devoir renvoyer les avertissements aux normes. Cet outil éprouvé offre des fonctions de test, des contextes configurables et des mécanismes de génération de rapports qui facilitent les méthodologies de test logiciel avancées . Les normes directement prises en charge par Parasoft sont les suivantes :
Les équipes de développement logiciel peuvent garantir la conformité et gagner du temps grâce à Parasoft C/C++test . Elles disposent d'une méthode pratique pour prévenir, identifier et corriger les erreurs dans leurs logiciels grâce à des rapports et des tableaux de bord générés automatiquement. Elles peuvent également préparer la documentation nécessaire aux audits grâce à la qualification automatisée des outils.
Les équipes peuvent personnaliser le système de reporting interactif de Parasoft selon les exigences imposées par les règles qu'elles utilisent, comme AUTOSAR C++ 14, HIC++, MISRA C/C++, etc., et permettre un flux de travail quotidien efficace. Les développeurs peuvent vérifier la conformité de leur code sans quitter leur IDE et intégrer le processus d'analyse dans les builds CI sur les serveurs.
Parasoft prend également en charge les normes de sécurité telles que SEI CERT. La solution aide les organisations à détecter les vulnérabilités de sécurité dans leur code et à gérer le processus de mise en conformité. La grande précision des outils d'analyse de code, le faible taux de faux positifs et les rapports de conformité détaillés, conformes à la norme CERT, contribuent à 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.
Niveaux de gravité des normes de codage des logiciels conformes
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 centralise les données issues de toutes les pratiques de test, y compris l'analyse statique ( conformité aux normes de codage AUTOSAR ou MISRA, couverture de code et traçabilité des tests unitaires, tests d'API et validation fonctionnelle système). Il offre ainsi une vue centralisée de la qualité, un audit en temps réel de vos processus et une visibilité sur la conformité aux normes requises. Cette analyse génère également la documentation nécessaire pour démontrer la conformité lors d'un audit.
Parasoft DTP vue centralisée de la qualité agrégée sur l'ensemble des outils et phases de développement.
Prenons comme exemples les rapports de Parasoft C/C++test et de Parasoft DTP pour MISRA et SEI CERT.
Le test Parasoft C / C ++ 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 2023
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 2020: 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.
Bien que la norme SEI CERT C n'exige pas de rapports de conformité spécifiques, elle nécessite qu'un projet documente la conformité aux ensembles de règles, tels que L1, L2, et qu'il soit entièrement conforme. Parasoft C/C++test comprend un tableau de bord dédié à la conformité CERT C, qui ressemble à ceci :
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.
La qualification des outils est une procédure obligatoire pour le développement de logiciels critiques. Les kits de qualification de Parasoft pour Parasoft C/C++test automatisent la création de la documentation nécessaire à la qualification des outils pour l'analyse statique, les tests unitaires et les exigences de couverture, réduisant ainsi les risques d'erreur humaine et le temps requis.
La réduction du risque et du coût de la qualification des outils comprend les éléments suivants:
La création de logiciels critiques en matière de sûreté et de sécurité nécessite des processus rigoureux, longs et coûteux à mettre en œuvre, et pour cause : la défaillance de tels logiciels peut avoir des conséquences dramatiques. Des normes industrielles sont mises en place pour aider les entreprises à créer des logiciels de haute qualité afin de garantir la sûreté et la sécurité des produits développés. Cependant, le respect de ces normes industrielles coûte cher. 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 grâce aux bonnes applications d’outils et de techniques logicielles modernes.
Parasoft fournit les outils et le support adaptés aux processus qui contribuent à réduire les risques et les coûts liés à la conformité logicielle grâce à une suite d'outils unifiée et éprouvée, réduisant les frictions liées à l'utilisation de multiples outils de différents fournisseurs. Une solution intégrée simplifie également considérablement la qualification des outils, un aspect essentiel 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é.
« 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.