Software-Qualitätssicherung: Statische & Dynamische Prüfung

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 2,98 KB

Statische und dynamische Prüfung

Die Inspektion von Software umfasst zwei grundlegende Ansätze:

  • Statische Prüfung: Analyse der statischen Systemdarstellungen zur Fehlererkennung, ohne das Programm auszuführen. Dies kann durch dokumentenbasierte Werkzeuge und Code-Analysen ergänzt werden.
  • Dynamische Prüfung (Testen): Überprüfung des Verhaltens durch Ausführung des Systems mit Testdaten, um die operative Leistung zu beobachten.

Test-Programm

Tests können das Vorhandensein von Mängeln aufzeigen, jedoch nicht deren Abwesenheit beweisen. Sie sind das wichtigste Verfahren zur Validierung nicht-funktionaler Anforderungen. Für eine vollständige Abdeckung der Verification & Validation (V&V) sollten statische und dynamische Prüfungen kombiniert werden.

Test-Typen

  • Validierungstest: Zeigt, dass die Software den Anforderungen entspricht. Ein erfolgreicher Test belegt die korrekte Umsetzung.
  • Fehlertest: Entwickelt, um Mängel im System zu entdecken. Ein erfolgreicher Test zeigt hier das Vorhandensein eines Fehlers.

Hinweis: Testen und Debuggen sind unterschiedliche Prozesse (Fehler finden → Reparatur → Retest).

Inspektionsprozess

Der Prozess umfasst: Planung → Eigenschaften → Meeting → Rework → Monitoring.

Kontrollverfahren

Das Team prüft den Code und zugehörige Dokumente vor der Inspektion. Entdeckte Fehler werden dokumentiert, behoben und ggf. erneut geprüft.

Kontroll-Checklisten

Checklisten helfen bei der Identifikation häufiger Fehler, die oft von der Programmiersprache abhängen (z. B. Schleifenbedingungen, Vektorgrenzen, Konstanten).

Systemtests

Systemtests basieren auf Spezifikationen, die die Integration mehrerer Komponenten umfassen:

  • Integrationstest: Das Testteam hat Zugriff auf den Quellcode.
  • Releasetest: Das System wird als „Black Box“ getestet, um das Vertrauen in die Anforderungserfüllung zu stärken.

Spezielle Testverfahren

  • Performance-Test: Prüfung von emergenten Eigenschaften wie Leistung und Zuverlässigkeit unter steigender Last.
  • Stress-Test: Belastung des Systems über die Designvorgaben hinaus, um das Verhalten bei Fehlern und katastrophalen Ausfällen zu prüfen.
  • White-Box-Test (Strukturtest): Zugriff auf den Quellcode; Ziel ist die Ausführung aller Programm-Anweisungen.
  • Black-Box-Test (Funktionaler Test): Kein Zugriff auf den Quellcode; Fokus auf Ein- und Ausgänge sowie Funktionalität.
  • Anforderungsbasierte Tests: Jede Anforderung wird durch eine spezifische Testreihe validiert.
  • Regressionstest: Sicherstellung, dass Änderungen an der Software keine bestehenden Funktionen beeinträchtigen.

Verwandte Einträge: