Microservice architectures have emerged as a counter design to traditional monolithic applications.
While monoliths are deployed as single executable applications whose modules share the resources of
the underlying system, microservice architectures consist of a number of smaller units called
microservices. Ideally, these services are partitioned along the business functions they provide so that
they can be developed and executed independently. In the overarching architecture, the services
communicate via lightweight messages sent through well-defined APIs. In addition, the main
advantages of microservices are their speed of development, lower costs of change, evolutionary growth
of the system, and the ability to dynamically scale parts of the system by replicating only certain
capabilities rather than the entire architecture. However, this new architectural pattern requires an
adaptation of the applied quality assurance measures. Testing a distributed system is different from
testing a monolithic application and presents special challenges. In this master thesis, the strategy of
test-driven development is investigated and placed in the context of microservice architectures that are
developed according to established practices. Using an adapted version of the systems development
research methodology from the field of design science research, the thesis consists of a theoretical and
a practical part. First, preliminary knowledge about microservice development practices and common
software testing types is collected through a systematic literature review. Second, this knowledge is then
translated into the development of an extensive, usable artifact to propose a solution that enables testdriven microservice development on a local system so that the result of this work can be easily used and
comprehended by a wide audience with limited technical experience in this area. In conclusion, five
fundamental design principles for microservices are identified, including a focus on small services, a
domain-driven design, striving for manageable and low-complexity networks of services, avoiding
cyclic dependencies, and aiming for high connectivity performance. The types of tests integrated in the
artifact are integration tests, component tests, and contract tests. The described capabilities could be
automated using the artifact, which shows that a test-driven development approach for microservice
architectures on a local system is indeed feasible, even if there is still room for improvement.