Optez pour une voie plus rapide et plus intelligente vers l'automatisation des tests C/C++ pilotée par l'IA. Découvrez comment >>
Livre blanc
Vous vous demandez ce qu'il y a à l'intérieur ? Découvrez un aperçu ci-dessous.
Les fabricants de dispositifs médicaux doivent démontrer une conformité constante aux exigences de la FDA et aux attentes des clients tout au long du cycle de vie du développement du produit, de la conception à la mise en service. La norme ISO 13485 définit les meilleures pratiques organisationnelles en matière d'assurance qualité, tandis que la norme IEC 62304 fournit un cadre pour le développement sécurisé des logiciels destinés aux dispositifs médicaux.
Les dispositifs médicaux modernes sont confrontés à une complexité logicielle croissante et à une forte concurrence de la part des entreprises d'électronique grand public qui investissent le marché de la santé. Les pratiques CI/CD et DevOps aident les fabricants à réduire les coûts et à accélérer la mise sur le marché tout en maintenant la qualité.
L'automatisation des tests logiciels est essentielle : l'intégration de l'analyse statique, des tests unitaires et de la couverture de code dans le pipeline CI améliore considérablement l'efficacité et la qualité des logiciels.
L'automatisation du processus de compilation et de déploiement est essentielle à une véritable intégration continue, car les méthodes manuelles sont trop lentes et fastidieuses. Si l'intégration continue repose sur un dépôt de code unique et des compilations automatisées pour résoudre rapidement les problèmes d'intégration, un goulot d'étranglement majeur se situe au niveau des tests.
Les tests sont chronophages et difficiles à définir, un problème aggravé par les méthodes manuelles. Bien que l'automatisation des tests soit essentielle, le livre blanc soutient que leur simple exécution est insuffisante, un point qu'il promet d'approfondir.
Dans le développement de logiciels pour dispositifs médicaux, l'adoption de l'intégration continue et de la livraison continue (CI/CD) se heurte à des défis spécifiques, différents de ceux rencontrés lors du développement d'applications classiques. Ces défis incluent des exigences strictes en matière de sécurité et de fiabilité, des cycles de vie des produits s'étendant sur plusieurs décennies et des contraintes liées au matériel embarqué. Plus précisément, les tests automatisés sont complexes en raison de la difficulté à les exécuter et à les observer sur les dispositifs cibles, ainsi que de la nécessité de disposer de données de traçabilité et de conformité.
Des solutions comme Parasoft C/C++test lèvent ces obstacles en proposant un environnement de test optimisé, peu gourmand en ressources, avec une personnalisation du code source et une intégration aux compilateurs embarqués et aux environnements de développement intégrés (IDE). Ceci permet des tests de régression automatisés, la vérification du comportement et l'exécution à distance, offrant ainsi aux équipes de développement de dispositifs médicaux la possibilité de bénéficier des avantages de l'automatisation observés dans d'autres secteurs, tout en respectant des normes réglementaires rigoureuses.
Logiciel de test pour dispositifs médicaux Les tests de régression, notamment ceux requis après chaque modification, sont chronophages. Leur automatisation permet de réaliser d'importantes économies de temps et de coûts.
Parasoft C / C ++test fournit un banc d'essai optimisé avec une empreinte binaire minimale, livré sous forme de code source personnalisable pour des modifications spécifiques à la plateforme.
La solution propose des intégrations dédiées avec les compilateurs embarqués (GNU GCC, IAR, ARM, Intel, Keil, Wind River, Green Hills) et les environnements de développement intégrés (IDE) standards du marché (Eclipse, VS Code, Green Hills Multi, Wind River Workbench, IAR EW, ARM MDK). Elle permet la création de référentiels de tests de régression qui vérifient automatiquement tous les résultats et exécutent les tests automatiquement afin de détecter les modifications de fonctionnalités.
Le déploiement conteneurisé devient la norme pour les équipes de développement de dispositifs médicaux qui gèrent des chaînes d'outils complexes. Ces équipes rencontrent des difficultés pour synchroniser les mises à jour, appliquer les correctifs de sécurité, garantir la cohérence de la chaîne d'outils, gérer les environnements de versionnage des produits certifiés, répondre aux exigences d'audit et intégrer les développeurs.
Parasoft C/C++test Professional se configure facilement pour fonctionner avec les chaînes d'outils de compilation et les environnements d'exécution déployés dans des conteneurs. Les outils se déploient dans une seule archive compressée afin de simplifier l'initialisation des conteneurs, et prennent en charge les conteneurs Linux et Docker.
Cet outil en ligne de commande s'intègre aux déploiements conteneurisés et inclut un compilateur et un système de construction pour l'intégration continue et la livraison continue (CI/CD) ainsi que pour les analyses locales. Il accède aux compilateurs conteneurisés (GNU GCC) et aux environnements d'exécution via des conteneurs Docker distincts pour les outils de compilation et de construction, et pour l'environnement d'exécution.
Les bogues sont détectés plus tôt, ce qui facilite et réduit considérablement les coûts de correction. La détection précoce des défauts dans le cycle de développement diminue les coûts de façon exponentielle par rapport à une détection tardive.
Les nouvelles fonctionnalités peuvent être testées afin d'évaluer leur impact sur le code existant. De nouveaux tests sont ajoutés à la suite de tests de régression après chaque itération, permettant ainsi une validation complète.
Le produit s'améliore progressivement grâce à l'ajout et au test de nouvelles fonctionnalités, tout en corrigeant les bugs. La qualité et la sécurité sont intégrées dès la conception, et non ajoutées a posteriori.
Les tests et le déploiement continus sont des éléments essentiels du processus de développement continu. L'intégration seule est inefficace sans ces composantes de tests et de déploiement continus.
Construction shift-gauche Cette approche intègre les tests de qualité, de sûreté et de sécurité dès les premières étapes du développement afin de corriger les problèmes lorsqu'ils sont moins coûteux et moins risqués. Cela implique d'intégrer la qualité dès la conception. Voici quelques recommandations clés pour la mettre en œuvre dans un environnement CI/CD : Amélioration de l'automatisation des tests, en augmentant la couverture du code, en automatisant la traçabilité bidirectionnelle et en surveillant tous les commits.
Bien que cruciale pour la qualité et la sécurité de l'intégration et du déploiement continus (CI/CD), la principale difficulté de l'automatisation des tests réside dans le choix des éléments à tester, car des tests exhaustifs sont impossibles à maintenir. Pour accélérer le pipeline, les équipes doivent automatiser stratégiquement uniquement les tests qui maximisent la couverture du code et vérifient les modifications, permettant ainsi des tests continus et efficaces.
Couverture de code Ce dispositif mesure la quantité de code de production exécutée lors des tests automatisés. Selon la classification, le logiciel du dispositif médical pourrait nécessiter des métriques d'instructions, de branches et de couverture MC/DC (conditions/décisions modifiées) pour garantir une validation complète.
L'outil Coverage Advisor de Parasoft utilise une analyse statique de code avancée (analyse des données et du flux de contrôle) pour identifier les valeurs des paramètres d'entrée nécessaires à l'exécution de lignes de code non couvertes. Il calcule les préconditions des paramètres de fonction, des variables globales et des appels de fonctions externes, et propose des solutions pour les lignes sélectionnées par l'utilisateur. Ces valeurs génèrent de nouveaux cas de tests unitaires, ce qui améliore la productivité des développeurs travaillant sur ces tests et contribue à une meilleure couverture.
Traçabilité des exigences La traçabilité permet de décrire et de suivre le cycle de vie d'une exigence, aussi bien en amont qu'en aval, tout au long du développement, de la spécification, du déploiement et des améliorations continues. Elle assure un suivi précis de ce qui est développé, garantissant ainsi que le logiciel fonctionne comme prévu et que vous ne développez que ce qui est nécessaire.
De nombreuses exigences logicielles pour dispositifs médicaux découlent d'analyses de sécurité et d'évaluations des risques. Le système doit remplir ses fonctions prévues et atténuer les risques afin de réduire les possibilités de blessure. La documentation et la preuve de la mise en œuvre et des tests complets de ces fonctions de sécurité nécessitent une traçabilité.
Maintenir la traçabilité à grande échelle exige une automatisation, particulièrement importante dans les pipelines CI/CD, car une traçabilité manuelle ralentirait chaque itération. Les outils de test logiciel intégrés complètent ce processus. verification ET VALIDATION en assurant une traçabilité bidirectionnelle automatisée des cas de test exécutables, y compris la traçabilité des résultats de réussite/échec jusqu'au code source implémentant les exigences.
L'assurance qualité continue dans les pipelines CI/CD exige la surveillance de toutes les entrées du processus de compilation. Lorsque les développeurs valident du code après y avoir apporté des modifications, cela déclenche le pipeline CI, entraînant des cycles de compilation, de génération et de tests. Si le code ne respecte pas les normes de codage ou si les tests échouent, le code/la branche concerné(e) n'est pas fusionné(e) avec la branche principale, garantissant ainsi la qualité du code en permanence pour cette dernière.
Méthodologies DevSecOps Le DevSecOps partage l'automatisation et les processus continus avec les équipes DevOps afin d'établir des cycles de développement collaboratifs. Il intègre la sécurité dès la conception, ce qui est crucial pour les logiciels embarqués critiques en matière de sûreté et de sécurité.
Les initiatives DevSecOps modernes exigent une évaluation instantanée et continue des risques associés aux versions candidates. Les tests continus au sein des pipelines CI/CD fournissent un retour d'information automatisé, discret et immédiat sur les risques de sécurité, permettant aux équipes de développement de respecter les exigences de sécurité et aux responsables de prendre des décisions éclairées afin d'optimiser les versions candidates.
L'intégration et la livraison continues jouent un rôle crucial dans le développement des dispositifs médicaux. La migration d'un processus en cascade vers l'intégration et la livraison continues (CI/CD) développement agile L'intégration continue et la livraison continue (CI/CD) permettent de réduire les risques et d'améliorer la qualité et la sécurité. La sécurité est une priorité absolue pour les développeurs de dispositifs médicaux, et la CI/CD favorise le DevSecOps en intégrant des exigences et des contrôles de sécurité à toutes les étapes du processus.
Les conteneurs s'intègrent parfaitement à l'intégration continue et au déploiement continu (CI/CD), permettant un déploiement rapide et une portabilité optimale entre différents environnements hôtes, avec gestion des versions et contrôle centralisé. Les environnements de développement conteneurisés sont essentiels pour un développement sécurisé dans les pipelines DevSecOps, car ils permettent de fournir un environnement d'application reproductible doté de contrôles de sécurité intégrés.
Les tests représentent de loin l'activité la plus gourmande en temps et en ressources dans le développement des dispositifs médicaux. Les tests continus sont un élément essentiel d'un pipeline CI/CD performant et permettent d'intégrer les tests plus tôt dans le cycle de vie. application appropriée de l'automatisation En se concentrant sur les zones à haut risque, il est possible de rationaliser les tests afin qu'ils constituent moins un frein aux processus continus. Les tests continus nécessitent des outils d'automatisation et d'optimisation.outils qui permettent une couverture de code plus large, une exécution intelligente des tests et une traçabilité bidirectionnelle.
Prêt à plonger plus profondément ?