Katalog
concept#Qualitätssicherung#Softwareentwicklung#Beobachtbarkeit#Zuverlässigkeit

Software Testing

Systematische Überprüfung von Software durch manuelle und automatisierte Tests zur Erkennung von Fehlern und Sicherstellung der Qualität.

Software Testing ist die systematische Überprüfung von Software, um Fehler zu finden und Qualität sicherzustellen.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Design
  • Fortgeschritten

Technischer Kontext

CI/CD-Server (z. B. Jenkins, GitHub Actions)Testmanagement-Tools (z. B. TestRail)Issue-Tracker (z. B. Jira)

Prinzipien & Ziele

Frühzeitiges und häufiges Testen reduziert Kosten und Risiken.Automatisierung priorisieren, wo Wiederholbarkeit und Geschwindigkeit zählen.Tests sollten unabhängig, deterministisch und reproduzierbar sein.
Umsetzung
Team, Domäne, Unternehmen

Use Cases & Szenarien

Kompromisse

  • Flakiness führt zu Vertrauensverlust in Test-Suites.
  • Unzureichende Tests lassen kritische Fehler unentdeckt.
  • Overhead durch zu viele langsame Tests verlangsamt Entwicklung.
  • Testpyramide beachten: mehr Unit-Tests, weniger UI-Tests.
  • Tests unabhängig und deterministisch halten.
  • Wartbarkeit durch klare Testdatenstrategien sichern.

I/O & Ressourcen

  • Anforderungen und Akzeptanzkriterien
  • Zugänglicher Code und Build-Artefakte
  • Testumgebung und Testdaten
  • Testberichte und Metriken
  • Fehler- und Risikoanalyse
  • Freigabeentscheidung oder Rückweisung

Beschreibung

Software Testing ist die systematische Überprüfung von Software, um Fehler zu finden und Qualität sicherzustellen. Es umfasst manuelle und automatisierte Testformen, Testplanung, Ausführung und Bewertung von Ergebnissen. Ziel ist Risikoreduktion und höhere Zuverlässigkeit in Entwicklung und Betrieb. Es ist fundamentaler Bestandteil moderner Softwareentwicklung.

  • Früherkennung von Fehlern reduziert Kosten für Behebung.
  • Verbesserte Zuverlässigkeit und Stabilität des Systems.
  • Schnelleres Feedback für Entwickler und Produktentscheidungen.

  • Vollständige Abdeckung ist selten erreichbar; Residualrisiken bleiben.
  • Automatisierung erfordert initialen Aufwand und Pflegekosten.
  • Performance-Tests benötigen realistische Umgebungen und Daten.

  • Testabdeckung (Coverage)

    Anteil des Codes / Anforderungen, der durch Tests abgedeckt ist, zur Abschätzung von Risiko.

  • Fehlerdichte

    Anzahl gefundener Fehler pro Lokation/Zeiteinheit, zur Priorisierung von Qualitätsaktivitäten.

  • Mean Time To Detect (MTTD)

    Durchschnittliche Zeit bis zur Entdeckung eines Fehlers nach dessen Einführung.

Unit-Tests in Microservices

Microservice-Teams nutzen Unit- und Komponententests, um schnelle Feedback-Schleifen sicherzustellen.

UI-Automatisierung mit Selenium

Selenium-Suites übernehmen End-to-End-Checks für kritische Benutzerflüsse.

Lasttests vor Skalierung

Lasttests identifizieren Engpässe und informieren Kapazitätsentscheidungen.

1

Teststrategie und Scope definieren

2

Testfälle entwerfen und priorisieren

3

Automatisierung umsetzen und in CI integrieren

4

Regelmäßige Ausführung, Monitoring und Wartung der Tests

⚠️ Technische Schulden & Engpässe

  • Legacy-Tests ohne Struktur und hohen Wartungsbedarf
  • Fehlende Testinfrastruktur für reproduzierbare Lasttests
  • Manuelle Prüfungen statt automatisierter Checks
TestdatenbereitstellungInstabile TestumgebungenFlaky-Tests
  • Test-Suites als Sicherheitsnetz statt Qualität von vornherein gestalten
  • Automatisierung ohne Wartungsbudget einführen
  • Metriken wie Coverage als alleiniges Qualitätsziel verwenden
  • Blindes Vertrauen in grüne Builds ohne Ergebnisprüfung
  • Unzureichende Testdaten führen zu falschem Sicherheitsgefühl
  • Tests werden veraltet und liefern keine Aussagekraft mehr
Testentwurf und TestfallformulierungScripting/Automation (z. B. Python, Java)Kenntnis von CI/CD und Testinfrastrukturen
Schnelle Feedback-ZyklenAutomatisierbarkeit und WiederholbarkeitSkalierbarkeit der Testinfrastruktur
  • Zeitdruck in Releases
  • Begrenzte Ressourcen für Testautomatisierung
  • Legacy-Systeme ohne Test-APIs