Unterschied zum statischen Testen
Der wesentliche Unterschied zwischen statischen und dynamischen Tests liegt in der Ausführung des Testobjekts. Während beim statischen Test Dokumente und Programmtext ohne eine Ausführung auf einem Rechner geprüft werden, setzt der dynamische Test ein ablauffähiges Programm voraus, das mit Testdaten versorgt und tatsächlich ausgeführt wird.Gegenstand der Prüfung
Gegenstand der Prüfung
Statische Tests können auf alle Arten von Arbeitsergebnissen (Anforderungen, Entwürfe, Quellcode, Verträge, Benutzerhandbücher) angewendet werden. Dynamische Tests konzentrieren sich ausschliesslich auf den ausführbaren Programmcode.
Art der gefundenen Fehler
Art der gefundenen Fehler
Statische Tests entdecken Fehlerzustände (Defekte) direkt im Dokument. Dynamische Tests weisen dagegen Fehlerwirkungen (Ausfälle) nach, also die sichtbaren Konsequenzen von im Code verborgenen Fehlerzuständen.
Zeitpunkt im Lebenszyklus
Zeitpunkt im Lebenszyklus
Statische Verfahren können sehr früh (z.B. direkt nach der Erstellung einer Spezifikation) eingesetzt werden. Dynamische Tests können erst durchgeführt werden, wenn ein ausführbares Programmfragment vorliegt.
Qualitätsmerkmale
Qualitätsmerkmale
Statische Tests bewerten vor allem die innere Qualität und Wartbarkeit (Struktur, Einhaltung von Standards). Dynamische Tests messen Eigenschaften, die erst zur Laufzeit sichtbar werden, wie Performanz, Antwortzeiten oder das Ressourcenverhalten.
Vor- und Nachteile
- Realitätsprüfung
- Sichtbarkeit von Fehlwirkungen
- Messbarkeit
- Späterer Start
- Aufwendige Diagnose
- Infrastrukturbedarf
Elemente des Testrahmens
Testobjekt
Testobjekt
Das Testobjekt ist die Komponente oder das (Teil-)System, das getestet wird. Es wird mit Eingabedaten versehen und zur Ausführung gebracht.
Testtreiber
Testtreiber
Ein Testtreiber ist ein Testwerkzeug oder ein speziell entwickeltes Programm, das das Testobjekt aufruft und/oder steuert. Der Treiber muss das Testobjekt mit den Eingabedaten versorgen.
Platzhalter
Platzhalter
Das Testobjekt ruft meist weitere Programmteile über definierte Schnittstellen auf. Wenn diese Teile noch nicht implementiert oder nur simuliert werden sollen, werden sie durch Platzhalter (Stubs) realisiert. Platzhalter simulieren das Ein-/Ausgabeverhalten des eigentlich aufzurufenden Programmteils.
Laufzeitumgebung, Analysewerkzeuge, Monitore
Laufzeitumgebung, Analysewerkzeuge, Monitore
Die gesamte Umgebung, in der der Test abläuft, umfasst die benötigte Hardware, Simulatoren, Softwarewerkzeuge und weitere unterstützende Hilfsmittel.
Testausgaben, Vergleich und Protokoll
Testausgaben, Vergleich und Protokoll
Das Testobjekt erzeugt Ausgaben. Die Ergebnisse des Testlaufs sind zu protokollieren. Das tatsächliche Ergebnis wird mit dem erwarteten Ergebnis verglichen, um Abweichungen und Fehlerwirkungen festzustellen.
Blackbox- und Whitebox-Testverfahren
Zur systematischen Erstellung von Testfällen beim dynamischen Testen werden Testverfahren in zwei Hauptkategorien eingeteilt.Blackbox-Testverfahren
Basis
Blackbox-Verfahren werden auch spezifikationsbasierte oder verhaltensgesteuerte Verfahren genannt. Die Testfälle werden aus der Spezifikation oder Anforderungsbeschreibung abgeleitet.
Sichtweise
Das Testobjekt wird als »schwarzer Kasten« angesehen; Informationen über den Programmtext und den inneren Aufbau sind nicht erforderlich.
Steuerung und Beobachtung
Der Point of Control (PoC) (Steuerung) und der Point of Observation (PoO) (Beobachtung) liegen ausserhalb des Testobjekts.
Fokus
Diese Verfahren konzentrieren sich auf die Eingaben und Ausgaben des Testobjekts.
Whitebox-Testverfahren
Basis
Whitebox-Verfahren werden auch strukturelle oder strukturbasierte Verfahren genannt. Die Testfälle werden aufgrund der Programmstruktur (Programmcode oder detaillierte Spezifikation) gewonnen.
Sichtweise
Diese Verfahren fokussieren auf die Struktur und die Abläufe innerhalb des Testobjekts.
Steuerung und Beobachtung
Der PoO (Beobachtung) liegt innerhalb des Testobjekts, da der innere Ablauf analysiert wird. In Ausnahmefällen kann der PoC (Eingriff in den Ablauf) auch innerhalb des Testobjekts liegen.
Ziel
Ein nachzuweisender Überdeckungsgrad (z. B. 80 % aller Anweisungen des Testobjekts sollen überdeckt werden) wird angestrebt.
Anwendung
Das primäre Anwendungsgebiet liegt im Komponententest bzw. dem Test der API der zu testenden Komponenten.