Katalog
concept#Software-Engineering#Produktmanagement#Delivery#Qualitätssicherung

Specification by Example

Eine kollaborative Methode, Anforderungen durch konkrete Beispiele zu spezifizieren und als automatisierbare Akzeptanztests zu formulieren.

Specification by Example ist eine kollaborative Technik zur Anforderungsdefinition durch konkrete Beispiele, die zu akkuraten, automatisierbaren Akzeptanztests werden.
Etabliert
Mittel

Klassifikation

  • Mittel
  • Organisatorisch
  • Organisation
  • Fortgeschritten

Technischer Kontext

CI/CD (z. B. Jenkins, GitHub Actions)BDD-Tools (z. B. Cucumber, SpecFlow)ALM/Issue-Tracker (z. B. Jira)

Prinzipien & Ziele

Beispiele ersetzen unklare textliche Anforderungen.Living Documentation muss synchron zu Implementierung bleiben.Tests sind lebendige Kommunikationsmittel zwischen Domäne und Technik.
Umsetzung
Domäne, Team

Use Cases & Szenarien

Kompromisse

  • Beispiele werden von Implementierung losgelöst und veralten.
  • Übermäßige Detailtiefe führt zu fragilem Testcode.
  • Falsche Moderation im Workshop erzeugt irrelevante Szenarien.
  • Fokus auf geschäftsrelevante Beispiele statt technischer Details.
  • Keep examples readable und für Fachleser verständlich halten.
  • Isoliere Automatisierungslogik vom Domänen‑Beispieltext.

I/O & Ressourcen

  • Geschäftsziele und Nutzerbedürfnisse
  • Vorläufige User Stories oder Features
  • Fachliche Experten und Entwickler im Workshop
  • Explizite Beispiele mit Akzeptanzkriterien
  • Automatisierte Akzeptanztests in CI
  • Living Documentation als Referenz

Beschreibung

Specification by Example ist eine kollaborative Technik zur Anforderungsdefinition durch konkrete Beispiele, die zu akkuraten, automatisierbaren Akzeptanztests werden. Teams formulieren realistische Szenarien, klären Missverständnisse und erzeugen ausführbare Spezifikationen. Es fördert gemeinsame Domänenmodelle und reduziert Nacharbeit.

  • Verbesserte Kommunikation zwischen Fachseite und Entwicklung.
  • Frühzeitiges, reproduzierbares Feedback durch automatisierte Akzeptanztests.
  • Reduzierte Implementierungsfehler und weniger Nacharbeit.

  • Erfordert Disziplin zur Pflege und Synchronisation der Beispiele.
  • Hoher initialer Aufwand bei komplexen Domänen.
  • Nicht alle nicht‑funktionalen Anforderungen lassen sich über Beispiele abbilden.

  • Akzeptanz-Test-Abdeckung

    Prozentualer Anteil kritischer Anforderungsbeispiele, die automatisiert ausgeführt werden.

  • Zykluszeit Anforderungen→Test

    Zeit vom Erstentwurf eines Beispiels bis zur erfolgreichen Testausführung in CI.

  • Fehlerreproduzierbarkeit

    Anteil gemeldeter Fehler, die durch ein Beispiel reproduziert werden können.

E-Commerce Checkout-Szenarien

Beispiele beschreiben Zahlungsoptionen, Mehrfachartikel und Rabatte als ausführbare Tests.

Buchungsstrecke für Reiseplattform

Szenarien modellieren Sitzplatzverfügbarkeit, Stornofälle und Preisregeln.

Benutzerregistrierung mit Validierungsregeln

Konkrete Beispiele klären Feldvalidierung, E‑Mail‑Verifikation und Fehlerverhalten.

1

Stakeholder und Entwickler für Beispiel-Workshops zusammenbringen.

2

Kernszenarien identifizieren und in Given‑When‑Then formulieren.

3

Beispiele als testspezifische Artefakte in ein Repository überführen.

4

Automatisierungs-Adapter implementieren, um Beispiele ausführbar zu machen.

5

CI-Pipeline konfigurieren zur Ausführung der Akzeptanz-Suite.

6

Regelmäßige Reviews und Pflegeintervalle für Living Documentation etablieren.

⚠️ Technische Schulden & Engpässe

  • Große Sammlung veralteter Beispiele ohne Cleanup‑Plan.
  • Ad-hoc Testadaptionen, die nicht wiederverwendbar sind.
  • Monolithische Test‑Suites, die lange Laufzeiten erzwingen.
fehlende Domänenkompetenzunreife Testinfrastrukturschlechte Moderation von Workshops
  • Beispiele nutzen, um Details von Implementierungen zu dokumentieren statt Anforderungen.
  • Jedes kleinste Verhalten als eigenes Beispiel aufzuschreiben.
  • Beispiele als einzige Quelle für rechtliche Anforderungen verwenden.
  • Unklare Verantwortlichkeit für Pflege der Beispiele.
  • Zu enge Kopplung der Tests an fragile UI-Elemente.
  • Fehlende Metriken zur Messung des Nutzens.
Domänenwissen und fachliche ModellierungModeration von Workshops und BeispielerstellungTestautomatisierung und CI-Integration
Nachvollziehbarkeit zwischen Anforderungen und ImplementierungTestautomatisierung und CI‑IntegrationDomänengetriebene Modellierung und gemeinsame Sprache
  • Zeitbudget für Workshops ist begrenzt.
  • Legacy‑Systeme erschweren automatisierte Verifikation.
  • Rechtliche Anforderungen können Beispielgestaltung einschränken.