Richtlinie: Einheitentest
Mit Einheitentests wird die interne Struktur eines Softwaremoduls differenziert getestet. Diese Richtlinie beschäftigt sich mit dem Whitebox- und dem Blackbox-Ansatz für Einheitentests.
Beziehungen
Hauptbeschreibung

Einführung

Einheitentests werden für die kleinsten testbaren Einheiten (Elemente) der Software ausgeführt. Getestet werden die interne Struktur (Logik und Datenfluss) sowie die Funktion und das beobachtbare Verhalten der Einheiten. Vorraussetzung für das Entwerfen und Implementieren von Tests mit Schwerpunkt auf der internen Struktur sind Kenntnisse zur Implementierung der Einheit (Whitebox-Ansatz). Für das Entwerfen und Implementieren von Tests zur Überprüfung des beobachtbaren Verhaltens und der Funktionen von Einheiten sind solche Kenntnisse nicht erforderlich. Dieser Ansatz wird daher als Blackbox-Ansatz bezeichnet.  

Beide Herangehensweisen werden zum Entwerfen und Implementieren der verschiedenen Testarten verwendet, die für das erfolgreiche und vollständige Testen von Einheiten erforderlich sind (siehe Verfahren: Testarten).  

Zusätzliche Informationen zum Ableiten von Testfällen für Einheitentests finden Sie im Abschnitt Verfahren: Testfall.

Whitebox-Testansatz

Gehen Sie nach dem Whitebox-Testansatz vor, wenn Sie die interne Struktur einer Einheit überprüfen möchten. Theoretisch müssten Sie jeden möglichen Pfad durch den Code testen, was in der Praxis allerdings nur bei sehr einfachen Einheiten möglich ist. Zumindest sollten Sie alle Entscheidungspfade einmal durchgehen, damit jede Anweisung mindestens einmal ausgeführt wird. Eine Entscheidung ist in der Regel eine Anweisung if, und ein Entscheidungspfad ist der Pfad zwischen zwei Entscheidungen.

Um diese Testabdeckung zu erreichen, sollten Sie die Testdaten so auswählen, dass jede Entscheidung unter allen möglichen Gesichtspunkten bewertet werden kann.  

Mit Tools für Codeabdeckung können Sie den Code identifizieren, der bei Ihren Whitebox-Tests nicht ausgeführt wird. Parallel zu Ihren Whitebox-Tests sollten Sie Zuverlässigkeitstest durchführen.

Zusätzliche Informationen hierzu finden Sie im Abschnitt Verfahren: Testfall.

Blackbox-Testansatz

Blackbox-Tests werden eingesetzt, um die spezifizierten Funktionen und das beobachtbare Verhalten der Einheit zu überprüfen, ohne dass bekannt ist, wie die Einheit die Funktion oder das Verhalten implementiert. Blackbox-Tests konzentrieren sich auf die Ein- und Ausgaben der Einheit.

Beim Ableiten von Einheitentests aus dem Blackbox-Ansatz werden die Eingabe- und Ausgabeargumente von Operationen der Einheit und/oder der Ausgabestatus zur Bewertung herangezogen. Eine Operation kann beispielsweise einen Algorithmus enthalten (der zwei Werte als Eingabe erfordert und einen dritten Wert als Ausgabe zurückgibt) oder eine Statusänderung für ein Objekt oder eine Komponente einleiten, wie es beim Hinzufügen oder Löschen eines Datenbanksatzes der Fall ist. Beide Möglichkeiten müssen vollständig getestet werden. Für das Testen einer Operation sollten Sie genug Testfälle ableiten, um Folgendes überprüfen zu können:

  • Die Operation hat für jeden gültigen Eingabewert einen entsprechenden Wert zurückgegeben.
  • Die Operation hat für jeden ungültigen Eingabewert einen entsprechenden Wert zurückgegeben.
  • Bei jedem gültigen Eingabezustand wird ein entsprechender Ausgabezustand erreicht.
  • Bei jedem ungültigen Eingabezustand wird ein entsprechender Ausgabezustand erreicht.

Mit Tools für Codeabdeckung können Sie den Code identifizieren, der bei Ihren Whitebox-Tests nicht ausgeführt wird. Parallel zu Ihren Blackbox-Tests sollten Sie Zuverlässigkeitstest durchführen.

Zusätzliche Informationen hierzu finden Sie im Abschnitt Verfahren: Testfall.