iX 7/2019
S. 68
Review
Container

Testen mit Docker und Testcontainers

Auf dem Prüfstand

Kevin Wittek

Container eignen sich gut für Integrationstests. Mit der Software Docker und der Java-Bibliothek Testcontainers stehen zwei Werkzeuge für den komfortablen Einsatz von Containern in Integrationstests zur Verfügung.

Viele Teams stolpern bei der Einführung von Microservices über Con­tainer und damit zwangsläufig über Docker. Container begegnen ihnen häufig auf dem Weg zu DevOps-Praktiken und sind hauptsächlich aus Operations- und ­Delivery-Sicht interessant – aber auch, wenn es darum geht, Entwicklungs- und Testumgebungen robuster und konsistenter zu gestalten. Deshalb lohnt sich ein Blick darauf, wie sich mithilfe von Con­tainern portable Integrationstestumgebungen definieren lassen. So erhalten Teams Integrationstests, die sie auf ihrem Entwicklungsrechner wie auf ihrem CI-Server ausführen können.

Die klassische Testpyramide ist vielen aus Studium und Literatur ein Begriff. Unten befindet sich ein großes Fundament aus Unit-Tests. Es folgt ein kleinerer Mittelteil aus Integrationstests und die Spitze besteht aus funktionalen End-to-End-Tests. Auch wenn diese Idee als Ideal­vorschlag dient, ist es erstaunlich, dass die eigentliche Definition und das Verständnis der einzelnen Schichten sehr unterschiedlich ausfällt. Für die Integrations­testebene kursieren oft andere Begriffe, darunter Komponententests oder Servicetests. Mit Akzeptanztests oder UI-Tests hingegen meinen viele funktionale Tests.

Kommentieren