Microservice-Architekturen haben sich als Gegenentwurf zu herkömmlichen monolithischen
Anwendungen herausgebildet. Während Monolithen als einzelne lauffähige Applikationen eingesetzt
werden, deren Module die Ressourcen des zugrunde liegenden Systems gemeinsam nutzen, bestehen
Microservice-Architekturen aus einer Reihe kleinerer Einheiten, die als Microservices bezeichnet
werden. Im Idealfall sind diese Services nach den von ihnen bereitgestellten Geschäftsfunktionen
aufgeteilt, so dass sie unabhängig entwickelt und ausgeführt werden können. In der übergeordneten
Architektur kommunizieren die Dienste über kompakte Nachrichten, die über wohldefinierte APIs
gesendet werden. Die Hauptvorteile von Microservices liegen in der schnellen Entwicklung, den
geringeren Kosten für Änderungen, dem evolutionären Wachstum des Systems und der Möglichkeit,
Teile des Systems dynamisch zu skalieren, indem nur bestimmte Funktionen und nicht die gesamte
Architektur repliziert werden müssen. Dieses neue Architekturmuster erfordert jedoch eine Anpassung
der angewandten Maßnahmen zur Qualitätssicherung. Das Testen eines dezentralisierten Systems
unterscheidet sich vom Testen einer monolithischen Anwendung und bringt besondere
Herausforderungen mit sich. In dieser Masterarbeit wird die Strategie eines testgetriebenen
Entwicklungsprozesses untersucht und in den Kontext von Microservice-Architekturen gestellt, die nach
etablierten Praktiken entwickelt werden. Unter Verwendung einer adaptierten Version der Systems
Development Research Methodology aus dem Bereich der Design Science, besteht die Arbeit aus einem
theoretischen und einem praktischen Teil. Zunächst wird durch eine systematische Literaturrecherche
Grundlagenwissen über Microservice-Entwicklungspraktiken und gängige Softwaretestarten
gesammelt. Anschließend wird dieses Wissen in die Entwicklung eines umfangreichen, nutzbaren
Artefakts umgesetzt, um eine Lösung vorzuschlagen, die eine testgetriebene Microservice-Entwicklung
auf einem lokalen System ermöglicht, so dass das Ergebnis dieser Arbeit von einem breiten Publikum
mit begrenzter technischer Erfahrung in diesem Bereich leicht genutzt und verstanden werden kann.
Zusammenfassend werden fünf grundlegende Designprinzipien für Microservices identifiziert, darunter
die Konzentration auf möglichst kleine Dienste, ein domänengetriebenes Design, das Streben nach
überschaubaren und wenig komplexen Netzwerken von Diensten, die Vermeidung zyklischer
Abhängigkeiten und das Streben nach einer hohen Verbindungsperformance. Die in das Artefakt
integrierten Testarten sind Integration Tests, Component Tests und Contract Tests. Die beschriebenen
Funktionalitäten konnten mit Hilfe des Artefakts automatisiert werden, was zeigt, dass ein
testgetriebener Entwicklungsansatz für Microservice-Architekturen auf einem lokalen System
realisierbar ist, wenngleich es noch Spielraum für Verbesserungen gibt.