Klassische Integration Tests gegen eine instabile Staging-Umgebung sind teuer, langsam und oft unklar in der Fehlerursache.
Wenn ein Integration Test fehlschlaegt, ist unklar, ob das am eigenen Code liegt oder an der Staging-Umgebung selbst, die oft instabil und teuer im Betrieb ist.
Contract Testing als Alternative
Beim Consumer-Driven Contract Testing definiert der API-Consumer, welche Requests er stellt und welche Responses er erwartet. Diese Vertraege werden mit dem Provider geteilt, der verifiziert, dass er sie erfuellt, ohne dass Consumer und Provider gleichzeitig laufen muessen. Das Standardwerkzeug dafuer ist Pact, Open Source und fuer viele Sprachen verfuegbar.
Wie Pact funktioniert
Der Consumer schreibt Tests, die die API aufrufen und Erwartungen definieren, daraus generiert Pact eine JSON-Datei. Diese wird ueber einen Pact Broker geteilt. Der Provider laedt die Datei und verifiziert, dass sein API die Vertraege erfuellt. Fuehrt der Provider einen Breaking Change ein, schlaegt die Verifikation an, bevor ueberhaupt etwas in Staging deployt wird.
Wann sich Contract Testing besonders lohnt
Bei mehreren Teams, die unabhaengig an eigenen Services entwickeln, in Microservices-Architekturen, oder wenn Staging-Umgebungen selbst zum Flaschenhals geworden sind.
Checkliste: Pact oder ein aehnliches Werkzeug evaluiert, Consumer-seitige Tests fuer kritische Integrationen, Pact Broker eingerichtet, Provider-Verifikation in CI integriert, Breaking-Change-Alert konfiguriert.
Ein Beispiel aus der Praxis
Zwei Teams, die unabhaengig voneinander an einem Frontend und dem zugehoerigen Backend arbeiteten, stellten erst kurz vor dem geplanten Release fest, dass sich die Struktur einer Antwort in der Zwischenzeit veraendert hatte. Die anschliessende Fehlersuche in der instabilen Staging-Umgebung kostete wertvolle Tage kurz vor dem Termin. Nach der Einfuehrung von Contract Tests schlug ein aehnlicher Fall künftig sofort in der CI-Pipeline des Backend-Teams an, lange bevor er ueberhaupt in Staging haette auffallen koennen.
Contract Testing in euer Projekt einfuehren? markom.digital hilft bei der Einfuehrung, von der Tool-Auswahl bis zur CI-Integration.