Mock-Objekt beim Testen von medizinischer Software

Donnerstag 5. Mai 2016

Ein Mock-Objekt hilft beim Integrationstest, Teile eines Software-Systems zu ersetzen bzw. zu simulieren, solange bis diese Teile schrittweise dem System hinzugefügt werden.

Lesen Sie in diesem Artikel, wie sich Mocks von Dummies und Stubs unterscheiden und ob Sie ein Mock-Objekt auch verifizieren müssen.

Mock-Objekt, Dummy, Stub

Zahlreiche Begriffe kursieren in diesem Kontext. Man unterscheidet meist abhängig von der implementierten Funktionalität folgende Begriffe:

  1. Ein Stub repräsentierte den „dümmsten“ Vertreter in dieser Liste.  Er verfügt über kaum Funktionalität und wird v.a. als Platzhalter genutzt.
  2. Ein Dummy (kennen Sie vielleicht von Crash-Tests) ist schon etwas klüger und implementiert beispielsweise eine sehr vereinfachte Version des ersetzen Objekts.
  3. Die Mocks enthalten die meiste Funktionalität. Ein Mock-Objekt enthält meist Code für Testzwecke, beispielsweise prüft es, ob übergebene Parameter im erwarteten Wertebereich liegen, oder es gibt falsche Werte zurück, um das Testobjekt daraufhin untersuchen zu können, ob es damit umgehen kann.

Wie ein Mock-Objekt beim Testen helfen kann

Voraussetzung für Top-Down-Integrationstests

Die IEC 62304 verlangt, dass Sie eine Integrations-Strategie für Ihre Software-Tests bestimmen und dann die Intergrationstests entsprechend durchführen.  Wenn Sie eine Top-Down-Integration planen, d.h. wenn Sie zuerst die oberen und dann die unteren Schichten Ihrer Software testen möchten, benötigen Sie Stellvertreter-Objekt wie die oben genannten: Stubs, Dummies und Mock-Objekte.

Mock-Objekte bei Integrationstests

Mock-Objekte zum Testen der Schnittstellen

Wenn Sie eine Komponente mit Testtreibern testen, testen Sie v.a. die Reaktion dieser Komponente auf Aufrufe mit dem Testtreiber (in folgendem Bild auf der linken Seite).

Wenn Sie hingegen Mock-Objekte einsetzen, können Sie zusätzlich prüfen,

  1. ob ein Aufruf mit dem Testtreiber auch die erwarteten Methodenaufrufe „auf der Rückseite“ (hier zur Komponente B) erfolgen und
  2. ob die Komponente A mit den Rückgabewerten der Komponente B richtig umgeht, beispielsweise sich bei ungültigen Rückgabewerten wie spezifiziert verhält.

Mock-Objekt

Bild zum Vergrößern anklicken

Dazu implementiert man in den Mock-Objekten Funktionalität, die zum einen die Aufrufparameter protokollieren und zum anderen einstellbare Rückgabewerte erzeugen kann.

Regulatorische Anforderungen an Mock-Objekte

Zuerst ist festzustellen, dass es keine regulatorischen Anforderungen gibt, überhaupt Mock-Objekte einzusetzen. Schwieriger zu beantworten ist die Frage, ob es regulatorische Forderungen gibt, falls man mit einem Mock-Objekt arbeitet.

Ein Mock-Objekt ein Messwerkzeug

Wenn Sie ein Mock-Framework einsetzen, mit denen Sie Mock-Objekte (automatisiert) erzeugen können, dann ist dieses Werkzeug ein Mess- oder Prozesswerkzeug, das Sie validieren müssen. Beispiele für solche Mock-Frameworks im Java-Bereich sind

Welche Anforderungen die Regularien an Messwerkzeuge und Prozesswerkzeuge stellen und wie Sie diese erfüllen können, lesen Sie in einem weiteren Artikel.

Ein Mock-Objekt kein Messwerkzeug

Wenn Sie hingegen für eine Komponente oder Klasse ein spezifisches Mock-Objekt schreiben, in dem Sie beispielsweise ein gemeinsames Interface implementieren, dann wäre dieses Mock-Objekt Teil Ihres Test-Codes. Solch einen spezifischen Test-Code müssen sich nicht validieren.

Wie wollten Sie das auch tun? Mit Software-Tests, die selbst wieder zu validieren sind? Sie ahnen, wo das endet.

 

War dieser Artikel hilfreich? Bitte berwerten Sie:
1 Stern2 Sterne3 Sterne4 Sterne5 Sterne

Autor des Beitrags " Mock-Objekt beim Testen von medizinischer Software

Johner Institut GmbH

Logo Johner Institut klein

Bewertung 0 von 5 bei 0 Bewertungen


Kategorien: Software & IEC 62304
Tags: ,

Kommentar schreiben