Vereinfachen Sie Compliance-Workflows mit dem neuen C/C++-Test 2024.2 und KI-gesteuerter Automatisierung | Registrierung

Lesezeit: 8 Minuten

Übersicht

Smiths Medical ist ein weltweit führender Hersteller von medizinischen Spezialgeräten, der innovative und lebensrettende Lösungen für die weltweiten Gesundheitsmärkte bietet. Das Unternehmen ist spezialisiert auf Infusionstherapie, Gefäßzugang und Vitalversorgung. Seine Produkte finden sich in Krankenhäusern, Notfall-, Heim- und Spezialpflegeumgebungen und werden während der Intensiv- und Intensivpflege, bei Operationen, der postoperativen Versorgung und zur Unterstützung bei der Behandlung chronischer Krankheiten eingesetzt.

Die Bereitstellung sicherer und qualitativ hochwertiger Software für ihre medizinischen Geräte ist unerlässlich. Aus diesem Grund baut Smiths Medical seine sicherheitskritischen Medizinprodukte mit einem strengen Entwicklungsprozess, bei dem Softwaretests eine entscheidende Rolle für die Verifizierung und Validierung spielen.

Sehen Sie sich eine Vorschau der Präsentation von Smiths Medical auf dem Embedded Software Testing & Compliance Summit 2021 an. Erfahren Sie, wie sie ihre Softwaretests zur testgetriebenen Entwicklung weiterentwickelt haben, um eine Codeabdeckung von mehr als 70 % zu erreichen.

VOLLSTÄNDIGE PRÄSENTATION HIER VERFÜGBAR >>

Die Herausforderungen

Die Entwicklung von Software für Medizinprodukte ist aufgrund der Sicherheitsanforderungen schwierig. Softwareverifikation und -validierung spielen eine wichtige Rolle, um nachzuweisen, dass die beabsichtigte Funktionalität implementiert wurde und Safety und Security in die Produkte integriert wurden.

Die Testautomatisierung ist eine wichtige Grundlage des Testansatzes von Smiths Medical. Frühere Versuche, Tools zu übernehmen, waren nicht vollständig erfolgreich. Das Entwicklungsteam suchte nach einer Lösung, um ihre gesamten Testanstrengungen mit einem neuen Ansatz und einer neuen Denkweise der testgetriebenen Entwicklung (TDD) zu unterstützen.

Die Testautomatisierungspyramide.
Die Testpyramide

Hier sind einige der Herausforderungen, mit denen das Team konfrontiert war.

Früherer Ausfall von Testautomatisierungstools. Das Softwareentwicklungsteam hat in der Vergangenheit andere Testautomatisierungstools ausprobiert. Sie sind aus verschiedenen Gründen gescheitert. Die Testautomatisierung war entscheidend für den Übergang zur testgetriebenen Entwicklung. Das Team suchte in einem umfangreichen Evaluierungsprozess nach einer Lösung, die seinen Anforderungen gerecht wurde.

Finden Sie die richtige Passform für ihre Bedürfnisse und Prozesse. Das Entwicklungsteam verfolgte eine umfassende Evaluierung von kommerziellen und Open-Source-Lösungen, um sicherzustellen, dass der nächste Versuch der Testautomatisierung erfolgreich war. Sie brauchten Werkzeuge, um ihre technischen Anforderungen zu erfüllen, und eine Lösung, die in ihren Prozess passte. Das Team wollte Lösungen mit einer beträchtlichen Marktpräsenz und einer angemessenen Lernkurve, aber keine Anbieterbindung.

Umstellung des Softwareteams auf neue Tools und TDD. Smiths Medical hat sich zum Ziel gesetzt, das gesamte Softwareteam zu TDD zu verlagern, um das Testen zu einem integralen Bestandteil des Entwicklungsprozesses und der Softwarepipeline zu machen. Um dies zu erreichen, brauchten sie mehr als Testautomatisierung und Tools. Sie brauchten eine andere Denkweise. Das Unternehmen suchte nach einer Änderung seiner Entwicklungskultur, die die Qualität, Sicherheit und Sicherheit seiner Produkte durch bessere und umfassendere Tests erhöhen würde, ohne Liefertermine und Budgets zu beeinträchtigen.

Die Vorgehensweise

Die umfassende Suche nach einer integrierten Testlösung zur Erfüllung der Anforderungen von Smiths Medical umfasste Bewertungen von kommerziellen und Open-Source-Optionen.

Auf der Suche nach einer Testautomatisierungslösung

Die Evaluierung der Tools umfasste sieben kommerzielle Anbieter und eine Auswahl an Open-Source-Tools. Die Anforderungen von Smiths Medical umfassten die Testunterstützung von unten nach oben in der Testpyramide:

Anbietervergleich von Smiths Medical

MerkmalWettbewerber AParasoftOpen Source
Test ManagerYYY
GerätetestYYY
Test Stub / MockYYY
IntegrationstestYYY
Code-AbdeckungYY-
Statische AnalyseYY-
CCMYY-
BerichterstellungYY-
CI-IntegrationYYY
IDE-Integration-YY
Auf Ziel ausführenYY-
Linux-Unterstützung-YY
Qualifizierungskit-Y-

Parasoft erfüllte diese Anforderungen und wurde als Anbieter ausgewählt, um das Team beim Erreichen seiner Testziele zu unterstützen.

„Einer der großen Herausforderungen in der Vergangenheit war die Produktlernkurve. Die Tools, die wir in der Vergangenheit verwendet hatten, waren zu kompliziert, um die Anforderungen des Teams zu erfüllen“, sagte Bill Schiller, Senior Principal Software Architect bei Smiths Medical.

„Ein weiteres großes Kriterium für uns ist die Marktpräsenz. Wir wollen einen Partner, der uns langfristig begleiten wird. Die Kehrseite dieser Medaille ist jedoch ein Vendor Lock-in. Eines der Dinge, die wir als Entscheidungsträger in unserer Organisation herausfordern, ist die Frage, welche Alternativen es gibt. Werden wir für immer in diese Lösung eingesperrt sein? Wir hatten das Gefühl, dass dies bei Parasoft für uns weniger ein Problem war.“

Weiterentwicklung zu TDD

Smiths Medical erkannte, dass sie weiter gehen mussten, als nur die Automatisierung von Unit-Tests einzuführen. Ihr Plan war, das Team auf testgetriebene Entwicklung umzustellen, bei der Design/Refactoring und Testing eng miteinander verwoben sind. Tests werden als Beschreibung der erwarteten Einheitenfunktionalität geschrieben, und Code wird geschrieben und berücksichtigt, um sicherzustellen, dass die Tests bestehen.

Bild des TDD-Zyklus.
Der TDD-Zyklus

Obwohl der Wechsel zu TDD einige Vorlaufkosten verursachen kann, ergeben sich nachgelagerte erhebliche Vorteile in Bezug auf niedrigere Fehlerquoten, darunter:

  • Eine schnelle Feedbackschleife für Entwickler.
  • Weniger Zeitaufwand für das Debuggen.
  • Erstellen von „solidem“ Code mit sauberen Schnittstellen.

Ein wichtiger Teil der Umstellung auf TDD war die Testautomatisierung und Tools, die diesen Prozess unterstützen. Parasoft C / C ++ test hilft, Tests in Bezug auf ihre Beziehung und Rückverfolgbarkeit zu Anforderungen, Codeabdeckung, Arbeitselementen, Builds und anderen Artefakten wertvoller zu machen. C/C++test erleichtert auch die Entwicklung von Komponententests durch automatisierte Testerstellung, -ausführung und eine viel einfachere Testwartung.

Ausführen von Host-, Simulator- und Zieltests

Aufgrund der Beschaffenheit ihrer Produkte benötigte Smiths Medical eine Testlösung, die seine ARM-basierte eingebettete Entwicklungsumgebung unterstützt. Sie konnten mit Parasoft C/C++test Tests auf ihrer Hostumgebung, dem Zielsimulator und einem realen Zielgerät generieren und ausführen.

Bild der Testumgebung von Smiths Medical mit Host-, Emulator- und Zielplattformen.
Testumgebung von Smiths Medical mit Host-, Emulator- und Zielplattformen

Ein kritischer Aspekt ihrer Lösung war die Fähigkeit, sich in ihre Entwicklungsumgebung und CI-Pipeline sowie in die eingebettete Toolkette zu integrieren. Darüber hinaus erforderte ihr Entwicklungsprozess das Sammeln von Testergebnissen und Metriken wie der Codeabdeckung direkt vom Zielgerät.

Erfassung von Codeabdeckung und Metriken

Sicherheitskritische Softwareentwicklung, wie sie bei Smiths Medical durchgeführt wird, muss gründliche Tests gewährleisten. Nicht getesteter Code kann aus Sicherheitsgründen nicht validiert oder bestätigt werden.

Darüber hinaus müssen Anforderungen mit Tests validiert werden, und es ist eine Rückverfolgbarkeit zwischen Anforderungen, Code und Tests erforderlich. Die Erfassung von Code und Testabdeckung (auf Host und Ziel) war für den Softwareentwicklungsprozess des Teams zusammen mit hochrangigen Berichten mit Analysen und Trends von entscheidender Bedeutung.

Die Vorteile der Lösung

Smiths Medical entschied sich aus vielen Gründen für Parasoft C/C++test.

Umfassende Unterstützung für Anforderungen. Bei der Bewertung und Auswahl des richtigen Tools sind technische und geschäftliche Anforderungen wichtig. Für Smiths Medical standen eine geringe Lernkurve, die Marktpräsenz der Anbieter, insgesamt reduzierte Einführungskosten und die nahtlose Integration in ihre CI-Pipeline ganz oben auf der Liste. Parasoft C/C++test hat alle Kästchen angekreuzt.

Reduzierte Wartungskosten im Vergleich zu Open-Source-Lösungen. Smiths Medical war zwar starke Befürworter von Open Source, erkannte jedoch, dass die Einführung einer vollständigen Open-Source-Lösung die Bereitstellung von Ressourcen für Schulung, Wartung und Tool-Nutzung bedeutete. Das sind schätzungsweise mindestens 25 % der Arbeitsbelastung eines Vollzeitentwicklers auf laufender Basis.

Werkzeugqualifizierung für sicherheitskritische Anwendungen. Ein oft übersehenes Kriterium für Softwareentwicklungstools ist die Qualifizierung und die Verfügbarkeit von Qualifizierungskits. Tool Qualification Kits für Parasoft C/C++test automatisieren den Prozess der Erstellung der unterstützenden Dokumentation, die für die Tool-Qualifizierung von statischer Analyse, Komponententests und Abdeckungsanforderungen erforderlich ist. Diese Kits reduzieren das Risiko menschlicher Fehler und verkürzen den Zeitaufwand für die Durchführung der Werkzeugqualifizierung.

Testautomatisierung mit flexibler Unterstützung für host- und zielbasiertes Testen. Host- und zielbasierte Ausführungs-, Analyse- und Codeabdeckungsfunktionen waren für die Unterstützung der Testumgebung von Smiths Medical von entscheidender Bedeutung. Aufgrund der Art ihrer Produktentwicklung mussten sie auf Host- und Zielsystemen validieren und Parasoft C/C++test in ihre bestehende Testumgebung und CI/CD-Pipeline integrieren.

Zentralisierte Berichterstattung zur Überwachung von Fortschritt und Erfolg. Die Erfolgsmessung ist in jedem Projekt von entscheidender Bedeutung und Smiths Medical hat Parasoft DTP verwendet, um den Fortschritt bei Metriken wie Codekomplexität und Codeabdeckung zu verfolgen. Ihre Philosophie bestand darin, den Trend in positiver Richtung im Vergleich zum Wert der Metrik selbst zu überwachen.

Die Ergebnisse

Smiths Medical hat seine Tests zu testgetriebener Entwicklung weiterentwickelt und zahlreiche positive Ergebnisse aus der Übernahme und Einführung von Parasoft C/C++test für seine sicherheitskritische Softwareentwicklung erzielt, darunter:

Erfolgreiche Teamschulung und Toolintegration. Die Denkweise der Entwickler zu ändern, war Teil des Ziels von Smiths Medical. Es erforderte Schulungen (einschließlich Produktschulungen von Parasoft) und das Überwinden der Lernkurve sowohl für die Tools als auch für die neuen Prozesse. Das Team verfolgte einen schrittweisen Ansatz. Parasoft hat die Tools und neue Prozesse initial geschult und beraten. Eine weitere Schulungsphase folgte, nachdem das Entwicklungsteam von Smiths Medical die Tools in die CI-Pipeline und die tägliche Entwicklung einfließen ließ.

Es gelang ihnen, TDD zu übernehmen und die Testautomatisierung in ihren Entwicklungsprozess zu integrieren. Sowohl die Umstellung auf Automatisierung als auch TDD führten zu einer besseren Testeffizienz und besseren Ergebnissen.

Verbesserte Teststabilität. Unit-Tests sind Code. Wie jeder Code sind sie anfällig für Fehler und Bugs und müssen gewartet werden. Smiths Medical hatte mit Testfehlern zu kämpfen, die zu viel Debugging-Zeit erforderten, um herauszufinden, ob die zu testende Einheit defekt war oder ob es sich um den Test selbst handelte. Nach dem Wechsel zu TDD und Automatisierung mit Parasoft C/C++test erhöhte sich ihre Teststabilität dramatisch. Die Testwartung war einfacher und Testfehler wurden im Allgemeinen verringert.

Bessere Codeabdeckung und geringere Codekomplexität. Die Erhöhung der Codeabdeckung war für Smiths Medical aufgrund des Sicherheitsaspekts ihrer Produkte von entscheidender Bedeutung. Sie mussten beim Testen ihrer Software Sorgfalt walten lassen, und der Nachweis einer angemessenen Codeabdeckung gehört dazu. Zu diesem Zweck verwendeten sie Parasoft C/C++test, um den Code zu instrumentieren und ihre Codeabdeckung zu erfassen, und Parasoft DTP, um die Codeabdeckungs- und Codekomplexitätsmetriken zu verfolgen. In beiden Fällen haben sich die Trends im Laufe der Zeit verbessert. Die Codeabdeckung beträgt jetzt über 70 %. Die Codekomplexität sank auf unter 15, basierend auf den zyklomatischen Komplexitätsmessungen von McCabe. Tatsächlich war es jetzt einfacher denn je, die Abdeckung durch automatisierte Testgenerierung, -ausführung und -ergebniserfassung zu erhöhen.

Offenes zu geschlossenes Fehlerverhältnis, das auf Null tendiert. Smiths Medical stellte fest, dass die Anzahl der Tests aufgrund der Bemühungen um eine bessere Codeabdeckung anstieg, was direkt auf die neuen Prozesse und die Automatisierung zurückzuführen war. Anstatt jedoch, dass die Testfehler gleichzeitig mit den zunehmenden Tests anstiegen, gingen sie zurück. Auch das Verhältnis von offenen zu geschlossenen Defekten tendierte gegen Null. Dies bedeutete, dass sich die Qualität der Testfälle in Bezug auf Klarheit und korrekt festgelegte erwartete Testergebnisse verbesserte. Es gab mehr Tests und mehr bestandene Tests. Auch der manuelle Aufwand für die Fehlerbeseitigung oder die Tests selbst wurde reduziert.

Bild des Testergebnisses von Smiths Medical im Zeitverlauf. Die Gesamtzahl der Tests nimmt zu, aber die Fehlerquote nimmt ab.
Testergebnisse von Smiths Medical im Zeitverlauf. Die Gesamtzahl der Tests nimmt zu, aber die Fehlerquote nimmt ab.

Optimierte Werkzeugqualifizierung. Die Qualification Kits von Parasoft decken alle Funktionen von Parasoft C/C++test ab, um gleichzeitig die Anforderungen für statische Analysen, Komponententests und Codeabdeckung für sicherheitskritische Software zu erfüllen. Andernfalls müsste Smiths Medical mehrere Tools in seiner Toolchain einzeln qualifizieren, was zu einer erheblichen Doppelarbeit führen würde.

Erfahren Sie, wie Ihr Unternehmen die Herausforderungen bei der Softwareentwicklung für Medizinprodukte mithilfe eines integrierten SDLC-Ansatzes meistern kann.

  • Industrie: Medizintechnik
  • Firmengröße: 7,500
  • Standort: San Clemente, Kalifornien
  • Lösung: C / C ++ - Test