Branche: MedTech
Seit 1979 hat Fresenius Medical Care die medizinische Erfolgsgeschichte der Behandlung chronischer Nierenerkrankungen wesentlich mitgeschrieben. Die kontinuierliche Weiterentwicklung der Produkte stellt gerade die Softwareentwicklung vor die Herausforderung, qualitativ guten Code in immer kürzeren Release-Zyklen zu erzeugen. Dies ist ohne das Konzept der kontinuierlichen Integration kaum mehr vorstellbar. „Continuous Integration“ (CI) bedeutet, dass die zu entwickelnde Software möglichst häufig kompiliert, gebaut und im Anschluss daran geprüft wird. So erhalten die Entwickler schnell Feedback über durchgeführte Änderungen.
Die erforderliche Werkzeugkette enthält neben der eigentlichen Build-Umgebung eine Reihe von Software-Werkzeugen, die unterschiedliche Prüfungen durchführen. Dazu gehören Tools zur statischen und dynamischen Code-Analyse sowie das Framework für die automatisierten Unit-Tests. Für den Einsatz im regulierten Umfeld muss diese Werkzeugkette validiert werden.
Für die Validierung beauftragte Fresenius Medical Care die sepp.med gmbh. sepp.med führte zunächst eine Bestandsaufnahme der bestehenden Werkzeuge durch. Diese „Inventur“ ergab eine Liste von zwanzig Werkzeugen, die je nach Projekt zum Einsatz kommen können. Des Weiteren klärte sepp.med in einer Reihe von Stakeholder-Interviews die geplante Verwendung der CI-Toolkette. So wurde u.a. ermittelt, welche Programmiersprachen relevant sind, welche Werkzeuge verwendet werden und wie die Anwendungsfälle aussehen. Diese wurden graphisch als UML-Diagramm dokumentiert und in Aktivitätsdiagrammen weiter detailliert.
Parallel dazu führte Fresenius Medical Care eine Risikoanalyse (FMEA) durch und identifizierte eine Reihe von Maßnahmen. Die Risikoanalyse bildete zusammen mit den in den Interviews ermittelten Workflows die Grundlage für die Anforderungsspezifikation der Toolkette.
Besonders im Fokus stand die Validierung der MISRA C++ Regeln und der von Fresenius spezifizierten Ausnahmen, die nicht zu Fehlermeldungen führen dürfen. Für die zu validierenden Compiler wurden verschiedene Szenarien geprüft, darunter die Konfiguration, der Abbruch im Fehlerfall, mögliche Warning Levels und natürlich das Erzeugen der Binaries. Darüber hinaus spezifizierte sepp.med im Validierungsplan Workflow-Tests, die sich an den ermittelten Abläufen orientierten.
Bereits zu Beginn des Projektes war klar, dass ein Teil der Tests automatisiert werden sollte. Erstens wäre es zeitraubend und fehlerträchtig gewesen, die verschiedenen Testdaten „per Hand“ zuzuweisen und die Log-Dateien im wörtlichen Sinne „lesend“ auszuwerten. Zweitens war die Menge der Testdaten händisch nicht handhabbar, da allein mehrere hundert MISRA-Regeln verifiziert werden mussten. Drittens war absehbar, dass eine größere Anzahl der Tests erneut durchgeführt werden muss. sepp.med evaluierte verschiedene Alternativen. Die Wahl fiel schließlich auf das Testautomatisierungs-Framework Spock, das Testdurchführungs-Werkzeug gradle und die Programmiersprache Groovy. Die zentrale Steuereinheit bildet der Jenkins-Server, über welchen das Testprojekt ausgecheckt und konfiguriert wird.
Die Anforderungen, Testfälle und die Testdurchführung der manuellen und automatisierten Tests durch sepp.med wurden im ALM-Werkzeug Polarion dokumentiert. Zum Abschluss erstellte sepp.med einen Validierungsbericht.
Zu Beginn wurden die Toolkette, die anzuwendenden Prozessvorgaben und Richtlinien sowie die genauen Anforderungen geklärt. Diese Zeit war gut investiert. Anforderungen an das zu validierende System, die vorher nicht bewusst waren, wurden ermittelt – und somit auch implementiert. Andere Anforderungen wurden wieder verworfen, weil sie sich als nicht sinnvoll herausstellten.
Die erstellten UseCase- und Aktivitätsdiagramme waren einerseits sehr hilfreich, die ermittelten Ergebnisse zu kommunizieren, andererseits dienten sie zur Festlegung des Validierungsumfangs und damit auch zur Abgrenzung von anderen Validierungsprojekten.
Das Testautomatisierungskonzept konnte mit großem Erfolg in einem Folgeprojekt übernommen werden. Grundlage dafür war die textuelle Spezifikation des erwarteten Systemverhaltens, wie sie im Behavior-Driven Development (BDD) üblich ist und durch Spock unterstützt wird.
Damit reduzierte sich z. B. die Prüfung der zahlreichen MISRA-Regeln auf das simple, leicht verständliche Schema:
Mittels dieses BDD-Schemas können die erstellten Basisskripte jederzeit neu kombiniert und somit neue Testfälle mit geringem Aufwand spezifiziert und implementiert werden.
Für die statische Codeanalyse wurden Testdaten verwendet, die vom Hersteller des Tools zur Verfügung gestellt wurden. Daher war eigentlich zu erwarten, dass der Test der MISRA-Regeln problemlos laufen würde. Es stellte sich jedoch heraus, dass einige MISRA-Regelverstöße nicht korrekt detektiert wurden. Damit zeigte sich unerwartet deutlich, wie wichtig die Tool-Validierung tatsächlich ist.
Obwohl – bzw. gerade weil – zunächst keine Freigabe der CI-Toolkette erfolgte, betrachten Fresenius Medical Care und sepp.med die Validierung als Erfolg. Zum einen ist es gelungen, Fehler durch blindes Vertrauen in Tools zu vermeiden. Zum anderen wurde die Grundlage für weitere automatisierte Validierungen gelegt. Die automatisierten Tests wurden seit Abschluss des ersten Durchlaufs bereits mehrfach wiederholt. Inzwischen ist geplant, auch die Workflow-Tests zu automatisieren. Auf diese Weise wird es möglich, jeden neuen CI-Server vor seinem Einsatz innerhalb eines halben Tages vollständig zu prüfen.
Fresenius Medical Care ist der weltweit führende Anbieter von Produkten und Dienstleistungen für Menschen mit chronischem Nierenversagen, von denen sich weltweit rund 3,2 Millionen Patienten regelmäßig einer Dialysebehandlung unterziehen. In einem weltweiten Netz aus mehr als 3.700 Dialysekliniken betreut das Unternehmen mehr als 320.000 Patienten.
Fresenius Medical Care ist der weltweit führende Anbieter von Dialyseprodukten wie Dialysegeräten, Dialysatoren und damit verbundenem Einweg-Zubehör und bietet Produkte und Dienstleistungen entlang der gesamten Dialyse-Wertschöpfungskette aus einer Hand an. Mit innovativen Produkten und Behandlungskonzepten auf qualitativ höchstmöglichem Niveau arbeitet Fresenius Medical Care kontinuierlich an der Verbesserung der Lebensqualität nierenkranker Patienten.
Vorname:
Nachname:
E-Mail-Adresse:
Telefonnummer:
Betreff:
Ihre Nachricht:
Ja, ich bin einverstanden, dass meine personenbezogenen Daten elektronisch erhoben und gespeichert werden. Meine Daten werden nur zum Zweck der Beantwortung meiner Anfragen verwendet. Die Datenschutzhinweise habe ich zur Kenntnis genommen.
Sie sehen gerade einen Platzhalterinhalt von OpenStreetMap. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Sie müssen den Inhalt von hCaptcha laden, um das Formular abzuschicken. Bitte beachten Sie, dass dabei Daten mit Drittanbietern ausgetauscht werden.
Sie sehen gerade einen Platzhalterinhalt von Google Maps. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.