Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »
ÉTUDE DE CAS
Atteint une couverture de code de plus de 70 % grâce à la génération et à l'exécution automatisées de tests.
Réduction de la complexité du code cyclomatique à moins de 15.
Qualification simplifiée de l'outil de test Parasoft C/C++ pour répondre aux exigences d'analyse statique, de test unitaire et de couverture de code.
Temps de lecture : 7 minutes
Smiths Medical est l'un des principaux fabricants mondiaux de dispositifs médicaux spécialisés qui fournit des solutions innovantes et vitales aux marchés mondiaux de la santé. La société est spécialisée dans la thérapie par perfusion, l'accès vasculaire et les soins vitaux. Ses produits se trouvent dans les environnements hospitaliers, d'urgence, à domicile et de soins spécialisés et sont utilisés pendant les soins critiques et intensifs, la chirurgie, les soins postopératoires et pour le soutien à la gestion des maladies chroniques.
Il est impératif de fournir des logiciels sûrs et de haute qualité pour leurs dispositifs médicaux. Pour cette raison, Smiths Medical construit ses dispositifs médicaux critiques pour la sécurité avec un processus d'ingénierie rigoureux où les tests logiciels jouent un rôle essentiel pour la vérification et la validation.
Visionnez un aperçu de la présentation de Smiths Medical expliquant comment ils ont fait évoluer leurs tests logiciels vers le développement piloté par les tests, atteignant une couverture de code de plus de 70 %.
Le développement de logiciels pour dispositifs médicaux est difficile en raison des exigences de sûreté et de sécurité. La vérification et la validation du logiciel jouent un rôle important pour prouver que la fonctionnalité prévue a été mise en œuvre et que la sécurité et la sûreté ont été intégrées aux produits.
L'automatisation des tests est un fondement important de l'approche de test de Smiths Medical. Les tentatives précédentes d'adoption d'outils n'ont pas été pleinement couronnées de succès. L'équipe de développement recherchait une solution pour soutenir l'ensemble de leurs efforts de test avec une nouvelle approche et un nouvel état d'esprit de développement piloté par les tests (TDD).
La pyramide des tests
Voici quelques-uns des défis auxquels l'équipe a été confrontée.
L'équipe de développement logiciel avait déjà testé d'autres outils d'automatisation des tests, mais sans succès pour diverses raisons. L'automatisation des tests étant essentielle pour la transition vers le développement piloté par les tests (TDD), l'équipe a mené une évaluation approfondie afin de trouver une solution adaptée à ses besoins.
Trouver la solution idéale pour leurs besoins et leurs processus. L'équipe de développement a mené une évaluation approfondie des solutions commerciales et open source afin de garantir le succès de sa prochaine tentative d'automatisation des tests. Elle avait besoin d'outils répondant à ses exigences techniques et d'une solution s'intégrant à ses processus. L'équipe recherchait des solutions bénéficiant d'une forte présence sur le marché et d'une prise en main rapide, tout en évitant la dépendance vis-à-vis d'un fournisseur unique.
Transition de l'équipe logicielle vers de nouveaux outils et le TDD. Smiths Medical s'est fixé pour objectif de faire adopter le TDD à l'ensemble de son équipe logicielle afin d'intégrer les tests à son processus de développement et à son pipeline logiciel. Pour y parvenir, l'automatisation des tests et les outils ne suffisaient pas. Un changement de mentalité était nécessaire. L'entreprise recherchait une évolution de sa culture de développement afin d'améliorer la qualité, la sécurité et la sûreté de ses produits grâce à des tests plus complets et plus performants, sans impacter les délais de livraison ni les budgets.
La recherche approfondie d'une solution de test intégrée répondant aux exigences de Smiths Medical comprenait des évaluations d'options commerciales et open source.
L'évaluation des outils comprenait sept fournisseurs commerciaux et une sélection d'outils open source. Les exigences de Smiths Medical comprenaient la prise en charge des tests de bas en haut de la pyramide des tests :
| Fonctionnalité | Concurrent A | Parasoft | Open source |
|---|---|---|---|
| Test Manager | Y | Y | Y |
| Test unitaire | Y | Y | Y |
| Bout d'essai / maquette | Y | Y | Y |
| Test d'intégration | Y | Y | Y |
| Couverture de code | Y | Y | - |
| Analyse statique | Y | Y | - |
| CCM | Y | Y | - |
| Génération de rapports | Y | Y | - |
| Intégration CI | Y | Y | Y |
| Intégration IDE | - | Y | Y |
| Exécuter sur la cible | Y | Y | - |
| Prise en charge de Linux | - | Y | Y |
| Kit de qualification | - | Y | - |
Parasoft a répondu à ces exigences et a été sélectionné comme fournisseur pour aider l'équipe à atteindre ses objectifs de test.
« L'un des grands domaines qui représentaient un défi dans le passé était la courbe d'apprentissage des produits. Les outils que nous avions utilisés dans le passé étaient trop compliqués pour répondre aux besoins de l'équipe », a déclaré Bill Schiller, architecte logiciel principal senior chez Smiths Medical.
« Un autre critère important pour nous est la présence sur le marché. Nous voulons un partenaire qui va rester avec nous sur le long terme. Cependant, le côté opposé de cette pièce est un verrouillage du fournisseur. L'une des choses que nous contestons en tant que décideurs dans notre organisation est « quelles sont les alternatives ? » Allons-nous être enfermés dans cette solution pour toujours ? Nous avons pensé que c'était moins un problème pour nous avec Parasoft.
Smiths Medical a reconnu qu'ils devaient aller plus loin que simplement adopter l'automatisation des tests unitaires. Leur plan était de déplacer l'équipe vers le développement piloté par les tests où la conception/le refactoring et les tests sont étroitement imbriqués. Les tests sont écrits comme une description de la fonctionnalité de l'unité attendue et le code est écrit et factorisé pour s'assurer que les tests réussissent.
Le cycle TDD
Bien que le passage à TDD puisse entraîner des coûts initiaux, il existe des avantages significatifs en aval en termes de taux de défauts inférieurs, notamment :
Un aspect essentiel du passage au TDD a été l'automatisation des tests et les outils qui la soutiennent. Parasoft C/C++test contribue à valoriser les tests en améliorant leur relation et leur traçabilité par rapport aux exigences, à la couverture de code, aux éléments de travail, aux builds et autres artefacts. C/C++test facilite également le développement des tests unitaires grâce à la création et à l'exécution automatisées des tests, ainsi qu'à une maintenance considérablement simplifiée.
En raison de la nature de leurs produits, Smiths Medical avait besoin d'une solution de test prenant en charge son environnement de développement intégré basé sur ARM. Ils ont pu générer et exécuter des tests sur leur environnement hôte, un simulateur cible et un périphérique cible réel à l'aide de Parasoft C/C++test.
Environnement de test Smiths Medical avec plateformes hôte, émulateur et cible
Un aspect essentiel de leur solution était la capacité de s'intégrer à leur environnement de développement et à leur pipeline CI ainsi qu'à la chaîne d'outils intégrée. De plus, leur processus de développement nécessitait la collecte de résultats de test et de métriques telles que la couverture de code directement à partir de l'appareil cible.
Le développement de logiciels critiques pour la sécurité, comme celui réalisé chez Smiths Medical, doit garantir des tests approfondis. Le code qui n'est pas testé ne peut pas être validé ou confirmé pour des raisons de sûreté ou de sécurité.
De plus, les exigences doivent être validées avec des tests et une traçabilité est nécessaire entre les exigences, le code et les tests. La collecte du code et la couverture des tests (sur l'hôte et la cible) étaient essentielles au processus de développement logiciel de l'équipe, ainsi que des rapports de haut niveau avec analyse et tendances.
Après avoir envisagé une variété d'options de support d'outils pour leur évolution vers TDD, y compris des solutions open source, Smiths Medical a choisi Parasoft C/C++test pour de nombreuses raisons.
Une prise en charge complète des exigences. Les exigences techniques et commerciales sont essentielles lors de l'évaluation et du choix de l'outil approprié. Pour Smiths Medical, une prise en main rapide, une présence du fournisseur sur le marché, des coûts d'adoption globalement réduits et une intégration fluide à leur pipeline CI étaient des critères primordiaux. Parasoft C/C++test répondait à tous ces critères.
Réduction des coûts de maintenance par rapport aux solutions open source. Bien que fervent défenseur de l'open source, Smiths Medical a constaté qu'adopter une solution entièrement open source impliquait de consacrer des ressources à la formation, à la maintenance et à l'utilisation des outils. On estime que cela représente au moins 25 % de la charge de travail d'un développeur à temps plein.
Qualification des outils pour les applications critiques. Un critère souvent négligé pour les outils de développement logiciel est leur qualification, et notamment la disponibilité de kits de qualification. Les kits de qualification d'outils 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. Ces kits réduisent les risques d'erreur humaine et accélèrent le processus de qualification.
L'automatisation des tests, avec une prise en charge flexible des tests sur système hôte et cible, était essentielle pour l'environnement de test de Smiths Medical. La capacité d'exécution, d'analyse et de couverture de code sur les systèmes hôte et cible était cruciale. Compte tenu de la nature de leur développement produit, la validation sur les systèmes hôte et cible était nécessaire ; Parasoft C/C++test s'est donc intégré à leur environnement de test existant et à leur pipeline CI/CD.
Un système de reporting centralisé permet de suivre les progrès et la réussite. Mesurer le succès est essentiel dans tout projet, et Smiths Medical a utilisé Parasoft DTP pour suivre ses progrès sur des indicateurs tels que la complexité et la couverture du code. Leur approche consistait à privilégier la tendance positive plutôt que la valeur intrinsèque de l'indicateur.
Smiths Medical a fait évoluer ses tests vers un développement piloté par les tests et a constaté de nombreux résultats positifs de son acquisition et de son adoption du test Parasoft C/C++ pour son développement de logiciels critiques pour la sécurité, notamment :
Formation d'équipe et intégration des outils réussies. Chez Smiths Medical, l'un des objectifs était de faire évoluer les mentalités des développeurs. Cela a nécessité une formation (notamment sur les produits, dispensée par Parasoft) et un apprentissage progressif des outils et des nouveaux processus. L'équipe a adopté une approche par étapes. Parasoft a assuré la formation initiale et le conseil sur les outils et les nouveaux processus. Une seconde phase de formation a eu lieu après que l'équipe de développement de Smiths Medical a intégré les outils à son pipeline d'intégration continue et à ses activités de développement quotidiennes.
Ils ont réussi à adopter TDD et à intégrer l'automatisation des tests dans leur processus de développement. Le passage à l'automatisation et au TDD ont permis d'améliorer l'efficacité et les résultats des tests.
Amélioration de la stabilité des tests . Les tests unitaires sont du code. Comme tout code, ils sont sujets aux erreurs et aux bogues et nécessitent une maintenance. Smiths Medical rencontrait des difficultés avec des échecs de tests qui exigeaient un temps de débogage considérable pour déterminer si l'unité testée était défectueuse ou si le problème venait du test lui-même. Après être passés au TDD et à l'automatisation avec Parasoft C/C++test, la stabilité de leurs tests a considérablement augmenté. La maintenance des tests est devenue plus simple et les échecs de tests ont globalement diminué.
Amélioration de la couverture de code et réduction de la complexité du code. L'augmentation de la couverture de code était cruciale pour Smiths Medical en raison de l'importance de la sécurité pour ses produits. L'entreprise devait démontrer sa rigueur dans les tests de ses logiciels, et une couverture de code adéquate en faisait partie. À cette fin, elle a utilisé Parasoft C/C++test pour instrumenter le code et mesurer sa couverture, et Parasoft DTP pour suivre les indicateurs de couverture et de complexité du code. Dans les deux cas, les résultats se sont améliorés au fil du temps. La couverture de code dépasse désormais 70 %. La complexité du code est passée sous la barre des 15, selon les mesures de complexité cyclomatique de McCabe. De fait, l'augmentation de la couverture est devenue plus facile que jamais grâce à l'automatisation de la génération, de l'exécution et de la collecte des résultats des tests.
Le ratio de défauts ouverts par rapport aux défauts fermés tend vers zéro. Smiths Medical a constaté une augmentation du nombre de tests grâce aux efforts déployés pour améliorer la couverture du code, directement liée à leurs nouveaux processus et à l'automatisation. Cependant, au lieu d'augmenter parallèlement au nombre de tests, le nombre d'échecs de tests diminuait. De plus, le ratio de défauts ouverts par rapport aux défauts fermés tendait vers zéro. Cela signifiait que la qualité des cas de test s'améliorait en termes de clarté et de définition précise des résultats attendus. Le nombre de tests effectués et le nombre de tests réussis augmentaient. On observait également une réduction du travail manuel nécessaire à la correction des défauts ou des tests eux-mêmes.
Tendance des résultats des tests de Smiths Medical au fil du temps. Le nombre total de tests augmente mais le taux d'échecs diminue.
Qualification simplifiée des outils. Les kits de qualification de Parasoft couvrent l'ensemble des fonctionnalités de Parasoft C/C++test et permettent de répondre simultanément aux exigences d'analyse statique, de tests unitaires et de couverture de code pour les logiciels critiques. Sans cela, Smiths Medical devrait qualifier individuellement plusieurs outils de sa chaîne de production, ce qui engendrerait un important gaspillage de ressources.
Découvrez comment votre équipe de développement de logiciels embarqués peut rationaliser la qualification des outils pour répondre aux exigences en matière d'analyse statique, de tests unitaires et de couverture de code.
Secteur : Dispositifs médicaux
Taille de l'entreprise : 10 000
Lieu : San Clemente, Californie
Solution : Test C/C++