Statisches und dynamisches Testen
R 2.1.0
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.
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
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
-
ISTQB Glossary statischer Test, abgerufen am 19.08.2024
-
ISTQB Glossary dynamischer Test, abgerufen am 22.02.2024
-
Softwaretestinggenius, Comparison Black & Whitebox, abgerufen am 22.02.2024