Statisches und dynamisches Testen

R 2.1.0

Was sind statische und dynamische Tests?

Was sind statische und dynamische Tests?

Statische Tests: Testen, das die Ausführung eines Testelements nicht beinhaltet. [ISTQB]

Dynamische Tests: Testen, das die Ausführung des Testelements beinhaltet. [ISTQB]

Beschreibung

Es wird grundsätzlich zwischen statischen und dynamischen Tests unterschieden, die je nach Ziel der Softwaretests ausgewählt und angewendet werden.

Dynamische Tests beinhalten die Ausführung des Testelements. Dazu gehören Black-Box-Tests, White-Box-Tests sowie erfahrungsbasierten Tests. Statische Tests dagegen testen Arbeitsergebnisse ohne die Ausführung von Code. Dazu gehören Reviews sowie statische Analysen.

ALT MISSING
Abb. 1: Übersicht statische und dynamische Tests

Statisches Testen

Statische Testtechniken dienen hauptsächlich dem Prüfen von Artefakten, wie Anforderungen oder Quelltext, ohne diese auf einem Rechner auszuführen. Bei den Prüfobjekten handelt es sich meist um Dokumente oder Quellcode. Prinzipiell kann aber jedes Arbeitsergebnis der Softwareentwicklung durch statische Testtechniken geprüft werden, zum Beispiel Anforderungsspezifikationen, User-Stories, Designspezifikationen, Quellcode, Testkonzepte, Testspezifikationen, Testfälle, Testskripte, Anwenderhandbücher oder Webseiten.
Reviews oder werkzeuggestützte statische Analysen zählen zu den gängigsten statischen Testtechniken.
Statische Analyse bezeichnet einen Prozess der Bewertung eines Testobjekts (Komponente oder System) basierend auf seiner Form, seiner Struktur, seines Inhalts oder seiner Dokumentation, ohne es auszuführen.

Vorteile statischer Testtechniken

  • Frühe Fehlererkennung bereits in der Spezifikation

  • Fehlerzustände werden direkt aufgedeckt

  • Verringert die Anzahl aufwändiger und teurer dynamischer Testtechniken

  • Prüft auch auf Programmier-Konventionen, Standards, Design

  • Auch nicht-ausgeführte Softwarebestandteile (z.B. Variablendefinitionen) unterliegen der Prüfung

  • Prüfung erfasst auch Attribute wie Wartbarkeit

  • Prüfung von Dokumenten (z.B. Anforderungsspezifikationen, etc.)

  • Wissensaustausch zwischen Teammitgliedern (Review)

  • Zwang zu klarer Darstellung von Sachverhalten (Review)

  • Team als Ganzes trägt Qualitätsverantwortung (Review)

Nachteile statischer Testtechniken

  • Eher ungeeignet für komplexe Interaktionen zwischen verschiedenen Systemteilen

  • Einige Fehlerzustände entstehen erst bei Ausführung. Ein Divisor kann beispielsweise bei der Ausführung den Wert „0“ annehmen und somit einen Laufzeitfehler verursachen. Dieser kann durch reines Sichten des Programmtextes nicht ermittelt werden

Dynamisches Testen

Dynamische Testtechniken dienen dem Auffinden von Fehlerwirkungen durch Ausführen des Testobjekts auf einem Rechner. Die gängigsten dynamischen Testtechniken sind:

Black-Box-Testverfahren

ALT MISSING
Abb. 2: Black-Box-Test vs. White-Box-Test

Hierbei wird das von außen sichtbare Verhalten des Testobjekts betrachtet, ohne Kenntnis der Softwarestruktur oder des Quellcodes (Black Box) und die Testfälle auf Basis der Spezifikation entworfen. Deshalb werden Black-Box-Tests auch als spezifikationsorientierte Testverfahren bezeichnet.

Hier finden Sie weitere Informationen zu den Black-Box-Testverfahren.

White-Box-Testverfahren

Die White-Box-Testverfahren zählen unter den dynamischen Testtechniken zu den am meisten angewendeten Methoden. Die Testfälle werden basierend auf der Kenntnis der inneren Struktur einer Komponente oder eines Systems entwickelt (dies ist die sogenannte White-Box bzw. Glass-Box). White-Box-Tests werden deshalb auch als strukturbasierte oder strukturelle Testverfahren bezeichnet.

Hier finden Sie weitere Informationen zu den White-Box-Testverfahren.

Vorteile dynamischer Testtechniken

  • Das Testobjekt wird tatsächlich ausgeführt, was der Bestimmung von Software näher kommt

  • Das Zusammenspiel von Systemteilen wird getestet

  • Umfasst auch die Durchführung wichtiger nicht-funktionaler Tests (Performanztest, Lasttest, etc.)

Nachteile dynamischer Testtechniken

  • Setzen ein lauffähiges Testobjekt und eine entsprechende Testumgebung voraus

  • Nur Programmteile, die zur Ausführung gelangen, werden getestet

  • Je nach Umfang und Anzahl verknüpfter Teilsysteme sind dynamische Testtechniken mit hohem Aufwand verbunden

  • Es werden zunächst nur Fehlerwirkungen aufgedeckt. Die zugrundeliegenden Fehlerzustände müssen in einem separaten Arbeitsgang (Debugging) lokalisiert werden

Quellen