Michael Kutz
Quality Engineer at REWE digital, Conference Speaker about QA & Agile, Founder of Agile QA Cologne meetup, Freelance QA Consultant
Entropy Data
Was die Datenwelt von der Testpyramide lernen muss – und umgekehrt
Michael Kutz OOP 2027 Februar 2027
OOP 2027 · 02.–05.02.2027
● ● ● dashboard.beispiel-shop.de/umsatz
● Zuletzt aktualisiert: vor 2 Minuten
Umsatz heute
48.230 € ▲ 12 %
Bestellungen
1.284 ▲ 8 %
Ø Warenkorb
37,55 € ▲ 3 %
OOP 2027 · 02.–05.02.2027
● ● ● dashboard.beispiel-shop.de/umsatz
● Zuletzt aktualisiert: vor 21 Tagen
Umsatz heute
— keine Daten
Bestellungen
— keine Daten
Ø Warenkorb
— keine Daten
⚠ Query failed
column "order_total" does not exist
OOP 2027 · 02.–05.02.2027
Team Checkout
besitzt Service & Datenbank
order_total → total_amount
✅ Eigene Tests grün · deployed
Daten-Pipeline
liest die Tabelle – nachts um 3
⚠ Query scheitert – ohne Alarm
📊 Dashboard – leer
🤖 ML-Modell – veraltet
👥 Nachbarteam – blockiert
Tag 0 – deployed, alles grün
Tag 1–20 – niemand merkt etwas
Tag 21 – der Fachbereich ruft an
⚠ Kein Vertrag · kein Test · kein Alarm
OOP 2027 · 02.–05.02.2027
OOP 2027 · 02.–05.02.2027
Daten für Tests
→ Heute nicht unser Thema
≠
Tests für Daten
→ Darum geht es heute
OOP 2027 · 02.–05.02.2027
Zweck
Geschäftsprozesse ausführen
Schnittstelle
Schmale API – definierte Operationen
Typischer Zugriff
Ein Datensatz, aktueller Zustand
Die Tabelle ist …
Implementierungsdetail – gekapselt
Konsumenten
Andere Services & Frontends
vs.
Zweck
Fragen beantworten – auch die von morgen
Schnittstelle
Query-Interface – SQL, Topics, Files
Typischer Zugriff
Millionen Zeilen, Historie, Joins
Die Tabelle ist …
Die Schnittstelle selbst – bewusst veröffentlicht
Konsumenten
Analysten, Dashboards, ML, KI-Agenten
Das Schema ist die API des Datenprodukts – und jede Schnittstelle braucht einen Vertrag.
OOP 2027 · 02.–05.02.2027
Risk Storming: ein Workshop-Format aus dem agilen Testen – das Team diskutiert am Kartendeck (TestSphere), welche Qualitätsaspekte für sein Produkt die riskantesten sind. Eine der Karten heißt „Data“:
✓
Performance
✓
Security
✓
Usability
◆
Data
…
Für Datenprodukte fächert sich „Data“ auf in:
01
Schema-Stabilität
Spalten & Typen – bricht wie eine API
◆
02
Aktualität
Wann kam die letzte Lieferung?
◆
03
Vollständigkeit
Alle Zeilen da? Wie viel null ist okay?
◆
04
Validität
Wertebereiche, Formate, Plausibilität
◆
05
Konsistenz
Passen die Zahlen zusammen – auch produktübergreifend?
◆
06
Semantik
Netto oder brutto? Bedeutung ist Teil der Qualität
◆
Genau diese Karten schreibt der Data Contract fest – maschinenlesbar und testbar.
OOP 2027 · 02.–05.02.2027
Zwischen Services lösen wir das so: Der Konsument schreibt seine Erwartungen als Vertrag auf – und beide Pipelines testen dagegen. Schritt für Schritt:
Consumer-Pipeline · Team Dashboard
Build & Unit-Tests
wie immer
Contract-Test
gegen einen Mock des Providers
Vertrag publizieren
an den Pact Broker
can-i-deploy ✓
dann Deploy
Pact Broker
verwahrt alle Verträge
Provider-Pipeline · Team Checkout
Build & Unit-Tests
wie immer
Verträge verifizieren
gegen alle Konsumenten-Verträge
Ergebnis melden
zurück an den Broker
can-i-deploy ✓
dann Deploy
Der Vertrag verbindet beide Pipelines – keiner deployt, was den anderen bricht.
OOP 2027 · 02.–05.02.2027
Fast dieselben Pipelines – mit einem Unterschied: Der Contract entsteht nicht in der Pipeline, sondern vorab und gemeinsam. Die Pipelines testen nur noch dagegen.
Consumer-Pipeline · Dashboard-Team
Build & Tests
wie immer
datacontract test ✓
prüft die gelieferten Daten
Ergebnis melden
zurück an die Registry
Deploy ✓
nur bei grünem Contract
Vorab · gemeinsam
Contract vereinbaren
Producer & Consumer, contract-first
Contract-Registry
verwahrt alle Contracts
Producer-Pipeline · Datenprodukt-Team
Build & Transform
z. B. dbt run – wie immer
datacontract test ✓
Schema & Qualität aller Contracts
Ergebnis melden
zurück an die Registry
Deploy ✓
nur bei grünen Contracts
Bricht das Schema, stoppt die Pipeline – nicht das Dashboard.
OOP 2027 · 02.–05.02.2027
So weit trägt die Analogie.
Jetzt wird es ehrlich.
Drei Dinge funktionieren bei Daten grundlegend anders.
OOP 2027 · 02.–05.02.2027
01
Ein Service kennt seine Aufrufer – bei Pact meldet sich jeder Consumer mit seinem Vertrag an.
Daten werden abgefragt: Jeder mit Leserechten kann konsumieren – und niemand merkt es.
→ Konsumenten sichtbar machen ist Teil des Problems: Registry statt stiller SELECTs.
02
Ein kaputtes Deployment rollst du zurück – der nächste Request ist wieder korrekt.
Drei Wochen falsche Daten stecken in jedem Downstream-System, Report und trainierten Modell.
→ Prävention schlägt Heilung: Der Test vor dem Deployment ist alles.
03
Bei einer API prüft der Compiler den Typ – total: Number ist entweder da oder nicht.
total = 47.11 ist ein valider Float – aber netto oder brutto? Mit oder ohne Storno?
→ Bedeutung gehört in den Contract: Definitionen, Semantik, Geschäftsbegriffe.
OOP 2027 · 02.–05.02.2027
Kurze Einordnung des Themas in ein bis zwei Sätzen.
Kurze Einordnung des Themas in ein bis zwei Sätzen.
Kurze Einordnung des Themas in ein bis zwei Sätzen.
OOP 2027 · 02.–05.02.2027
Warum testen wir Daten nicht wie Code?
OOP 2027 · 02.–05.02.2027
DEMO
OOP 2027 · 02.–05.02.2027
Ihr wollt mehr wissen?
Schreibt mir
michael.kutz@entropy-data.com
Folien & mehr von mir
michael-kutz.de
Probiert Data Contracts aus
Auf www.entropy-data.com die 1-Click-Demo starten
By Michael Kutz
Viele Teams würden keinen Service ohne Tests ausliefern – doch dieselben Teams liefern täglich Daten an Dashboards, ML-Modelle und andere Teams: ohne Vertrag, ohne Test, ohne Garantie. Nach 15 Jahren in der Software-Qualität bin ich in die Datenwelt gewechselt und habe festgestellt: Sie steht dort, wo Testing vor 15 Jahren stand. Der Vortrag schlägt die Brücke – wie sich Consumer-Driven Contracts, Contract-Tests und Ports-and-Adapters-Denken auf Datenprodukte übertragen lassen, mit Data Contracts und ODCS. Und wo die Analogie bewusst bricht. Zielpublikum: Jeder, der mit Daten arbeitet oder von ihnen abhängtKeywords: Data Engineering, Contract Testing, ODCS Voraussetzungen: keine Level: Introductory Extended Abstract: Wir würden keinen Service ohne Tests in Produktion bringen. Wir kennen Consumer-Driven Contracts, wir mocken Ports und Adapter, wir versionieren APIs sorgfältig. Doch dieselben Teams liefern täglich Daten an nachgelagerte Konsumenten aus – an Dashboards, ML-Modelle, oder andere Teams – ganz ohne Vertrag, ohne Test, ohne Garantie. Bricht ein Schema, merkt es niemand, bis das Dashboard leer bleibt. Ich habe 15 Jahre lang an der Qualität von Software gearbeitet und bin dann in die Datenwelt gewechselt. Die ernüchternde Erkenntnis: Die Datenseite steht ungefähr dort, wo Software-Testing vor 15 Jahren stand. Die gute Nachricht: Wir müssen das Rad nicht neu erfinden.
Quality Engineer at REWE digital, Conference Speaker about QA & Agile, Founder of Agile QA Cologne meetup, Freelance QA Consultant