Ein Werkzeug zur Testzustands-Injektion
Serverseitige Zustandsinjektion, mit der QA und Automatisierung direkt zu jedem Schritt eines langen Ablaufs springen und die Vorbereitung von Regressionstests von vielen Minuten auf unter eine verkürzen.
- Stack
- TypeScript · Playwright · BFF · Test database
Das Problem
Um einen Fehler in Schritt 5 eines langen Ablaufs zu prüfen, musste man zuerst die Schritte 1 bis 4 von Hand durchlaufen: gültige Angaben, Uploads, Prüfungen. Jedes Mal, für jeden Pull Request und jeden automatisierten Lauf.
Der Ansatz
Das Werkzeug lässt Testende oder ein Skript die App direkt in dem Zustand öffnen, den sie brauchen.
- Ein Playwright-Skript oder eine QA-Person lädt die Seite mit einem sicheren Test-Token, zum Beispiel
?state=step_4_ready. - Das Frontend erkennt das Token bei der Hydration und reicht es in einem Header an den BFF weiter.
- Der BFF prüft, dass die Umgebung strikt nicht produktiv ist, und legt dann die Sitzung der Nutzenden in der Testdatenbank an: frühere Schritte abgeschlossen, aktiver Zeiger auf Schritt 4.
- Der BFF liefert ein echtes Sitzungs-Token zurück, und die Oberfläche zeigt sofort Schritt 4.
Ich habe serverseitige Injektion dem Mocken von localStorage im Client vorgezogen. Moderne Apps validieren Sitzungen im Backend, deshalb driftet ein reiner Client-Mock von der Realität ab und erzeugt Tests, die hier bestehen und in der Produktion scheitern.
Das Ergebnis
Die Vorbereitung von Regressionstests sank von 10–20 Minuten pro Zyklus auf unter eine Minute. Bei vielen Pull-Request-Läufen und Automatisierungs-Suites pro Woche gab das Hunderte Engineering-Stunden pro Quartal zurück.