Woher nehme ich nur meine Testinfrastruktur?
Ob Microservices oder externe Dienste – unsere Anwendungen müssen früher oder später mit Diensten sprechen, die wir nicht mocken möchten oder können. Tests für diese Szenarien sind umstritten und sehr abhängig vom Einsatzszenario, Entwicklungs- und Deploymentmodell. Angefangen bei der Datenbank, dem SMTP-Server, externen Diensten bis hin zum Microservice des anderen Teams.
Bei Tasktop ist es Teil unserer täglichen Arbeit, genau solche Integrationen zu entwickeln und zu testen. Wir möchten einige Einblicke geben, was es bedeutet, mit über 60 Drittanbietern zu arbeiten, deren APIs zu konsumieren und das für insgesamt über 300 verschiedene Versionen der Tools. Jeder Build bei Tasktop lässt über 300.000 Integrationstests laufen, die zusammen mehr als 2 Millionen HTTP-Requests an die Systeme absetzen.
Der Vortrag gibt einen Einblick, inwieweit man eine solche Infrastruktur für Integrationstests am besten skaliert, wie man mit Bibliotheken wie "Testcontainers" sehr schnell selbst eine ähnliche Infrastruktur aufbauen kann. Als Beispiel dienen im Detail Testcontainers und JUnit 5, wir werden jedoch auch Beispiele betrachten, die zeigen, wie man Testcontainers in anderen Umgebungen (Node, Go etc.) einsetzen kann.
Vorkenntnisse
* Grundsätzliches Verständnis von DevOps, Automatisierung, agile Vorgehensweisen.
* Grundsätzliches Verständnis von Qualitätssicherung.
* Grundsätzliches Verständnis von xUnit bzw JUnit.
Lernziele
* Einblicke, wie man Tests gegen externe Systeme entwickelt.
* Einblicke, wann es Sinn ergibt, gegen den Strom zu schwimmen (und nicht mockt).
* Testcontainers, Docker, Kubernetes, JUnit 4/5 sind nur einige technische Aspekte die wir beleuchten.