Glossar

TDD-Begriffe

Begriff Bedeutung
SUT (System Under Test) Die konkrete Klasse/Komponente, die ein Test prüft.
Fixture Der bekannte Ausgangszustand, den ein Test vor der Ausführung herstellt ("Given").
Test Double Oberbegriff für jedes Ersatzobjekt eines echten Kollaborateurs im Test (Dummy, Stub, Fake, Spy, Mock — siehe Einführung in TDD).
Triangulation Einen zweiten Testfall mit anderen Werten hinzufügen, um eine zu simple (attrappenhafte) Implementierung zur echten Logik zu zwingen.
Baby Steps Sehr kleine Red-Green-Refactor-Zyklen, jeweils nur eine minimale Verhaltensänderung.
Transformation Priority Premise (TPP) Heuristik von Robert C. Martin: einfachere Code-Transformationen vor komplexeren bevorzugen.
Sociable Test Unit-Test, der echte (nicht attrappierte) Kollaborateure einbindet, aber ohne externe Infrastruktur.
Solitary Test Unit-Test, bei dem alle Kollaborateure Test-Doubles sind.
Golden Master / Characterization Test Ein Test, der das aktuelle (nicht notwendigerweise korrekte) Verhalten von Legacy-Code als Referenz festhält, bevor man ihn refactort — in diesem Projekt nicht verwendet, da kein Legacy-Code vorliegt.
Outside-In (London-Schule) TDD-Strategie: von außen (z. B. REST-Endpoint) nach innen entwickeln, zunächst alles darunter mocken.
Inside-Out (Chicago/Classic-Schule) TDD-Strategie: vom fachlichen Kern nach außen entwickeln.
ATDD (Acceptance-Test-Driven Development) Abnahmekriterien eines Use-Case als ausführbaren Test formulieren, bevor die Implementierung beginnt.

Domain-/Architektur-Begriffe

Begriff Bedeutung
Bounded Context Fachlich klar abgegrenzter Teilbereich mit eigenem Sprachgebrauch und eigenem Datenmodell (hier: je ein Domain-Service).
Aggregate Konsistenzgrenze im Sinne von DDD; eine Gruppe von Objekten, die als Einheit persistiert und deren Invarianten gemeinsam durchgesetzt werden (z. B. Account).
Value Object Unveränderliches Objekt ohne eigene Identität, definiert durch seine Werte (z. B. Money, Iban).
Domain Event Fachliches Ereignis, das ein Aggregate innerhalb eines Anwendungsfalls auslöst (modul-intern).
Integration Event Stabiler, versionierter Ereignis-Vertrag zwischen Services (Kafka-Payload, siehe common-events).
Port Von der Domain-/Anwendungsschicht definiertes Interface, das eine Infrastrukturabhängigkeit abstrahiert (z. B. AccountRepository).
Adapter Konkrete Implementierung eines Ports gegen eine reale Technologie (z. B. JpaAccountRepositoryAdapter).
Saga Ablauf, der mehrere lokale Transaktionen über Service-Grenzen hinweg koordiniert, mit expliziten Kompensationsschritten statt einer verteilten Transaktion.
Idempotenz Eigenschaft einer Operation, bei mehrfacher identischer Ausführung dasselbe Ergebnis wie bei einmaliger Ausführung zu liefern — wichtig bei Kafka-Konsumenten (mindestens-einmal-Zustellung).
Fitness Function Ausführbarer, automatisierter Test einer nicht-funktionalen/architektonischen Eigenschaft (hier: ArchUnit-Regeln).
Resource Server In OAuth2-Terminologie: der Dienst, der geschützte Ressourcen (hier: REST-Endpunkte) bereitstellt und eingehende Access Tokens (JWTs) selbst prüft, statt sich auf ein Gateway zu verlassen (siehe ADR-0007).
RBAC (Role-Based Access Control) Autorisierung anhand von Rollen statt einzelner Berechtigungen pro Nutzer - hier: @PreAuthorize("hasRole(...)") auf einem Controller-Endpunkt, Rolle kommt aus dem JWT (siehe ADR-0007, Nachtrag RBAC). Zu unterscheiden von Authentifizierung ("wer bist du") - RBAC beantwortet "darfst du das".
Spring-Boot-Auto-Configuration Ein Mechanismus, über den eine Bibliothek Spring-Beans automatisch für jede Anwendung bereitstellt, die sie als Abhängigkeit einbindet (META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports) - zuverlässiger als Component-Scan, insbesondere in Test-Slices wie @WebMvcTest (siehe common-security, ADR-0007).
⌂ Cockpit