Les solutions VectorCAST dans l'industrie médicale
Maintenir la santé des applications logicielles dans les équipements médicaux
La médecine moderne fait de plus en plus appel à des équipements électroniques afin d'augmenter la qualité de vie et les soins prodigués aux patients. Ces systèmes remplissent des fonctions vitales: moniteurs de signes vitaux, pompes diverses, pacemakers et défibrillateurs contiennent tous une bonne dose de logiciel embarqué. Tous ces équipements se doivent d'être parfaitement opérationnels et fiables en tout temps, sinon la santé des patients peut en être affectée. Le test logiciel est un élément critique à la bonne performance de ces produits.
Comment VectorCAST peut vous aider
Afin d'assurer une opération fiable et stable, vous devez démontrer que toutes les parties du code furent effectivement testées. Durant la phase de test du système, VectorCAST/Cover vous permets d'enregistrer aisément les parties du code qui furent stimulées durant les opérations du logiciel. VectorCAST/Cover supporte différents niveaux de couverture logicielle (basé sur les instructions, les branches ou le test des conditions et décisions modifiées, ou MCDC). Le module VectorCAST/MCDC fut d'abord développé pour les besoins de l'industrie avionique, et est maintenant utilisé par plusieurs compagnies médicales de renom comme standard pour la couverture structurelle lors des tests.
Toutefois, il est plus que probable que le taux de couverture atteint lors des tests du système en son entièreté soit en-dessous de 100%. En fait, une valeur se situant entre 60% et 70% est probable. Ceci est dû au fait que les logiciels au coeur des équipements médicaux incluent en général plusieurs sections de code visant à contrôler des conditions limites. Le code qui permet à l'application de gérer ces cas d'exception en toute sécurité est souvent impossible à stimuler durant le test de l'application entière ou du produit. La solution à ce problème est d'utiliser VectorCAST/C++ afin d'exécuter des tests unitaires sur les fonctions ou groupes de fonctions qui contiennent du code qui ne fut pas exécuté durant les tests système.
Répondre aux exigences des autorités gouvernementales
Les outils VectorCAST ont été utilisés par nombre de clients qui doivent démontrer la qualité de leur logiciel aux autorités gouvernementales, incluant la Food and Drug Administration (FDA) américaine. Nos rapports de test et de couverture logicielle peuvent être exportés sous forme HTML ou texte, ce qui rend leur intégration à la documentation de vos produits un jeu d'enfant. Peu importe que votre produit soit de classe I, II ou III, les outils VectorCAST vous fournissent un moyen fiable de procéder à tous vos tests - et, le cas échéant, à les ré-exécuter aisément - durant le développement d'appareils médicaux.


Voici les recommandations de la FDA au sujet des tests à être effectués par les ingénieurs logiciels. Ils ont été publiés dans le document intitulé General Principles of Software Validation: Final Guidance for Industry and FDA Staff document, à la section 5.2.5 (citations en italique). Nous illustrons également comment les différents outils de test VectorCAST vous permettent de satisfaire ces diverses exigences.
5.2.5 Testing by the Software Developer
...Le test logiciel requiert que le logiciel soit exécuté dans des conditions connues avec des intrants définis et des résultats documentés qui peuvent par la suite être comparés aux prédictions établies.
...Un élément essentiel d'un jeu de test logiciel est le résultat prédit. Ceci est l'élément-clé qui permit l'évaluation objective des résultats obtenus.
...Le test du code est également connu sous le vocable de test structurel ou de test "boîte blanche". Il identifie les jeux de test basés sur la connaissance du code, des spécifications détaillées du design, et de d'autres documents de développement. Le test structurel est surtout performé à l'aide de tests unitaires (modulaires), mais peut être étendu à d'autres niveaux de test logiciel.
...Software testing entails running software products under known conditions with defined inputs and documented
outcomes that can be compared to their predefined expectations.
...An essential element of a software test case is the expected result. It is the key detail that permits objective
evaluation of the actual test result.
...Code-based testing is also known as structural testing or "white-box" testing. It identifies test cases based
on knowledge obtained from the source code, detailed designspecification, and other development documents. Structural
testing is accomplished primarily with unit (module) level testing, but can be extended to other levels of software testing.
Spécification des données entrantes et des résultats prédits sous VectorCAST
Métriques indiquant le succès ou l'échec de différents jeux de test
Couverture logicielle
...Le niveau de test structurel peut être évalué en utilisant des métriques qui sont conçues pour calculer quel pourcentage de la structure logicielle a été évaluée durant le test structurel. Ces métriques sont d'ordinaire appelées la "couverture" du code et sont une mesure de la complétude du test en fonction des critères établis. Le taux de couverture structurelle devrait être établi en fonction du risque posé par le logiciel.
...The level of structural testing can be evaluated using metrics that are designed to show what percentage of the software
structure has been evaluated during structural testing. These metrics are typically referred to as "coverage" and are a measure
of completeness with respect to test selection criteria. The amount of structural coverage should be commensurate with the level
of risk posed by the software.
Un rapport de couverture du code VectorCAST
Un rapport de couverture des chemins du code VectorCAST
Test de non-régression
...L'analyse et le test de non-régression sont utilisés afin de s'assurer qu'un changement (au code) n'a pas créé de problèmes autre part dans le logiciel. Le test de non-régression consiste à ré-exécuter les jeux de tests qui exécutaient jusque là correctement et à comparer le résultat présent au résultat précédent afin de déterminer s'il y a eu des effets non-désirés provoqués par ledit changement.
...Regression analysis and testing are employed to provide assurance that a change has not created problems elsewhere in the
software product. Regression testing is the rerunning of test cases that a program has previously executed correctly and comparing
the current result to the previous result in order to detect unintended effects of a software change.
Exécution automatique de tests de non-régression sous VectorCAST/Manage
...Afin de permettre un examen approfondi et rigoureux d'un produit logiciel, le test durant le développement est organisé en phases. Par exemple, le test d'un produit logiciel peut être organisé en des phases de test unitaire, d'intégration et système.
…In order to provide a thorough and rigorous examination of a software product, development testing is typically organized into
levels. As an example, a software product's testing can be organized into unit, integration, and system levels of testing.
Test de non-régression
...Les procédures, les données et les résultats des tests devraient être documentées de sorte qu'une décision objective sur leur succès ou leur échec puisse être prise. Elles devraient aussi se prêter à une revue et une prise de décision objective après que le test soit exécuté, et elles devraient pouvoir être utilisées dans tout test de non-régression subséquent. Les erreurs détectées durant le test devraient être dûment enregistrées, classifiées, revues et résolues avant la publication du logiciel. Les données des erreurs logicielles qui sont enregistrées et analysées durant le cycle de développement peuvent être utilisées afin de déterminer si le produit logiciel est adéquat pour une distribution commerciale.
...Test procedures, test data, and test results should be documented in a manner permitting objective pass/fail decisions
to be reached. They should also be suitable for review and objective decision making subsequent to running the test, and
they should be suitable for use in any subsequent regression testing. Errors detected during testing should be logged, classified,
reviewed, and resolved prior to release of the software. Software error data that is collected and analyzed during a development
life cycle may be used to determine the suitability of the software product for release for commercial distribution.
Traçabilité des exigences
...Les rapports de test devraient être congruents avec les exigences listées dans les plans de test correspondants.
...Test reports should comply with the requirements of the corresponding test plans.

Lien entre les exigences logicielles et les jeux de test
VectorCAST/Requirements Gateway permet le partage de données entre un outil de gestion des exigences logicielles et les outils de test VectorCAST, vous permettant ainsi de créer aisément des rapports qui démontrent que toutes les exigences ont des jeux de test qui les démontrent.
Validation d'outils de test commerciaux
...Des outils de test logiciel sont fréquemment utilisés afin de s'assurer que les tests effectués sur les produits logiciels sont consistants, complets et efficaces, de même que pour remplir les exigences établies par les activités de test planifiées. Ces outils peuvent être des outils développés à l'interne afin de faciliter le test unitaire (modulaire) et d'intégration subséquente (ex. pilotes et bouchons) ou des outils logiciels vendus commercialement. De tels outils devraient répondre à des normes de qualité qui ne sont pas moindres que celles auxquelles le produit logiciel qui est testé doit lui-même répondre. Une documentation appropriée démontrant la validation de ces outils de test pour leur utilisation désirée devrait être maintenue.
...Software testing tools are frequently used to ensure consistency, thoroughness, and efficiency
in the testing of such software products and to fulfill the requirements of the planned testing
activities. These tools may include supporting software built in-house to facilitate unit (module)
testing and subsequent integration testing (e.g., drivers and stubs) as well as commercial software
testing tools. Such tools should have a degree of quality no less than the software product they are
used to develop. Appropriate documentation providing evidence of the validation of these software tools
for their intended use should be maintained.
VectorCAST peut fournir des documents de qualification complets qui démontrent que l'outil est adéquat afin de répondre aux préoccupations légitimes des autorités compétentes. Ces documents incluent le document sur les exigences opérationnelles de l'outil (en anglais, Tool Operational Requirements, ou TOR) et les données de qualification de l'outil (en anglais, Tool Qualification Data, ou TQD). Le document TOR décrit les exigences que doit remplir l'outil VectorCAST, et le TDQ décrit les tests qui furent effectués pour démontrer que l'outil répond bel et bien à ces exigences, de même que les résultats desdits tests. Ces documents sont créés pour chaque projet de développement, et les tests sont exécutés sur le même compilateur, processeur cible et environnement d'exécution que celui utilisé par le client.
Documents de qualification VectorCAST
Quelques clients
- Abbott Labs/Medisense
- Acist Medical
- Boston Scientific
- Covidien
- Enteromedics
- Hoana Medical
- Hospira Medical
- Impact Instrumentation
- Medtronic
- Philips Medical-Heartstream
