Bei der Entwicklung von Software für Medizinprodukte ist Sicherheit nicht nur ein Ziel, sondern eine rechtliche und ethische Verpflichtung. Unter den vielen Normen, die diesen Bereich regeln, sticht die IEC 62304 als zentrale internationale Norm für den Lebenszyklus von Medizinproduktesoftware hervor. Ein wesentlicher Teil der Konformität mit der IEC 62304 ist das systematische Testen auf funktionale Sicherheit. Doch was bedeutet das in der Praxis?
Als Ingenieure und Softwareentwickler sind wir darauf trainiert, in Strukturen, Zuverlässigkeit und Nachvollziehbarkeit zu denken. Diese Denkweise deckt sich eng mit der Philosophie der IEC 62304.
Funktionale Sicherheit verstehen
Funktionale Sicherheit stellt sicher, dass ein System korrekt auf seine Eingaben reagiert, insbesondere unter Fehlersituationen. Im medizinischen Bereich bedeutet das: Die Software darf weder Patienten noch Anwender gefährden, selbst im Falle vorhersehbarer Fehler.
Beispielsweise muss eine softwaregesteuerte Infusionspumpe, die Medikamente verabreicht, Sensorfehler, Kommunikationsausfälle und Anwenderfehler so behandeln, dass keine gefährlichen Ereignisse entstehen. Hier greift die funktionale Sicherheit.
IEC 62304 und Sicherheitsklassifizierung
Die IEC 62304 definiert drei Software-Sicherheitsklassen:
- Klasse A: Keine Verletzung oder Gesundheitsschädigung möglich
- Klasse B: Nicht schwerwiegende Verletzung möglich
- Klasse C: Tod oder schwerwiegende Verletzung möglich
Abhängig von der Klassifizierung steigt der Umfang an Test- und Verifikationsaktivitäten erheblich. Für Software der Klasse C müssen umfassende Teststrategien umgesetzt werden, darunter Unit-Tests, Integrationstests und Systemverifikation mit Nachverfolgbarkeit bis hin zu den Risikokontrollen.
Die Rolle des Testens
Testen im Kontext der IEC 62304 bedeutet nicht nur, Fehler zu finden – es geht darum, nachzuweisen, dass die Software ihre Sicherheitsanforderungen unter allen vorhersehbaren Bedingungen erfüllt. Testen muss daher sein:
- Systematisch: Nach einem dokumentierten und nachvollziehbaren Prozess
- Risikobasiert: Tests werden nach potenzieller Schadenshöhe priorisiert
- Bidirektional nachvollziehbar: Jeder Testfall ist einem Requirement zugeordnet und umgekehrt
Typische Testaktivitäten sind:
- Statische Analyse zur frühzeitigen Erkennung potenzieller Fehler
- Unit-Tests zur Verifizierung der Logik auf Funktionsebene
- Integrationstests zur Sicherstellung der Kommunikation zwischen Modulen
- Systemtests mit Fault-Injection und Grenzfällen
- Verifikation der Risikokontrollen, insbesondere im Bereich Hardware-Software-Interaktion
Nachvollziehbarkeit
Wir sind bekannt für unsere Präzision und Dokumentationsstrenge – und in diesem Fall ist das von Vorteil. Die IEC 62304 fordert Nachvollziehbarkeit über den gesamten Software-Lebenszyklus. Jede Anforderung muss verknüpft sein mit:
- Ihrem Ursprung im Risikomanagementprozess (typischerweise nach ISO 14971)
- Dem entsprechenden Architektur- oder Designelement
- Den Testfällen, die sie verifizieren
Werkzeuge wie Polarion, Codebeamer oder auch Open-Source-Alternativen wie ReqView und Robot Framework können diese Strenge unterstützen.
Integration mit ISO 14971 und IEC 60601
Testen auf funktionale Sicherheit darf nicht isoliert erfolgen. Es muss mit weiteren Normen abgestimmt sein, wie etwa:
- ISO 14971 für Risikomanagement
- IEC 60601 für elektrische Sicherheit und wesentliche Leistungsmerkmale
Beispielsweise könnte eine Software der Klasse C einen softwarebasierten Failsafe enthalten, der aktiviert wird, wenn ein Hardware-Sensor inkonsistente Daten meldet. Dieses Verhalten muss sowohl in der Software (simulierter Sensorfehler) als auch im Systemtest (tatsächliche Fehler-Injektion) geprüft werden.
Abschließende Gedanken
Testen auf funktionale Sicherheit nach IEC 62304 ist nicht nur ein regulatorisches Pflichtfeld – es ist eine Denkweise. Sie erfordert ein tiefes Verständnis sowohl der Softwarearchitektur als auch der klinischen Risiken.
Wir sind hier gut aufgestellt. Unser Fokus auf Prozessdisziplin, Risikomanagement und technische Integrität bietet eine solide Basis für die Entwicklung sicherer und zuverlässiger Medizintechnik-Software.
Am Ende geht es beim guten Testen nicht darum, jede Codezeile abzudecken – sondern darum, mit dem Wissen schlafen zu können, dass die Software niemanden gefährden wird.

