/ BLOG

Fachliche Testdaten – auf Knopfdruck

Für systemintegrative Tests sind fachliche Testdaten in Partnersystemen unverzichtbar. Gerade bei agilen Entwicklungsmethoden treten die Bedarfe oftmals spontan auf. Dadurch werden wir als Entwickler vor eine größere Herausforderung gestellt, kurzfristig fachlich konsistente Testdatensätze zu erzeugen.

Ich persönlich entwickle für eine Bundesbehörde an einem System zur Ad-hoc-Erzeugung von Testdaten, das den internen Entwicklungsprozess der agilen Teams in den Fachverfahren unterstützt.

REST-Schnittstelle und GUI

Auf Basis von Angular bietet die Anwendung eine Single-Page-App, zum spontanen Erzeugen von Testdaten. Um es fachfremden Benutzern möglichst einfach zu gestalten in sich konsistente Daten zu erzeugen, gibt es für alle Fachdatentypen eine „Befüllen“-Funktion: diese füllt auf Knopfdruck sämtliche Felder zu einen korrekten Datensatz auf, berücksichtigt sich wiederholende Elemente und stellt fachliche Konsistenz sicher.

Für automatisierte Tests und wiederkehrende Aufgaben existiert parallel dazu eine REST-Schnittstelle, die direkt in die in der Behörde verwendeten Testframeworks integriert ist. Die Schnittstelle kann also mit eigenem Code oder auch durch bestehende Bausteine von Testautomatisierern verwendet werden.

Moderne Microservice-Architektur in Kubernetes

Die Anwendung selbst besteht aus mehreren Microservices, die mit Kubernetes in einer Private-Cloud betrieben werden. Der Datenaustausch zwischen den Microservices erfolgt stream-driven mittels Apache Kafka®, die zentrale Datenhaltung der Generierungsergebnisse erfolgt in Apache Cassandra™. Die einzelnen Microservices wurden mit Java erstellt und sind größtenteils Spring Boot Anwendungen. Die Schnittstellen zu den fachlichen Partnersystemen verwenden SOAP und REST.

Mit Agilität vom Prototyp zum Produkt

Gemeinsam im Scrum-Team haben wir die Anwendung konsequent vom ersten Proof-of-Concept über ein MVP (beschleunigte und einfache Methode zum Erlangen der nötigsten Kernfunktionen) hin zur finalen Umsetzung getrieben. Dabei haben wir unser Produkt konsequent evolutionär weiterentwickelt Durch den Einsatz von Clean Architecture konnten wir viele technologische Entscheidungen weit nach hinten verschieben.

Begonnen haben wir mit einem simplen „Modulithen“ ohne Datenbank und Messaging, um im Weiteren sukzessive andere Technologien hinzuzufügen und einzelne Programm-Module in Services auszugliedern. Auf diese Weise war es uns möglich, frühzeitig erste Versionen zu veröffentlichen, um im Laufe der darauffolgenden Sprints maximalen Nutzen für die Anwender zu liefern.

Parallel zur Entwicklung unserer Anwendung haben wir konsequent unsere Continuous-Integration-Pipeline erweitert: erst Continuous Delivery, später Continuous Deployment.

Einsparung von Arbeitszeit und fokussiertere Entwicklung

Der Vorteil für die Anwender liegt darin, dass in den originären Systemen der Verwaltung die Datenerzeugung nicht mehr auf manuelle und potentiell fehlerbehaftete Eingaben angewiesen ist. Dies führt zu maximaler Einsparung von Zeit….und Nerven.

 

Du möchtest mehr über den Bereich Public Service erfahren?

Klicke hier!

Thomas Weber