Grundlagen
Statische Tests basieren auf der PrĂŒfung von Arbeitsergebnissen, ohne dass der Programmtext auf einem Rechner ausgefĂŒhrt wird. Im Gegensatz zum dynamischen Testen können hierbei nicht nur der Quellcode, sondern alle Arten von Dokumenten (wie Anforderungen, EntwĂŒrfe oder BenutzerhandbĂŒcher) untersucht werden.
Formen
Man unterscheidet grundsÀtzlich zwei Herangehensweisen.
Manuelle PrĂŒfung (Reviews)
Hierbei werden Dokumente von einer oder mehreren Personen systematisch gelesen und bewertet. Das Ziel ist es, inhaltliche Fehler, Unklarheiten oder LĂŒcken durch menschliche Analyse- und DenkfĂ€higkeit aufzudecken. Mehr dazu hier.
WerkzeuggestĂŒtzte statische Analyse
Spezialisierte Software prĂŒft Dokumente (vor allem Quellcode) auf formale Strukturen, die Einhaltung von Programmierstandards oder Anomalien im Daten- und Kontrollfluss.
Ziele und Nutzen
Der Hauptzweck statischer Tests ist die PrÀvention.
FrĂŒhe Fehlererkennung (Shift-Left)
FehlerzustĂ€nde werden identifiziert, noch bevor sie in nachfolgende Entwicklungsschritte einfliessen oder im dynamischen Test zu teuren AusfĂ€llen fĂŒhren.
Direktes Finden von FehlerzustÀnden
WĂ€hrend dynamische Tests nur die Auswirkungen eines Fehlers (Fehlerwirkungen) zeigen, finden statische Tests den Fehlerzustand direkt im Dokument oder Programmtext.
Verbesserung der QualitÀt
GeprĂŒft werden Merkmale wie Lesbarkeit, Wartbarkeit, VollstĂ€ndigkeit und Testbarkeit der Dokumente.
Wissensaustausch
Besonders manuelle Reviews fördern das gemeinsame VerstÀndnis im Team und verbessern die Arbeitsmethoden.
Unterschied zum dynamischen 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
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
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
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
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
FrĂŒhes Feedback
Effizienz
Wissensaustausch
PrÀvention
Keine LaufzeitprĂŒfung
AbhÀngigkeit von FÀhigkeiten
Last updated