Logo Parasoft Rechercher

Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »

WEBINAIRE

Faire le lien entre GoogleTest et la conformité pour les logiciels critiques de sécurité

Les frameworks de tests unitaires open source comme GoogleTest sont devenus la norme pour le développement logiciel moderne en C et C++. Cependant, pour les organisations qui conçoivent des systèmes embarqués critiques pour la sûreté et la sécurité, l'adoption de GoogleTest n'est qu'un point de départ. Démontrer la couverture structurelle du code, la traçabilité des exigences, la qualification des outils et la conformité aux normes de sécurité fonctionnelle et de cybersécurité requiert bien plus qu'un framework de tests open source traditionnel.

Assistez à cette discussion interactive animée par Chris Rommel, vice-président exécutif de VDC Research, avec Arthur Hicken, évangéliste, et Ricardo Camacho, directeur produit, tous deux de Parasoft, qui expliquent comment les organisations d'ingénierie peuvent adopter et déployer GoogleTest en toute confiance dans des environnements de développement réglementés.

Le panel explore :

  • Pourquoi GoogleTest est un moteur de l'embarqué Tests unitaires C/C++
  • Les défis liés à l'utilisation de Google Test dans le développement critique pour la sécurité
  • Comment parvenir à une couverture structurelle, à la traçabilité et à la préparation à l'audit ?
  • Lacunes courantes en matière de conformité lors de l'utilisation de flux de travail de test open source
  • Bénéfices du Test Google certifié TÜV SÜD
  • Étendre GoogleTest tout en préservant les flux de travail des développeurs

Découvrez des stratégies pratiques pour moderniser les flux de travail de vérification des logiciels embarqués, améliorer la qualité des logiciels, rationaliser la conformité et réduire les risques de certification, tout en continuant à utiliser les outils open source que vos développeurs connaissent et auxquels ils font déjà confiance, même si la complexité des logiciels et le développement assisté par l'IA continuent de croître.

Les exigences croissantes en matière de développement logiciel

Le logiciel est devenu l'élément déterminant des produits actuels, stimulant l'innovation dans tous les secteurs. Les équipes d'ingénierie anticipent une complexité logicielle croissante, plus de la moitié d'entre elles prévoyant une augmentation d'au moins 25 % du code développé en interne sur leurs prochains projets. Il ne s'agit pas simplement d'une plus grande quantité de code ; c'est un changement fondamental dans la manière dont les logiciels sont développés. Plusieurs facteurs expliquent cette complexité :

  1. IoT et Edge Computing : Intégrer davantage d'intelligence dans les systèmes finaux.
  2. Intégration logicielle: Devenir des intégrateurs de code provenant de diverses sources telles que des fournisseurs tiers, des composants open source et des projets antérieurs.
  3. Code généré par l'IA : Intégration rapide au processus de développement, ajoutant une couche supplémentaire de complexité et de défis en matière de gouvernance.

Ces tendances conjuguées contraignent les équipes d'ingénierie à développer davantage de logiciels, à intégrer du code provenant de sources plus nombreuses et à produire davantage de preuves de conformité, tout en disposant de ressources identiques, voire moindres. Il en résulte une pression croissante pour adopter des stratégies de vérification plus efficaces et évolutives.

La valeur indéniable des tests unitaires

À mesure que la complexité des logiciels augmente, l'efficacité des tests unitaires devient primordiale. Les données montrent que les projets dotés de pratiques de tests unitaires éprouvées enregistrent plus de 70 % de défauts signalés par les clients en moins chaque année que ceux qui n'en disposent pas. Les organisations qui adoptent de telles pratiques constatent également des défauts moins graves, ce qui réduit le temps de correction de 81 heures-personnes en moyenne à 51 heures-personnes par défaut.

Il existe cependant un paradoxe : malgré des preuves évidentes de bonnes pratiques, de nombreuses organisations s’écartent des méthodes établies lorsqu’elles adoptent de nouvelles technologies ou sont confrontées à des contraintes de temps. Cela peut entraîner des retards dans les projets, ce qui est particulièrement coûteux dans le domaine critique pour la sécurité, où les retards peuvent se traduire par des centaines de milliers de dollars de coûts opérationnels, sans parler des pertes de revenus et des risques de certification.

Cela soulève une question importante : comment les organisations peuvent-elles continuer à utiliser des frameworks de tests unitaires modernes et open source comme GoogleTest tout en respectant les exigences rigoureuses de vérification et de conformité des secteurs réglementés ?

GoogleTest : Le bon framework, mais seulement une partie de la solution

GoogleTest est devenu le framework de tests unitaires de référence pour le développement C++ embarqué. Sa prise en charge native du C++, son adoption par une large communauté, son intégration CI/CD transparente et sa licence open source en font un excellent choix pour les équipes de développement logiciel modernes.

Cependant, les entreprises qui développent des logiciels critiques pour la sûreté et la sécurité constatent rapidement que les tests unitaires ne suffisent pas. Pour répondre aux exigences de vérification et de conformité des secteurs réglementés, il faut des fonctionnalités supplémentaires que GoogleTest n'a pas été conçu pour fournir.

Où les lacunes en matière de conformité apparaissent généralement

Les équipes d'ingénierie rencontrent souvent des difficultés dans quatre domaines clés :

  • Couverture du code structurel : GoogleTest ne propose pas nativement la couverture des instructions, des branches ou des circuits MC/DC, pourtant souvent exigée par les normes de sécurité. Des modules complémentaires peuvent y remédier, mais nécessitent un paramétrage manuel.
  • Traçabilité des exigences : Il ne prend pas en charge nativement le traçage des tests jusqu'aux exigences spécifiques, ce qui nécessite une gestion manuelle ou une intégration avec des outils distincts.
  • Rapports prêts pour l'audit : Les formats XML ou JSON standard ne suffisent pas pour les audits. Il manque des preuves complètes, notamment l'historique, le contexte des versions et les éléments de qualification.
  • Qualification d'outil : GoogleTest ne fournit pas de preuve documentée que l'outil lui-même remplit correctement sa fonction prévue, une exigence pour des normes comme DO 330 ou IEC 61508.

Sans ces capacités, les équipes s'appuient souvent sur des processus manuels, des outils non intégrés et des intégrations personnalisées, ce qui alourdit les efforts d'ingénierie et accroît les risques liés à la certification. Un logiciel sûr n'est jamais le fruit du hasard ; il est le résultat d'une ingénierie réfléchie.

Naviguer sur la voie à suivre

Lorsqu'une organisation identifie un écart de certification dans son flux de travail GoogleTest, il existe généralement trois voies possibles :

  1. Migrer hors de GoogleTest : Cette solution est extrêmement perturbatrice : elle implique de réécrire le code de test, de former à nouveau les développeurs et risque de perdre les intégrations existantes. Elle est souvent trop coûteuse et chronophage pour les équipes déjà en place.
  2. Auto-qualification GoogleTest : Cela exige un investissement considérable en temps et en expertise pour créer et maintenir les éléments de qualification. Ce travail doit être répété pour chaque nouvelle version de GoogleTest, ce qui engendre des coûts récurrents et des risques liés à la planification.
  3. Étendez GoogleTest avec une solution conforme aux normes :
    Plutôt que de remplacer GoogleTest, de nombreuses organisations choisissent de tirer parti de leur investissement existant en y ajoutant les fonctionnalités nécessaires au développement de systèmes critiques pour la sûreté et la sécurité. Des solutions telles que Parasoft C/C++test CT étendent GoogleTest avec une couverture de code structurelle, une traçabilité des exigences, des preuves de conformité prêtes pour l'audit et un packaging GoogleTest certifié TÜV SÜD, ce qui simplifie les activités de qualification et de certification des outils.

Cette approche permet aux équipes de conserver leurs flux de travail GoogleTest existants tout en les préparant à la certification. Au lieu de repartir de zéro, les entreprises peuvent continuer à utiliser les outils que leurs développeurs connaissent et auxquels ils font confiance, tout en répondant aux exigences de vérification et de conformité des secteurs réglementés.

L'IA redéfinit la vérification des logiciels

L'IA transforme le développement logiciel en aidant les ingénieurs à générer du code, à créer des tests et à corriger les défauts plus rapidement que jamais. Cependant, pour les logiciels critiques en matière de sûreté et de sécurité, l'IA ne remplace pas une vérification rigoureuse ; elle la rend encore plus indispensable. Quelle que soit la méthode de création du code, les organisations doivent toujours démontrer la couverture structurelle du code, la traçabilité des exigences, la conformité et la certitude que le logiciel répond aux exigences de sécurité fonctionnelle et de cybersécurité.

Parasoft associe les tests assistés par l'IA à des technologies de vérification éprouvées, telles que l'analyse statique, les tests unitaires, la couverture de code, la traçabilité des exigences et les rapports de conformité, afin d'aider les équipes à améliorer leur productivité tout en maintenant la rigueur nécessaire à la certification. Ce webinaire explique comment les organisations d'ingénierie peuvent intégrer l'IA en toute confiance sans compromettre la qualité, la sécurité ni la conformité de leurs logiciels.

Bringing All all together

GoogleTest est un excellent framework de tests unitaires, mais les logiciels critiques pour la sûreté et la sécurité exigent bien plus que de simples tests unitaires. Les entreprises ont également besoin d'une couverture structurelle du code, d'une traçabilité des exigences, de preuves de conformité, de rapports prêts pour l'audit et d'un accompagnement pour la qualification des outils.

Parasoft C/C++test CT étend les flux de travail GoogleTest existants grâce à la certification TÜV SÜD pour le packaging GoogleTest, la couverture structurelle du code, la traçabilité des exigences, les rapports de conformité, les tests assistés par IA et la prise en charge des principales normes de sécurité fonctionnelle et de cybersécurité. Il en résulte une solution de vérification moderne et prête pour la certification, qui aide les équipes à améliorer leur productivité, à simplifier la conformité et à fournir des logiciels plus sûrs et plus sécurisés.