Katalog
method#Qualitätssicherung#Zuverlässigkeit#Observability

Nicht-funktionales Testing

Methodischer Ansatz zur Planung und Durchführung von Tests für nicht-funktionale Anforderungen wie Performance, Skalierbarkeit, Sicherheit und Zuverlässigkeit.

Nicht-funktionales Testing ist eine strukturierte Methode zur Bewertung systemischer Eigenschaften wie Performance, Skalierbarkeit, Zuverlässigkeit, Sicherheit und Wartbarkeit.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Architektur
  • Fortgeschritten

Technischer Kontext

CI/CD-Pipelines (z. B. Jenkins, GitLab CI)Monitoring-Tools (z. B. Prometheus, Grafana)Lasttest-Tools (z. B. JMeter, k6)

Prinzipien & Ziele

Nicht-funktionale Anforderungen früh und explizit definierenMessbare Metriken statt vage Ziele verwendenAutomatisierung integrieren und Tests in CI/CD einbetten
Umsetzung
Unternehmen, Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Falsche Lastprofile führen zu irreführenden Ergebnissen
  • Übermäßiger Fokus auf einzelne Metriken vernachlässigt Gesamtverhalten
  • Testumgebungen mit Produktionsdaten bergen Compliance-Risiken
  • Tests mit Produktionsähnlichen Daten und Topologien ausführen
  • Szenarien regelmäßig wiederholen und Baselines pflegen
  • Tests in CI/CD und Monitoring-Pipelines integrieren

I/O & Ressourcen

  • Nicht-funktionale Anforderungen und Akzeptanzkriterien
  • Anforderungsprofile und Lastmodelle
  • Testumgebungen, Messinstrumente und Monitoring
  • Testberichte mit Metriken, Thresholds und Handlungsempfehlungen
  • Konkrete Optimierungs- und Capacity-Empfehlungen
  • Regressionstests und Baselines für Folge-Releases

Beschreibung

Nicht-funktionales Testing ist eine strukturierte Methode zur Bewertung systemischer Eigenschaften wie Performance, Skalierbarkeit, Zuverlässigkeit, Sicherheit und Wartbarkeit. Sie definiert Testszenarien, Umgebungen und Metriken zur Validierung nicht-funktionaler Anforderungen und unterstützt Architektur‑ sowie Betriebsentscheidungen. Es integriert CI/CD und Monitoring für kontinuierliche Validierung und Regressionskontrolle.

  • Frühe Erkennung von Performance- und Zuverlässigkeitsproblemen
  • Bessere Entscheidungsgrundlage für Architektur und Kapazität
  • Reduzierte Produktionsausfälle durch validierte Betriebsannahmen

  • Hoher Aufwand für realistische Testumgebungen
  • Ergebnisinterpretation erfordert Domänen- und Infrastrukturkenntnis
  • Nicht alle Aspekte lassen sich vollständig in Testumgebungen reproduzieren

  • Durchsatz (Requests/s)

    Misst die Anzahl erfolgreicher Anfragen pro Sekunde unter definierter Last.

  • 95. Perzentil Latenz

    Zeigt, wie lange die meisten Anfragen maximal warten müssen; wichtig für SLAs.

  • Fehlerrate

    Anteil fehlerhafter oder abgewiesener Anfragen während Tests.

Skalierungstest einer Zahlungs-API

Lasttests identifizierten DB-Contention; Sharding und Connection-Pooling verbesserten Durchsatz.

Resilienzübung nach Cloud-Migration

Chaos-Tests zeigten fehlende Timeouts; automatische Circuit-Breaker-Integration reduzierte Ausfallwirkung.

Performance-Regression bei Release

Kontinuierliche Performance-Tests entdeckten Regression; Hotfix und Optimierung der Cache-Strategie lösten das Problem.

1

Nicht-funktionale Anforderungen erfassen und priorisieren

2

Testziele, Metriken und Akzeptanzkriterien definieren

3

Repräsentative Lastprofile und Szenarien erstellen

4

Tests automatisieren und in CI/CD integrieren

5

Ergebnisse analysieren, Maßnahmen ableiten und Baselines aktualisieren

⚠️ Technische Schulden & Engpässe

  • Ungeprüfte Legacy-Komponenten ohne Leistungsprofile
  • Fehlende automatisierte Tests für kritische Pfade
  • Veraltete Baselines, die reale Last entfernt widerspiegeln
Datenbank-ContentionNetzwerk-LatenzThread- und Connection-Pooling
  • Performance-Engineers ignorieren funktionale Änderungen und analysieren nur Rohdaten
  • Tests werden nur in kleinen, nicht-repräsentativen Umgebungen ausgeführt
  • Ergebnisse werden veröffentlicht ohne konkrete Maßnahmen oder Verantwortlichkeiten
  • Falsche Annahmen über Nutzerverhalten bei Lastmodellierung
  • Unzureichende Isolation von Test- und Produktionsumgebungen
  • Mangelnde Berücksichtigung externer Integrationen und Drittanbieter
Kenntnisse in Last- und PerformancetestsVerständnis von Infrastruktur, Netzwerken und DatenbankenFähigkeit zur Analyse und Interpretation von Metriken
Performance-Anforderungen der GeschäftsprozesseVerfügbarkeits- und SLA-ZieleSicherheits- und Compliance-Anforderungen
  • Verfügbarkeit realistischer Testdaten
  • Begrenzte Testinfrastruktur und Kosten
  • Zeitliche Begrenzungen im Release-Zyklus