Your locale preferences have been saved. We like to think that we have excellent support for English in pretalx, but if you encounter issues or errors, please contact us!

Integrationstests mit Szenarien für Container-Kompositionen
2024-04-06 , HS i2
Language: Deutsch

Hinter Web-Diensten steht häufig eine Zusammenstellung verschiedener Komponenten wie Webserver, Datenbanken oder selbst entwickelter Software. Der Vortrag zeigt wie das Backend der Videokonferenzsoftware OpenTalk in Integrationstests verschiedene Szenarien mit unterschliedlichen Container-Kompositionen implementiert.


Um ein Videokonferenzsystem auf Basis der Open-Source-Software OpenTalk zur Verfügung zu stellen, werden verschiedene Komponenten verwendet, die häufig in Containern laufen:

Für die eigenen Komponenten waren bereits in weiten Teilen Unit-Tests vorhanden, die von der CI ausgeführt werden. Integrationstests, welche das Backend auf die korrekte Abarbeitung von Web-Requests und Websocket-Verbindungen in verschiedenen Szenarien prüfen, fehlten jedoch weitgehend.

Beispiele für solche Szenarien sind:

  • Simples Setup mit einem OpenTalk Controller und den Beispiel-Accounts Alice, Bob, Charlie, Dave und Erin
  • Komplexeres Setup mit mehreren OpenTalk Controllern
  • Ausfallsszenarien (z.B. nachstellen dass RabbitMQ während des Betriebs ausfällt und wieder verfügbar wird)

Der Vortrag skizziert, wie solch ein Integrationstest aussieht. Es wird gezeigt wie Szenarien aufgebaut sind und welche Methoden wir verwenden um den Code les- und wartbar zu halten. Ansätze die wir wieder verworfen oder ersetzt haben, werden kurz angeschnitten, und was wir daraus gelernt haben. Über Technische und organisatorische Hürden, die wir überwinden mussten oder noch überwinden müssen, wird klarerweise auch berichtet.

Die gezeigten Code-Beispiele sind zum Großteil in Rust, da der Backend-Teil von OpenTalk in Rust geschrieben ist. Wenngleich Kenntnis dieser Sprache von Vorteil ist, sind die Beispiele in einer Form gehalten, die auch ohne spezifisches Vorwissen gut genug verständlich sein sollte.

See also: Vortragsfolien (815.9 KB)

Softwareentwickler seit Anfang der 2000er Jahre. Habe 2015 angefangen in Rust zu entwickeln und bin noch immer in der Honeymoon-Phase, diese hat mit keiner der anderen Sprachen so lange angehalten wie mit Rust. Fan freier Software, Mitbegründer und -organisator der seit 2001 aktiven VALUG Voralpen Linux User Group in Oberösterreich. Masterstudium Embedded Systems Design an der FH Hagenberg 2009 absolviert, fühle mich aber eher auf der Softwareseite zu Hause als auf der Hardwareseite.

Ich arbeite seit Mitte 2022 als Freelancer, seit Herbst 2022 sehr engagiert für OpenTalk, wo ich nach ca. 9 Monaten die technische Leitung des Backend-Teams übernommen habe.