Webinaire en vedette : Tests d'API améliorés par l'IA : une approche de test sans code | Voir le séminaire
Aperçu
Perspectives de l'industrie automobile
La industrie automobile L'industrie automobile continue d'évoluer rapidement et de s'étendre à des domaines techniques où d'autres industries opèrent depuis de nombreuses années. Par exemple, le Jet Propulsion Laboratory de la NASA publie des correctifs de code et de nouvelles fonctionnalités actuellement en cours de développement pour un vaisseau spatial à des millions de kilomètres de distance, en route vers sa destination. De même, nous constatons que l'industrie automobile fournit des mises à jour logicielles sur les voitures qui ont été vendues et sont conduites par leurs consommateurs dans le monde entier.
L’avenir des voitures autonomes semble également prometteur, avec un potentiel d’adoption généralisée dans les prochaines décennies. Plusieurs entreprises, dont Waymo, Tesla, Uber et des constructeurs automobiles traditionnels comme GM et Ford, sont à l’avant-garde du développement de la technologie de conduite autonome. Nombre d’entre elles effectuent des tests approfondis et certaines ont déployé des programmes pilotes dans certaines villes. À mesure que la technologie mûrit, elle devrait révolutionner les transports, les rendant plus sûrs, plus efficaces et plus accessibles.
Défis en matière de sécurité et de sûreté
Ce type d’évolution, notamment celle des systèmes avancés d’aide à la conduite (ADAS), s’accompagne d’un nouvel ensemble de défis en matière de sécurité. Des normes comme la norme ISO 26262 traitent de la sécurité fonctionnelle du développement des systèmes électriques et électroniques (E/E), qui comprennent la propulsion, les systèmes de contrôle dynamique et l’aide à la conduite.
En outre, des plateformes comme AUTOSAR fournissent une architecture logicielle standardisée ouverte qui améliore encore la sécurité. Elles incluent des directives pour l'utilisation du langage C++14 dans le développement de systèmes critiques et liés à la sécurité. Cependant, les fabricants ont réalisé qu'en raison de la complexité accrue et des inconnues liées à la collaboration entre les technologies modernes, ainsi que des changements dans l'environnement interne et externe, des problèmes de sécurité et de sûreté sont apparus que ces normes ne prennent pas en compte.
Lorsque vous abordez la norme ISO 21343, il est important de comprendre que les considérations de sécurité recommandées pour la cybersécurité doivent être intégrées dans vos processus de développement existants. ISO 21434 Les références à la norme ISO 26262 tiennent compte du fait que ces deux disciplines doivent échanger de manière interdisciplinaire les stratégies, la coordination et même les outils utilisés. Cela signifie que votre organisation doit faire en sorte que vos ingénieurs système travaillent avec vos ingénieurs sécurité tout au long de la phase d'analyse des exigences en matière de sécurité et de sûreté.
Parallèlement, effectuez une analyse des dangers et une évaluation des risques (HARA) pour la sécurité, et une analyse des menaces et une évaluation des risques (TARA) pour la sécurité. Néanmoins, un environnement collaboratif solide est nécessaire pour garantir un résultat sûr et sécurisé.
Assurer la sécurité lors de la phase d'implémentation du logiciel commence par application de l'analyse de code statiqueLa norme de codage MISRA intègre des directives de sécurité, mais vous pouvez également augmenter et renforcer la sécurité du code en Adopter le CERT.
En continuant sur le côté droit du V, effectuez des tests unitaires de toutes vos exigences de sécurité de bas niveau. Dans la phase suivante, créez des cas de test qui intègrent des fonctionnalités supplémentaires. Ces cas de test garantissent que vos exigences de haut niveau sont satisfaites.
En passant aux tests système, créez des tests système pour vous assurer que les exigences système sont vérifiées. Confirmez que tous les cas de test remontent à vos exigences. Cela garantit qu'aucune exigence n'est non testée. Cependant, pour garantir que chaque exigence est entièrement testée, intégrez une couverture de code structurelle comme recommandé par les normes ISO 21434 et ISO 26262. La couverture de code garantit non seulement que chaque ligne de code a été testée, mais également que vos cas de test de sécurité couvrent entièrement chaque chemin d'exécution possible grâce à ses mesures de correction des fonctionnalités de sécurité.
Pour surmonter les défis liés à la sécurité, les équipes peuvent se tourner vers des solutions telles que Parasoft C/C++test, qui a été certifié par TÜV SÜD pour une utilisation dans des applications critiques pour la sécurité selon la norme ISO 26262 et ISO 21434 par association. Ces deux normes recommandent d'effectuer une analyse statique, une analyse dynamique (qui comprend des tests unitaires, d'intégration et système), une couverture de code et une traçabilité des exigences. Offrant exactement ce que recommandent les normes ISO 26262 et ISO 21434 pour la vérification des logiciels en matière de sécurité, Parasoft fournit également la documentation requise pour prouver la conformité aux deux normes.
Exigences réglementaires du WP.29 de la CEE-ONU
La Commission économique des Nations Unies pour l'Europe (CEE-ONU) a publié le 23 juin 2020 des exigences réglementaires qui décrivent les nouveaux processus et technologies que les constructeurs automobiles doivent intégrer à leur organisation et à leurs véhicules. Ces réglementations s'appliquent également aux fournisseurs de composants logiciels et matériels de niveau 1 et de niveau 2, y compris les services mobiles.
Les constructeurs automobiles sont tenus d’intégrer dans leur structure organisationnelle un cadre de gestion basé sur les risques pour découvrir, analyser et se protéger contre les menaces, les vulnérabilités et les cyberattaques pertinentes.
Les catégories suivantes nécessitent des tests de cybersécurité et des inspections de réussite.
- La catégorie M couvre les voitures standard à quatre roues.
- La catégorie N est réservée aux camionnettes et aux fourgonnettes.
- Les catégories L6 et L7 comprennent les voitures électriques et les capacités autonomes.
Une note de passage aux exigences clés du WP.29, tant organisationnelles que pour les véhicules, signifie que le constructeur reçoit un certificat de conformité. Les nouveaux véhicules sans ce certificat ne pourront pas être vendus dans l'UE après juillet 2024. Sachez que les États-Unis ne participent pas à ce programme et n'ont pas de réglementation similaire. Cependant, la situation est déjà claire.
Épices pour l'automobile
L'amélioration des processus logiciels et la détermination des capacités dans le secteur automobile (ASPICE) fournissent un cadre de mesure permettant aux évaluateurs indépendants d'évaluer la capacité d'une organisation à développer des logiciels. Assurer la sécurité des logiciels et la cybersécurité ne se limite pas aux aspects techniques du développement du système électronique, mais nécessite également que l'organisation intègre des processus et des contrôles.
Ces processus et contrôles doivent inclure des moyens de suivre et de surveiller les progrès dans toutes les pratiques de l’organisation afin de garantir :
- Des pratiques de sécurité et de cybersécurité ont été adoptées.
- Les exigences de sécurité et de cybersécurité sont satisfaites.
Il s’agit également de l’un des deux principaux critères de certification du WP.29 de la CEE-ONU sur la capacité organisationnelle en matière de cybersécurité.
Scénarios dangereux
Elle a permis de concrétiser d'autres développements de la norme ISO 26262, comme la norme ISO/PAS 21448, plus communément appelée SOTIF (sécurité de la fonctionnalité prévue). La norme SOTIF vous aide à analyser et à prévenir l'utilisation abusive de la fonctionnalité prévue lorsqu'elle crée un scénario dangereux. Par exemple, votre véhicule s'arrête par inadvertance pendant que vous le conduisez, en raison d'une mise à jour logicielle lancée.
Les vulnérabilités de sécurité peuvent également entraîner des scénarios dangereux. Un attaquant pourrait utiliser la connexion Wi-Fi du véhicule pour exploiter à distance un port exposé. Il pourrait d'une manière ou d'une autre passer du système d'infodivertissement embarqué avancé (IVI) au contrôle ou à l'influence de composants critiques pour la sécurité, comme le freinage ou la direction, en raison du partage de la même infrastructure de communication.
Le rôle des normes
Des normes telles que la norme SAE J3061, remplacée par la norme ISO/SAE 21434, précisent qu'une analyse initiale des menaces et une évaluation des risques (TARA) doivent être réalisées pour évaluer les menaces potentielles liées à l'exploitation, à la confidentialité et à d'autres facteurs pouvant affecter un usager/conducteur de la route. Si le risque d'une menace est suffisamment élevé, un processus de cybersécurité est alors nécessaire. Il existe différentes approches pour éliminer les vulnérabilités en matière de sécurité et les exigences qui atténuent les risques. En savoir plus sur TARA et pourquoi votre équipe de développement a besoin de TARA.
Des normes telles que la norme UL 4600 existent désormais spécifiquement pour le fonctionnement entièrement autonome des véhicules. Cela signifie qu'il n'y a aucune supervision humaine et que l'autonomie assume l'entière responsabilité. Cette norme se concentre sur la construction d'un dossier de sécurité pour le déploiement de véhicules SAE de niveau 4/5, et non sur la manière de tester la sécurité des véhicules autonomes sur la voie publique. Cela impliquerait une norme différente.
Ces normes et d’autres jouent un rôle crucial dans la sécurité et la sûreté de l’industrie automobile. Les constructeurs automobiles assument les coûts de responsabilité liés à la livraison de véhicules dangereux et peu sûrs au grand public. Pour atténuer ces risques, les constructeurs automobiles doivent adopter et respecter ces normes. Cependant, ils doivent exiger la même qualité et le même respect de la part de leurs fournisseurs. Une faiblesse dans un composant peut compromettre la sécurité et la sûreté de l’ensemble du système.
Élaboration de normes de codage personnalisées
En collaboration avec certains de ses constructeurs automobiles, Parasoft a élaboré des normes de codage personnalisées qui intègrent MISRA, AUTOSAR C++14, CERT, CWE et d'autres règles personnalisées à utiliser par leurs fournisseurs. Cela garantit que le même niveau de qualité de logiciel existe tout au long de la chaîne d'approvisionnement.
Parasoft C/C++test est une solution de test unifiée qui inclut les tests unitaires et la couverture du code structurel dans le cadre de ses fonctionnalités. Cette solution de développement de logiciels C/C++ prend en charge un ensemble complet de cibles matérielles et d'écosystèmes de développement que les fournisseurs et les OEM peuvent utiliser avec différentes infrastructures de développement. C/C++test a été certifié par TÜV SÜD pour une utilisation sur des systèmes critiques pour la sécurité et la sûreté. Pour les ADAS et les voitures connectées sécurisées, les intégrations transparentes de C/C++test avec SOAtest et Virtualiser combinez les tests d'API avec la couverture des applications d'exécution et les bancs d'essai virtuels simulés.
Qu’est-ce que la norme ISO 26262 ?
La norme ISO 26262 est une norme de sécurité fonctionnelle qui couvre l'ensemble du processus de développement de produits automobiles. Elle comprend des activités telles que la spécification des exigences, la conception, la mise en œuvre, l'intégration, la vérification, la validation et la configuration.
La norme fournit des orientations sur les activités du cycle de vie de la sécurité automobile en spécifiant les exigences suivantes :
- Gestion de la sécurité fonctionnelle pour les applications automobiles
- La phase de conception pour les applications automobiles
- Développement de produits au niveau du système pour la conception architecturale de logiciels d'applications automobiles
- Développement de produits au niveau matériel pour les tests unitaires de logiciels d'applications automobiles
- Développement de produits au niveau logiciel pour les applications automobiles
- Production, exploitation, service et démantèlement
- Processus de support : interfaces au sein des développements distribués, exigences de gestion de la sécurité, gestion des modifications et de la configuration, vérification, documentation, utilisation d'outils logiciels, qualification des composants logiciels, qualification des composants matériels et argumentation éprouvée
- Analyses orientées vers le niveau d'intégrité de la sécurité automobile (ASIL) et la sécurité
L'ISO 26262 est une adaptation de la norme CEI 61508 pour l'industrie automobile. La norme CEI 61508 est une norme de base de sécurité fonctionnelle industrielle pour les appareils électriques, électroniques et électroniques programmables, et applicable à tous les types d'industries. D'autres secteurs comme CEI 62304 Médical et Chemin de fer EN 50128 ont également été dérivées de la norme IEC 61508.
La norme ISO 26262 a été extraite et développée de la norme IEC 61508 pour l'industrie automobile. Elle constitue donc par héritage une norme de sécurité fonctionnelle qui fournit des orientations pour réglementer l'ensemble du processus du cycle de vie du produit, au niveau logiciel et matériel, depuis le développement conceptuel jusqu'à la mise hors service. Elle couvre les systèmes automobiles électriques et électroniques et leur processus de développement, y compris la spécification des exigences, la conception, la mise en œuvre, l'intégration, la vérification, la validation et la configuration.
La dernière version, ISO 26262:2018, est divisée en 12 parties. La norme a évolué depuis sa première édition, parue en 2011.
Quelles sont les parties de l'ISO 26262 ?
Réalisation d'une analyse des dangers et d'une évaluation des risques
Dans la norme ISO 26262, une analyse des dangers et une évaluation des risques (HARA) doivent être effectuées sur le système en cours de développement. Une fois l'HARA terminée, un ASIL est attribué au composant logiciel et il existe des niveaux A à D. Le niveau A représente l'attribution du danger le plus faible et le niveau D représente l'attribution du danger le plus élevé. Cela signifie que la défaillance d'un système avec l'attribution ASIL D pourrait être catastrophique.
Il existe également une attribution de niveau de gestion de la qualité (QM), ce qui signifie qu'il n'y a aucune exigence de sécurité. L'ASIL est attribué en prenant la gravité de la blessure multipliée par la probabilité de la défaillance multipliée par la contrôlabilité. Le tableau suivant détaille chaque niveau de gravité, d'exposition et de contrôlabilité.
Exposition = La fréquence ou la probabilité que la défaillance se produise.
Contrôlabilité – La mesure dans laquelle nous pouvons garantir que l’événement ne se produira pas.
Plusieurs tableaux sont disponibles gratuitement et permettent de déterminer la valeur ASIL. Le tableau ci-dessous est un exemple beaucoup plus facile à lire et présente les niveaux ASIL en couleurs en fonction de la gravité, de l'exposition et de la contrôlabilité.
Sécurité Active et Passive
Les véhicules routiers sont équipés de nombreux systèmes de sécurité, certains étant considérés comme des systèmes de sécurité active et d'autres comme des systèmes de sécurité passive.
La sécurité active est utilisée pour désigner la technologie qui contribue à prévenir un accident. Vous avez le contrôle de traction, le système de freinage antiblocage, le Vision ADAS et d'autres.
Les systèmes de sécurité passive assurent la sécurité des passagers. Par exemple, en cas d'accident, vous disposez d'airbags et de ceintures de sécurité. L'essuie-glace électronique et le combiné d'instruments sont également des systèmes de sécurité passive.
Réalisation de tests, de vérification et de validation de la conception et de la mise en œuvre d'unités logicielles
Étant donné que ce guide est axé sur les logiciels, il est important de couvrir les méthodes de vérification et de validation des tests recommandées par la norme. Par exemple, le tableau 7 répertorie les méthodes de vérification 1a à 1k à appliquer lors de la conception et de la mise en œuvre de l'unité. La méthode 1h, « Analyse de code statique », est fortement recommandée pour les niveaux ASIL A à D.
Les colonnes du tableau 7 à droite indiquent les niveaux ASIL de A à D. Un seul symbole « + » indique que la norme le recommande, un double « ++ » indique qu'il est fortement recommandé et un « o » indique qu'il n'y a aucune recommandation.
Améliorez vos tests logiciels avec les solutions Parasoft.
Explorez les chapitres
- Introduction "
- 1. Aperçu »
- 2. Analyse statique »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERT »
- 6. CWE »
- 7. Tests unitaires »
- 8. Tests de régression »
- 9. Tests d'intégration de logiciels »
- 10. Test du système logiciel »
- 11. Couverture du code structurel »
- 12. Matrice de traçabilité des exigences »
- 13. Qualification des outils »
- 14. Rapports et analyses »