Line Coverage ist tot, die Jagd auf Mutationen ist eröffnet – und zwar im ganzen Stack

Softwareentwicklung mit Open Source
13.09.2018


9:10 – 17:00 Uhr
ETH Zürich
Max. Teilnehmer: 15

Einleitung

Eine Testabdeckung von ca. 75% auf Zeilenebene ist sehr gut und kann einem schon als Grundlage dienen, aber wie aussagekräftig ist diese Zahl?

Wir werden uns in diesem Workshop mit dem Begriff des „Mutation Testing“ beschäftigen und praktische Wege zum Einsatz zeigen. Wie ist die Abdeckung  zu interpretieren, was kann man erreichen? Wie ist die Integration in ein bestehendes Projekt möglich und was ist bei der Erstellung der Tests zu beachten?

Der Workshop wird anhand einer Vaadin Webanwendung die praktischen Möglichkeiten von Core Java bis hin zum Test einer UI aufzeigen. Wir werden uns ausschließlich innerhalb der Sprache Java bewegen.

Alle Erkenntnisse sind unabhängig von Vaadin sofort im praktischen Alltag einsetzbar.

Programm

  • Vorstellung (15min)
  • Theorie jUnit5 (15min)
  • praktisches Junit Testing, Core Java (30min)
  • Theorie Mutation Testing (30min)
  • praktisches MutationTesting – Core Java (30min)
  • praktischer Einstieg: WebApps auf Basis von Java (Vaadin) (30min)
  • Selenium, Webdriver, PageObject, Docker based Testenvironment (30 min)
  • praktisches FullStack – Testing und Tooling – (ohne DB) (60 min)
  • praktisches FullStack – Mutation Testing – (ohne DB) (2h)

Kursziel

Dank des Mutation-Testing können die Teilnehmenden mit wenig Aufwand qualitativ bessere Tests schreiben. Der Aufwand wird damit von dem Menschen auf die Maschine verlagert. Da dieses Verfahren exakt reproduzierbare Ergebnisse bei wiederholten Durchläufen liefert – im Gegenteil zu Verfahren basierend auf Zufallszahlengeneratoren wie Monkey- oder PropertyBased-Testing – kann es auch zur Validierung in kritischen Umfeldern eingesetzt werden.

Adressaten

EntwicklerInnen von Webanwendungen auf Basis von Java im industriellen Umfeld

Voraussetzungen

  • Kenntnisse in Java
  • Vorkenntnisse von Vaadin sind explizit nicht notwendig.
  • Erfahrungen aus dem Bereich Webanwendungen allgemein sind von Vorteil.

Infrastruktur

  • Laptop mit OpenJDK-11
  • Docker
  • IDE mit OpenJDK-11 umgehen
  • Maven 3.5.4

Referenten

Daniel Nordhoff-Vergien

DUENE e.V.


Daniel Nordhoff-Vergien ist Entwickler bei DUENE e.V. Dort entwickelt er Java Anwendungen für den Umgang mit Biodiversitätsdaten.

Sven Ruppert

Vaadin


Sven Ruppert ist seit 1996 bei Java, DEV_Champions bei Oracle, Developer Advocate bei Vaadin sowie Referent und hilft Entwicklern weltweit ihr Business zu erweitern.