Integrationstests bei Software & Integrationsstrategie
Sowohl die IEC 62304 als auch die FDA fordern Integrationsprüfungen, typischerweise in Form von Integrationstests.
Das Software-Testing zählt neben den Code-Reviews zur Software-Verifizierung. Gesetze und Normen stellen Anforderungen an die Art und den Umfang des Software-Testings.
Inhalt
Diese Seite verschafft Ihnen einen schnellen Überblick über das Software-Testing und verlinkt für weitergehende Informationen auf Fachartikel.
Das Ziel des Testens von Software besteht darin, Fehler in der Software zu finden. Damit ist das Software-Testing ein Teil der analytischen Qualitätssicherung (s. Abb. 1).
Es weder möglich noch erlaubt, die Software-Qualität nur mit Testen zu erreichen.
Zur konstruktiven Qualitätssicherung zählen
Auf der Meta-Ebene gibt es Gesetze und Normen sowie Schulungs- und Weiterbildungsmaßnahmen, die sich u. a. auf die drei oben genannten Aspekte beziehen.
Die analytische Qualitätssicherung versucht, mithilfe von verschiedenen Prozessen, Methoden und Werkzeugen Fehler in verschiedenen Testobjekten zu finden. Man unterscheidet:
Software-Tests lassen sich nach vielen Kriterien sortieren (s. Abb. 2).
Die IEC 62304 unterteilt ihre Anforderungen nach den Lebenszyklus-Phasen (s. Abb. 3).
Die MDR und IVDR verlangen Software-Lebenszyklus-Prozesse nach Stand der Technik (s. MDR, Anhang I, Abschnitt 17.2) und die Dokumentation der „Verifizierung und Validierung der Software“ (s. Anhang II, Abschnitt 6.1.b).
Die für diese EU-Verordnungen harmonisierte Norm IEC 62304 fordert das Software-Testing in folgenden Kapiteln:
Bei der Software-Freigabe (Kapitel 5.8) müssen die Hersteller überprüfen, ob die Software-Tests so durchgeführt wurden, wie im Softwareentwicklungsplan beschrieben.
Bei Legacy-Software erlaubt die Norm Ausnahmen.
Die Software-Validierung fällt nicht in den Anwendungsbereich der IEC 62304, sondern den der IEC 82304-1. Allerdings sind deren Anforderungen sehr unspezifisch.
Wichtige Methoden zur Validierung von Software sind die klinische Bewertung und die Usability-Validierung, typischerweise in Form einer summativen Evaluation bzw. eines Usability-Tests.
Der Begriff Software-Validierung wird in verschiedenen Kontexten unterschiedlich verstanden. Beispielsweise umfasst Computerized Systems Validation nicht nur eine Validierung am Ende der Entwicklung, wie in Abb. 3 zu sehen.
Das Video auf der Seite zur Validierung hilft, Missverständnisse zu vermeiden.
Die FDA erkennt die IEC 62304 als „recognized standard“ an. Aber die relevantesten Vorgaben an die Software-Architektur formuliert die Behörde in ihrer Leitlinie General Prinicples of Software Validation.
Die Leitlinie Content of the premarket submission gibt vor, welche Unterlagen Hersteller einreichen müssen. Darin macht die FDA auch Vorgaben für das Software-Testing.
Hersteller, die die Anforderungen der FDA und der EU an das Software-Testing erfüllen, dürften weitgehend auch konform mit Anforderungen anderer Märkte sein.
Manchmal hilft es, weitere Normen zu beachten. Dazu zählen:
Entwickler verstehen unter dem Unit-Testing etwas anderes als Auditoren: Für die Ersteren sind Unit-Tests die Tests der granularen Einheiten, also z. B. der Methoden und Klassen. Hingegen müssen aus regulatorischer Sicht die Unit-Tests die Software-Einheiten testen, die größere Komponenten darstellen können.
Lesen Sie mehr dazu in diesem Artikel.
Je nach Testziel sollten die Hersteller die passenden Methoden wählen. Ein Fuzz-Test hat eine andere Zielsetzung als ein Penetration-Test.
Nutzen Sie Blackbox-Testverfahren. Damit kann man nicht nur bei Software-Systemtests systematisch diejenigen Testfälle ermitteln, die die höchste Wahrscheinlichkeit haben, Fehler zu finden.
Tests können nur dann Fehler finden, wenn der Testcode die zu testende Software tatsächlich durchläuft. Mit Werkzeugen lässt sich der Code-Coverage automatisiert bestimmen. Diese Metrik sollten Hersteller für sich festlegen.
Jeder zusätzliche Test erhöht die Wahrscheinlichkeit, dass Fehler rechtzeitig gefunden und beseitigt werden. Deshalb hat es sich bewährt, nach Änderungen alle Tests als Regressionstests zu wiederholen. Nicht nur während der Entwicklung, sondern auch während der Software-Wartung.
Wenn Hersteller es den Anwendern erlauben, die Software anzupassen (etwa durch die Parametrierung der Software oder gar eigene Scripts), dann sollten diese Anpassungen ebenfalls durch Software-Tests überprüft werden.
Beta-Tests haben das Ziel, ein Produkt (hier eine Software) vor dem offiziellen Release einem ausgewählten Anwenderkreis zur Verfügung zu stellen, um Feedback zum Produkt zu erhalten.
Medizinproduktehersteller müssen sich bewusst sein, dass solch ein Beta-Test bereits eine gesetzeswidrige Inverkehrbringung des Produkts darstellen kann.
Software-Testing ist eine Kompetenz, die Hersteller festlegen und gewährleisten müssen. Dazu verpflichtet sie u. a. die ISO 13485; und zwar spezifisch für jedes Entwicklungsprojekt.
Nutzen Sie die Unterstützung des Johner Instituts:
Melden Sie sich gleich, damit wir die nächsten Schritte besprechen können. So stellen Sie sicher, dass die „Zulassung“ sicher gelingt und Ihre Software bzw. Ihr Produkt schnell in den Markt kommt.
Sowohl die IEC 62304 als auch die FDA fordern Integrationsprüfungen, typischerweise in Form von Integrationstests.
Eine häufige Frage an uns: „Bieten Sie auch Computerized Systems Validation an?“ Einer der Gründe für das Interesse ist sicherlich: Behörden und Benannte Stellen machen das Thema CSV immer öfter zum Gegenstand von Audits. Lesen Sie hier, welche Regularien es zur „Computerized Systems Validation“ gibt und wie Sie deren Forderungen am elegantesten erfüllen.
WeiterlesenDie ISO/IEC TR 29119-6 soll dabei helfen, auch bei agilen Software-Projekten die Anforderungen der Normenfamilie ISO 29119 (also der anderen Familienmitglieder) zu erfüllen. Diesen Anspruch lässt sie bereits im Titel erkennen: „Guidelines for the use of ISO/IEC/IEEE 29119 (all parts) in agile projects“. Ob die Norm diesem Anspruch auch gerecht wird und ob Sie überhaupt…
WeiterlesenEnde 2020 veröffentlichte die ISO den Technical Report ISO/IEC TR 29119-11. Er trägt den Titel „Guidelines on the testing of AI-based systems“. Viele Firmen möchten wissen, wie sie ihre Produkte, die auf Verfahren der künstlichen Intelligenz (KI) basieren, nach dem Stand der Technik testen sollen. Daher hat sich die ISO/IEC TR 29119-11 auf den Weg…
WeiterlesenCode Coverage dient den meisten Software-Entwicklern als die wichtigste Metrik für die Vollständigkeit von Software-Tests. Dieser Artikel verschafft Ihnen einen Überblick über die Abdeckungsgrade und gibt Tipps zum deren Bestimmung. Inhaltsübersicht 1. Varianten des Code Coverage » 2. Regulatorische Anforderungen » 3. Bewertung der Code Coverage » 4. Bestimmen der Code Coverage »
WeiterlesenImmer mehr Hersteller setzen Machine Learning Libraries wie scikit-learn, TensorFlow und Keras in ihren Produkten ein. Damit beschleunigen sie ihre Forschungs- und Entwicklungsvorhaben. Allerdings ist nicht allen Herstellern klar, welche regulatorischen Anforderungen sie bei Machine Learning Libraries nachweisen müssen und wie sie das am besten tun. Das führt dazu, dass sie unnötige Aufwände treiben oder…
WeiterlesenDie Parametrisierung von Software – man spricht in dem Kontext auch von Parametrierung, Customizing oder Konfiguration – führt regelmäßig zu Diskussionen z.B. über die Verantwortlichkeit und über die Abgrenzung zur Eigenherstellung. Dieser Artikel gibt Herstellern und deren Kunden wichtige Hinweise, auf was sie bei der Parametrisierung achten sollten und wie sie die üblichen Fallen vermeiden…
WeiterlesenGemeinsam mit dem TÜV SÜD, dem TÜV Nord und mit Unterstützung von Dr. Heidenreich (Siemens) hat das Johner Institut am 21.11. einen Leitfaden zur IT-Sicherheit speziell für Medizinproduktehersteller veröffentlicht.
Die IEC 62443-4-1 ist Teil einer Normenfamilie zur „IT-Sicherheit für industrielle Automatisierungssysteme“. Dieser Artikel stellt Ihnen den Teil 4-1 vor, der Anforderungen an den Lebenszyklus (Entwicklung, Wartung) von sicheren Produkten stellt. Er untersucht auch, ob diese Norm für Hersteller von Medizinprodukten sinnvoll anwendbar ist.
WeiterlesenFuzz-Testing ist eine Methode zur Identifizierung bisher nicht-erkannter Schwachstellen und Sicherheitslücken in Software (stand-alone oder embedded), die die Schnittstellen der Systeme automatisiert mit korrekten oder falschen Werten testet.
Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern. Wenn Sie unter 16 Jahre alt sind und Ihre Zustimmung zu freiwilligen Diensten geben möchten, müssen Sie Ihre Erziehungsberechtigten um Erlaubnis bitten. Wir verwenden Cookies und andere Technologien auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern. Personenbezogene Daten können verarbeitet werden (z. B. IP-Adressen), z. B. für personalisierte Anzeigen und Inhalte oder Anzeigen- und Inhaltsmessung. Weitere Informationen über die Verwendung Ihrer Daten finden Sie in unserer Datenschutzerklärung. Sie können Ihre Auswahl jederzeit unter Einstellungen widerrufen oder anpassen.
Wenn Sie unter 16 Jahre alt sind und Ihre Zustimmung zu freiwilligen Diensten geben möchten, müssen Sie Ihre Erziehungsberechtigten um Erlaubnis bitten. Wir verwenden Cookies und andere Technologien auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern. Personenbezogene Daten können verarbeitet werden (z. B. IP-Adressen), z. B. für personalisierte Anzeigen und Inhalte oder Anzeigen- und Inhaltsmessung. Weitere Informationen über die Verwendung Ihrer Daten finden Sie in unserer Datenschutzerklärung. Hier finden Sie eine Übersicht über alle verwendeten Cookies. Sie können Ihre Einwilligung zu ganzen Kategorien geben oder sich weitere Informationen anzeigen lassen und so nur bestimmte Cookies auswählen.