Microservices ermöglichen schnelle und unabhängige Entwicklung bei gleichbleibend hoher Qualität. Der höhere Verteilungsgrad einer solchen Architektur und die getrennten Lebenszyklen bedingen jedoch auch andere Herangehensweisen in puncto Test. Klassische Verbundtests zur Sicherstellung der Schnittstellenkompatibilität erzeugen dabei eine unnötige Kopplung und skalieren nicht. Dieser Vortrag zeigt auf, wie Consumer Driven Contract Testing skalierbare, isolierte API-Tests ermöglicht, und veranschaulicht dies in einer Live-Demo mit Spring Cloud Contract.
Zielpublikum: Architekten, Entwickler
Voraussetzungen: Java-Kenntnisse, REST APIs, JSON
Schwierigkeitsgrad: Fortgeschritten
Extended Abstract
Einer der wesentlichen architektonischen Vorteile der Entkopplung auch kleinerer Teile der Gesamtarchitektur wie zum Beispiel mit Microservices ist die hierdurch erreichte Flexibilität. Die verantwortlichen Teams sollen Änderungen weitestgehend unabhängig voneinander entwickeln und bereitstellen können. Nichtsdestotrotz müssen die verschiedenen Systeme am Ende korrekt miteinander kommunizieren, so dass entsprechende Integrationstests für die gemeinsam genutzten Schnittstellen notwendig sind.
Während in monolithischen Systemen hier oft der klassische Verbundtest angewendet wird, brauchen wir für hochverteilte Umgebungen aufgrund der Anzahl der Schnittstellen und der Dynamik Alternativen, die skalierbar sind. Der Vortrag zeigt auf, wie man diesem Problem mit der Methodik Consumer Driven Contract Testing (CDCT) begegnen kann. Der Vortrag adressiert dabei ebenso die positiven Aspekte von CDCT hinsichtlich des Schnittstellendesigns und der damit verbundenen Service Evolution über den Lebenszyklus hinweg.
Eine Live-Demo zeigt die Praxistauglichkeit von CDCT anhand des Java-Frameworks Spring Cloud Contract Verifier an einem Beispiel aus dem täglichen Leben auf.