Integration Testing done right

Heutzutage läuft eine Software nicht für sich alleine, sondern agiert mit Anderen. Die Kommunikation erfolgt meist über verschiedene Protokolle, sprich über verschiedene Infrastrukturkomponenten. Gerade beim Testen stellt sich die Frage, wie der Entwickler Tests so schreiben kann, dass sie von einem bestimmten Infrastruktur-Setup unabhängig sind. Meistens gelingt es nicht und dann wird dieser Teil der Software erst spät bei den End-2-End-Tests geprüft.

Doch gerade mit Microservices und dem Paradigma "Wenn etwas schiefläuft, dann so schnell wie möglich" möchte der Entwickler schon zu einem früheren Testzeitpunkt, zum Beispiel bei Entwicklertests, erfahren, wenn bei diesem Teil der Software etwas schiefläuft. Zudem macht die Infrastruktur nicht beim Anwendungscode halt. Mittlerweile wird die Infrastruktur immer mehr mithilfe von Code (Provisionierungsskripte, Dockerfiles, (Shell-) Skripte etc. ) beschrieben und automatisiert. Auch bei diesem Code möchte der Entwickler sicher gehen können, dass er so funktioniert, wie erwartet.

Vorkenntnisse

Java-Kenntnisse sind hilfreich.

Lernziele

Dieser Vortrag zeigt anhand einer Java-Anwendung, wie man mithilfe von Third Party Librarys die Infrastruktur in den Tests der Anwendung einbinden kann ohne sich gleich von einer bestimmten Infrastruktur abhängig zu machen. Darüber hinaus, wird darauf eingegangen wie die Qualität des Infrastruktur-Codes gesichert werden kann.

 

Agenda

ab 8.30 Uhr Registrierung und Begrüßungskaffee

9.30 Uhr Beginn

Intro

Machine Learning

  • Was ist Machine Learning?
  • Der typische ML Workflow
  • Was sind neuronale Netze?
  • Jupyter Lab mit Python
  • Eine Einführung in TensorFlow
  • Keras als High-Level API für TensorFlow

Praxisteil: Deep Learning Modelle mit Keras

  • Datengeneratoren
  • Datasets explorativ analysieren
  • Hold-Out vs. Cross Validation

11.00 - 11.15 Uhr: Kaffeepause

Praxisteil: Deep Learning Modelle mit Keras

  • Feed-Forward Netzarchitektur
  • Convolutional Neural Networks als Deep Learning Ansatz
  • Evaluation und Visualisierung des Modells

12.30 - 13.30 Uhr: Mittagspause

Pipelines mit Luigi

  • Anforderungen an produktive Modelle
  • Übersicht über Luigi und dessen Module
  • Bau eines Beispiel-Workflows

Praxisteil: Den Keras-Workflow mit Luigi implementieren

  • Anforderungen an produktive Modelle
  • Übersicht über Luigi und dessen Module
  • Bau eines Beispiel-Workflows

15.30 - 15.45 Uhr: Kaffeepause

Praxisteil: TensorFlow-Serving

  • Übersicht über TensorFlow-Serving
  • Ladestrategien konfigurieren
  • Deployment des Modells

ca. 17.00 Uhr: Ende

 

Referent

 

Sandra Parsick Sandra Parsick ist als freiberufliche Softwareentwicklerin und Consultant im Java-Umfeld tätig. Seit 2008 beschäftigt sie sich mit agiler Softwareentwicklung in verschiedenen Rollen. Ihre Schwerpunkte liegen im Bereich der Java-Enterprise-Anwendungen, agilen Methoden, Software Craftsmanship und in der Automatisierung von Softwareentwicklungsprozessen. In ihrer Freizeit engagiert sie sich in der Softwerkskammer Ruhrgebiet.

Gold-Sponsor

Deloitte.

Silber-Sponsoren

codecentric
ISO-Gruppe

Herbstcampus-Newsletter

Sie möchten über den Herbstcampus
auf dem Laufenden gehalten werden?

 

Anmelden