Katalog
method#Qualitätssicherung#Zuverlässigkeit#DevOps#Softwaretechnik

Funktionales Testen

Methodik zur Validierung, dass Software die spezifizierten funktionalen Anforderungen erfüllt, durch Ausführung von Funktionen und End-to-End-Szenarien.

Funktionales Testen überprüft, ob Software die spezifizierten Funktionsanforderungen erfüllt, indem einzelne Funktionen und End-to-End-Szenarien ausgeführt werden.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Technisch
  • Design
  • Fortgeschritten

Technischer Kontext

Continuous Integration Systeme (z. B. Jenkins, GitHub Actions)Testframeworks und Bibliotheken (z. B. Selenium, JUnit)Issue-Tracker und Testmanagement-Tools

Prinzipien & Ziele

Testfokus auf Spezifikation und beobachtbares Verhalten.Automatisiere repetitiven Testumfang, behalte explorative Prüfungen bei.Unterscheide funktionale Tests von Implementierungs- und Performance-Tests.
Umsetzung
Team, Domäne

Use Cases & Szenarien

Kompromisse

  • Flaky Tests verursachen Vertrauensverlust in Test-Suiten.
  • Unzureichende Abdeckung kann kritische Fehler übersehen.
  • Zu enge Bindung an konkrete UI-Implementierung erhöht Wartungskosten.
  • Schreibe wartbare, isolierte automatisierte Tests mit klaren Assertions.
  • Priorisiere Testfälle nach Risiko und Kundennutzen.
  • Nutze stabile Testdaten und Umfeld-Isolation zur Reduzierung von Flakiness.

I/O & Ressourcen

  • Spezifikationen und Akzeptanzkriterien
  • Zu testende Build-Artefakte
  • Testdaten und Testumgebungen
  • Testprotokolle und Berichte
  • Fehler- und Ticketlisten
  • Abnahmeentscheidung oder Release-Freigabe

Beschreibung

Funktionales Testen überprüft, ob Software die spezifizierten Funktionsanforderungen erfüllt, indem einzelne Funktionen und End-to-End-Szenarien ausgeführt werden. Es fokussiert auf Eingaben, erwartete Ausgaben und Systemverhalten ohne interne Implementierungsdetails. Typische Techniken umfassen manuelle Tests, automatisierte Tests mit Testframeworks sowie testgetriebene Ansätze zur frühzeitigen Fehlererkennung.

  • Frühe Validierung von Features gegen Anforderungen.
  • Reduzierung von Regressionen durch automatisierte Suiten.
  • Verbesserte Akzeptanzsicherheit für Stakeholder und Produktbesitzer.

  • Deckt keine internen Implementierungsfehler ab.
  • Aufwändiger Testdaten- und Umgebungsaufbau bei Integrationstests.
  • Automatisierung erfordert initialen Entwicklungsaufwand.

  • Testabdeckung (Funktional)

    Prozentualer Anteil der spezifizierten Funktionen, die durch Tests abgedeckt sind.

  • Fehlerdichte nach Release

    Anzahl gefundener Fehler pro Release im Verhältnis zur getesteten Funktionalität.

  • Durchlaufzeit der Test-Suite

    Zeit, die das vollständige Ausführen der funktionalen Test-Suite benötigt.

E-Commerce Checkout-Tests

Funktionale Tests verifizieren gesamte Kaufabfolge inklusive Rabattlogik und Zahlungsabwicklung.

API-Funktionsprüfung eines Zahlungsdienstes

Automatisierte Tests prüfen API-Endpunkte auf erwartete Antworten und Fehlerbehandlung.

Formularvalidierung im Kundenportal

Manuelle und automatisierte Tests validieren Eingaben, Fehlermeldungen und erfolgreiche Speicherung.

1

Anforderungen und Akzeptanzkriterien identifizieren

2

Testfälle und Szenarien ableiten und priorisieren

3

Testumgebung und Testdaten aufbauen

4

Automatisierungspotenzial analysieren und Suiten erstellen

5

Tests in CI/CD integrieren und Laufzeiten optimieren

6

Ergebnisse auswerten, Regressionen nachverfolgen und verbessern

⚠️ Technische Schulden & Engpässe

  • Veraltete Testfälle, die nicht an Codeänderungen angepasst wurden.
  • Fehlende Modularisierung von Testautomatisierungscode.
  • Unzureichende Testdatenverwaltung und -versionierung.
Unzureichende Testdaten und DatenmaskierungInstabile TestumgebungenFlaky Tests durch Zeitabhängigkeiten
  • Nur funktionale Tests durchführen und Integrationstests vernachlässigen.
  • Automatisierte Tests ohne Assertions für kritische Flows.
  • Test-Suiten als Blocker ohne Differenzierung nach Risiko einsetzen.
  • Falsche Priorisierung führt zu langen Release-Zyklen.
  • Zu enge Kopplung an Testdaten erschwert Wiederverwendung.
  • Unklare Akzeptanzkriterien führen zu unbestimmten Testzielen.
Fähigkeit, Testfälle aus Anforderungen abzuleitenKenntnisse in Testautomatisierung und FrameworksErfahrung mit CI/CD-Integration von Tests
Testbarkeit der KomponentenVerfügbarkeit stabiler TestumgebungenSchnelle Rückkopplung via CI/CD
  • Zeitdruck vor Releases begrenzt Testumfang
  • Zugriffsbeschränkungen auf Produktionsdaten
  • Budget für Testautomatisierung ist begrenzt