Talks und Tutorien

Bed-Con 2017
Folien

Build Secure

Was können und sollen Entwickler beim Bauen ihrer Anwendung beachten, damit sie nicht schon mit bekannten Sicherheitslücken ausgeliefert wird? Wie passen Security-Prüfungen und schnelle Release-Zyklen zusammen? Wie können Applikationen geprüft werden, die mehr als ein paar Stunden ohne Aktualisierung bleiben?

In dem Vortrag werden Möglichkeiten zur automatischen Prüfung für Java- und JavaScript-Anwendungen sowie deren Grenzen vorgestellt. DevOps? Auch Container und VMs brauchen Aufmerksamkeit und regelmäßige Pflege! Auch hierzu gibt es ein paar Tools und Konzepte!

Herbstcampus 2017
Folien

Blühende Landschaften - Testen von Microservices

Microservices versprechen in vielen Umgebungen Vorteile, bei denen die Trennung einzelner Teile in der Entwicklung und beim Deployment zu einer besseren fachlichen Qualität und Liefergeschwindigkeit gegenüber dem Anwender kommt. Damit dieses vom Anwender auch wahrgenommen wird, muss die Qualität für das ganze System stimmen.

Die dafür notwendigen Tests können leicht wieder eine starke Kopplung erzeugen, insbesondere wenn Konzepte aus monolithischen Architekturen 1 zu 1 übernommen werden. Damit das nicht passiert, werden in diesem Vortrag aktuell gängige Konzepte vorgestellt und deren Einbindung in eine Continuous-Deployment-Pipeline diskutiert.

Herbstcampus 2017
Folien

Tutorien: Alles in die Dose - Einführung in Docker für Entwickler

Wie Mike Cohn bei der Einführung der Testpyramide vor zehn Jahren bereits beschrieben hat, steigen mit der Anzahl der Bestandteile in einem Integrationstest die Laufzeit und die Anfälligkeit für ungewollte Fehler (Timing, Daten, Set-up, konkurrierende Zugriffe …). Damit kann die dauerhafte Pflege von Integrationstestsuiten extrem aufwendig werden.Docker ist in aller Munde, sie kennen es aber nur vom Hörensagen?

In dem Tutorium werden wir Docker installieren, existierende Container ausführen, unsere eigenen bauen und zu guter Letzt ein System aus mehren Containern zusammensetzen.

Neben den Hands-On werden die notwendigen Grundlagen vermittelt und weitergehende Konzepte für den Betrieb von Containern kurz vorgestellt!

Damit sollte ein erster Eindruck vorhanden und die Grundlagen für weitere selbstständige Gehversuche gelegt worden sein.

Vorwissen

  • Grundlegende Linux-Kenntnisse

Lernziele

  • Ein Überblick über Docker
  • Lokale Installation
  • Grundlagen für das Bauen von eigenen Images
  • Grundlagen zum Docker Netzwerk und Images
  • Ein Überblick über Möglichkeiten im Betrieb von Anwendungen in Containern
JAX 2017
Folien

Erste Hilfe für Integrations- und Akzeptanztestsuiten

Wie Mike Cohn bei der Einführung der Testpyramide vor zehn Jahren bereits beschrieben hat, steigen mit der Anzahl der Bestandteile in einem Integrationstest die Laufzeit und die Anfälligkeit für ungewollte Fehler (Timing, Daten, Set-up, konkurrierende Zugriffe …). Damit kann die dauerhafte Pflege von Integrationstestsuiten extrem aufwendig werden.

Mit Tools aus der DevOps-Szene (Docker, Otto, Vagrant) können relativ einfach und schnell Umgebungen für Tests aufgesetzt und betrieben werden. Arquillian und Gradle bilden die Brücke, um Integrations- und Oberflächentests in einem definierten und abgeschlossenen Umfeld auszuführen und so die Laufzeit und Fehleranfälligkeit der Tests drastisch zu senken. Ein solcher Stack wird an einem konkretem Beispiel vorgestellt.

JUG Bremen 2016
Folien

beyond selenium ide – Wartbare Alternativen zu "record and playback"

Für viele ist die Selenium IDE der Einstieg in die Testautomatisierung mit dem Browser. Auf Dauer wartbare Regressionstests lassen sich damit aber kaum erstellen, da eine Änderung in der zu testenden Anwendung, Änderungen an viele Tests zu Folge haben kann.

Dieser Vortrag geht auf die Schwächen ein und stellt grundlegende Konzepte zum Aufbau von Browser-Tests mit Selenium-Java vor. Danach wird anhand von den auf Selenium aufbauenden Frameworks geb und arquillian graphene vorgestellt, wie wiederkehrende Elemente sinnvoll angesteuert werden können und das Testschreiben mittels Java-IDE per Code-Vervollständigung möglich ist.

JUG HH 2016
Folien

Testumgebungen verschiffen – Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen großen Beitrag leisten. Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Umsysteme oder Simulatoren und insbesondere für die Bereitstellung von kompletten Umgebungen mit definierten Testdaten. Wird hierfür vom Standardvorgehen abgewichen und Daten in Containern abgelegt, ergeben sich für die Verteilung und die Testprozesse einige Vorteile. Weiterhin wird die Erstellung und Einbindung der Container in die Testausführung mit Docker Compose, Gradle, Maven und Arquillian verglichen. Die Szenarien werden anhand von Beispielen demonstriert.

Java Forum Nord 2016
Folien

beyond selenium ide – Wartbare Alternativen zu "record and playback"

Für viele ist die Selenium IDE der Einstieg in die Testautomatisierung mit dem Browser. Auf Dauer wartbare Regressionstests lassen sich damit aber kaum erstellen, da eine Änderung in der zu testenden Anwendung, Änderungen an viele Tests zu Folge haben kann.

Dieser Vortrag geht auf die Schwächen ein und stellt grundlegende Konzepte zum Aufbau von Browser-Tests mit Selenium-Java vor. Danach wird anhand von den auf Selenium aufbauenden Frameworks geb und arquillian graphene vorgestellt, wie wiederkehrende Elemente sinnvoll angesteuert werden können und das Testschreiben mittels Java-IDE per Code-Vervollständigung möglich ist.

Berlin Expert Days 2016
Folien

beyond selenium ide – Wartbare Alternativen zu "record and playback"

Für viele ist die Selenium IDE der Einstieg in die Testautomatisierung mit dem Browser. Auf Dauer wartbare Regressionstests lassen sich damit aber kaum erstellen, da eine Änderung in der zu testenden Anwendung, Änderungen an viele Tests zu Folge haben kann.

Dieser Vortrag geht auf die Schwächen ein und stellt grundlegende Konzepte zum Aufbau von Browser-Tests mit Selenium-Java vor. Danach wird anhand von den auf Selenium aufbauenden Frameworks geb und arquillian graphene vorgestellt, wie wiederkehrende Elemente sinnvoll angesteuert werden können und das Testschreiben mittels Java-IDE per Code-Vervollständigung möglich ist.

Jax 2016
Folien

Testumgebungen verschiffen – Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen großen Beitrag leisten. Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Umsysteme oder Simulatoren und insbesondere für die Bereitstellung von kompletten Umgebungen mit definierten Testdaten. Wird hierfür vom Standardvorgehen abgewichen und Daten in Containern abgelegt, ergeben sich für die Verteilung und die Testprozesse einige Vorteile. Weiterhin wird die Erstellung und Einbindung der Container in die Testausführung mit Docker Compose, Gradle, Maven und Arquillian verglichen. Die Szenarien werden anhand von Beispielen demonstriert.

Jax 2016
Folien

Landung der Aliens - Arquillian in der Praxis

Arquillian ist der aufsteigende Stern in der Open-Source-Softwarecommunity, wenn es um Tests in Java-EE-Applikationsservern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouseprojekt geht. Ursachen sind sicher die teilweise sehr lückenhafte Dokumentation, die Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikationsserverentwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Software für viele Testszenarien einer Java-EE-Anwendung. Dieser Vortrag stellt die wichtigen Punkte beim Einsatz von Arquillian in typischen Projekten in Unternehmen anhand eines durchgängigen Beispiels vor. Dabei wird in erster Linie auf Integrationstests eingegangen und ein Ausblick auf weitere Möglichkeiten wie Browsertests, Akzeptanztests und Lasttests gegeben.

JUG Bremen 2016
Folien

Testumgebungen verschiffen – Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen großen Beitrag leisten. Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Umsysteme oder Simulatoren und insbesondere für die Bereitstellung von kompletten Umgebungen mit definierten Testdaten. Wird hierfür vom Standardvorgehen abgewichen und Daten in Containern abgelegt, ergeben sich für die Verteilung und die Testprozesse einige Vorteile. Weiterhin wird die Erstellung und Einbindung der Container in die Testausführung mit Docker Compose, Gradle, Maven und Arquillian verglichen. Die Szenarien werden anhand von Beispielen demonstriert.

OOP 2016
Folien

Testen mit Containern - Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings kann Docker in vielen Organisationen noch nicht auf Produktion eingesetzt werden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung einen wichtigen Beitrag leisten. In diesem Vortrag werden Einsatzbereiche von Docker in automatisierten Tests vorgestellt: klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Umsysteme oder Simulatoren und insbesondere für die Bereitstellung von definierten Testdaten.

Zielpublikum Entwickler, Tester, Architekten, DevOps-Interessierte
Voraussetzungen Docker-Basiswissen, Erfahrung mit Integrationstests
Schwierigkeitsgrad Fortgeschritten

Sie lernen:

  • Einfache und stabile Integrationstests
  • Ausreichend Entwicklungs- und Testumgebungen
JUG HH 2015
Folien

Landung der Aliens - Arquillian in der Praxis

Arquillian ist der aufsteigende Stern in der Open-Source-Softwarecommunity, wenn es um Tests in Java-EE-Applikationsservern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouseprojekt geht. Ursachen sind sicher die teilweise sehr lückenhafte Dokumentation, die vielen Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikationsserverentwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Software für viele Testszenarien einer Java-EE-Anwendung.

Dieser Vortrag stellt die wichtigen Punkte beim Einsatz von Arquillian in typischen Projekten in Unternehmen anhand eines durchgängigen Beispiels vor. Dabei wird in erster Linie auf Integrationstests eingegangen und ein Ausblick auf weitere Möglichkeiten wie Browsertests, Akzeptanztests und Lasttests gegeben.

W-Jax 2015
Folien

Testen mit Containern - Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen wichtigen Beitrag leisten!

Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: Klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Um-Systeme oder Simulatoren und insbesondere für die Bereitstellung von definierten Testdaten, und wie diese am besten in den Container gelangen können. Weiterhin wird die Einbindung der Container in die Testausführung mit Gradle, Maven und Arquillian vorgestellt.

Dieser Session richtet sich an Leute, die schon immer zu wenige Umgebungen für ihre Tests hatten. Egal ob Entwickler oder Tester.

W-Jax 2015
Folien

Landung der Aliens - Arquillian in der Praxis

Arquillian ist der aufsteigende Stern in der Open-Source-Softwarecommunity, wenn es um Tests in Java-EE-Applikationsservern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouseprojekt geht. Ursachen sind sicher die teilweise sehr lückenhafte Dokumentation, die vielen Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikationsserverentwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Software für viele Testszenarien einer Java-EE-Anwendung.

Dieser Vortrag stellt die wichtigen Punkte beim Einsatz von Arquillian in typischen Projekten in Unternehmen anhand eines durchgängigen Beispiels vor. Dabei wird in erster Linie auf Integrationstests eingegangen und ein Ausblick auf weitere Möglichkeiten wie Browsertests, Akzeptanztests und Lasttests gegeben.

Berlin Exprt Days 2015
Folien

Testen mit Containern - Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen wichtigen Beitrag leisten!

Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: Klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Um-Systeme oder Simulatoren und insbesondere für die Bereitstellung von definierten Testdaten, und wie diese am besten in den Container gelangen können. Weiterhin wird die Einbindung der Container in die Testausführung mit Gradle, Maven und Arquillian vorgestellt.

Dieser Session richtet sich an Leute, die schon immer zu wenige Umgebungen für ihre Tests hatten. Egal ob Entwickler oder Tester.

Herbstcampus 2015
Folien

Testen mit Containern - Docker für Integrationstests

Docker-Container bieten ein interessantes Auslieferungs- und Betriebskonzept. Allerdings lässt es sich in vielen Organisationen aus unterschiedlichen Gründen noch nicht für den produktiven Einsatz verwenden. Dennoch kann Docker auf dem Weg zu Continuous Delivery in der Testautomatisierung schon einen wichtigen Beitrag leisten!

Dieser Vortrag stellt die Einsatzbereiche vor, in denen Docker in automatisierten Tests verwendet werden kann: Klassisch als Ausführungsumgebung für das Testobjekt, als Umgebung für Um-Systeme oder Simulatoren und insbesondere für die Bereitstellung von definierten Testdaten, und wie diese am besten in den Container gelangen können. Weiterhin wird die Einbindung der Container in die Testausführung mit Gradle, Maven und Arquillian vorgestellt.

Herbstcampus 2015
Folien

Reise in eine andere Welt - Eine praktische Einführung in Arquillian

Arquillian ist der aufsteigende Stern in der OpenSource-Software-Community, wenn es um Tests in Java EE Applikations-Servern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouse-Projekt geht. Ursachen sind sicher die teilweise lückenhafte Dokumentation, die vielen Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikations-Server-Entwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Lösung für viele Testszenarien einer Java EE-Anwendung!

Dieses Tutorium bietet einen Einstieg in Tests mit Arquillian. Dabei wird an einem durchgängigen Beispiel die Einbindung und die Erstellung von Tests auf den unterschiedlichen Teststufen gezeigt, sowie auf mögliche Probleme eingegangen.

JUG Bremen 05/2015
Folien

Landung der Aliens - Arquillian in der Praxis

Arquillian ist der aufsteigende Stern in der Open-Source-Software-Community, wenn es um Tests in Java-EE-Applikationsservern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouse-Projekt geht. Ursachen sind sicher die teilweise lückenhafte Dokumentation, die vielen Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikationsserverentwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Lösung für viele Testszenarien einer Java-EE-Anwendung!

Dieser Vortrag stellt die wichtigen Punkte beim Einsatz von Arquillian in typischen Projekten in Unternehmen an Hand eines durchgängigen Beispiel vor. Dabei wird in erster Linie auf Integrationstests eingegangen und ein Ausblick auf weitere Möglichkeiten wie Browsertests, Akzeptanztests und Lasttests gegeben.

Jax 2015
Folien

Geb und Graphene im Vergleich

In den letzten Jahren sind zwei Frameworks um Selenium entstanden, die für sich beanspruchen, die Tests im Browser robuster und wartbarer zu gestalten: Geb (gebish.org) und Arquillian Graphene. Beide setzen auf eine an jQuery angelehnte Syntax zur Selektion und bieten die Möglichkeit, den Testcode über Page-Objekte und wiederverwendbare Module wartbarer zu strukturieren. Zusätzlich gibt es Unterstützung für Ajax. Dieser Vortrag stellt die Stärken und Schwächen der beiden Neulinge in unterschiedlichen Umgebungen und im Vergleich zu Selenium vor und gibt Entscheidungshilfen für die Auswahl des geeigneten Werkzeugs. Beispieltests https://github.com/hildebrandttk/javaee7-petclinic/tree/master/src/test/

JavaLand 2015
Folien

Arquillian in der Praxis

Arquillian ist der aufsteigende Stern in der Open-Source-Software-Community, wenn es um Tests in Java-EE-Applikationsservern geht. Allerdings ist bei vielen die Unsicherheit recht groß, wenn es um den Einsatz von Arquillian in einem konkreten Inhouse-Projekt geht. Ursachen sind sicher die teilweise sehr lückenhafte Dokumentation, die vielen Misserfolge, die sich im Internet finden, und die Komplexität am Anfang. Begründet sind sie in erster Linie in dem abweichenden Fokus: Arquillian ist maßgeblich von Framework- und Applikationsserverentwicklern für den Test ihrer Produkte entwickelt worden. Trotzdem ist es eine gute Software für viele Testszenarien einer Java-EE-Anwendung! Dieser Vortrag stellt alle notwendigen Schritte zum Einsatz von Arquillian an einem konkretem Projekt vor. Dabei wird in erster Linie auf die Unterschiede bei Unit- und Integrationstests eingegangen und ein Ausblick auf weitere Möglichkeiten wie Browsertests, Datenbanksetup und Akzeptanztests gegeben. Beispielprojekt: https://github.com/hildebrandttk/javaee7-petclinic

JavaLand 2015
Folien

Geb und Graphene im Vergleich

In den letzten Jahren sind zwei Frameworks um Selenium entstanden, die für sich beanspruchen, die Tests im Browser robuster und wartbarer zu gestalten. Geb (gebish.org) und Arquillian Graphene. Beide vereinfachen dazu die Erstellung und Verwendung von Page-Objekten und bieten Unterstützung für wiederverwendbare Module. Zusätzlich wird die Unterstützung für Ajax deutlich erweitert. Dieser Vortrag stellt die Stärken und Schwächen der beiden Neulinge in unterschiedlichen Umgebungen und im Vergleich zu Selenium vor und gibt Entscheidungshilfen für die Auswahl des geeigneten Werkzeugs. An wen ist die Session gerichtet? Selenium Anwender und alle die für JVM-Anwendungen Tests im Browser erstellen wollen. Beispieltests https://github.com/hildebrandttk/javaee7-petclinic/tree/master/src/test/

W-Jax 2014
Folien

Destruktive System- und Werkzeugauswahl in agilen und skalierten Umgebungen

Welche Kriterien müssen Systeme und Werkzeuge in ihrer Systemlandschaft erfüllen, um in einer modernen, leichtgewichtigen und effizienten Entwicklung richtig zu stören? An welchen Eigenschaften werden Continuous Delivery oder der Einsatz in der Cloud scheitern? Welchen Einfluss haben Datenstrukturen, Programmiermodelle, Lizenzmodelle und interne Strukturen einzelner Systeme auf die gesamte Entwicklung und automatisierter Auslieferung? Welche Herausforderungen sind zu meistern, welche nicht?

XP Days 2014
Folien

Top 10 der unagilsten Systemeigenschaften

Systemeigenschaften wie Deploymentzeiten, Versionierbarkeit von Schnittstellen, des Codes und der Konfiguration beeinflussen stark die Entwicklung in kleinen Schritten und kurzen Releasezyklen. Einige verhindern zuverlässig, dass Continuous-Delivery-Pipelines eingesetzt werden kann.

In diesem Workshop wollen wir eine Liste typischer Systemeigenschaften und ihrer Auswirkungen auf agile Softwareentwicklung erarbeiten, Workarounds auflisten und am Ende gemeinsam eine Top 10 der unagilsten Systemeigenschaften aufstellen. Mit dieser Liste bewaffnet können die Teilnehmer dann in Diskussionen um den Einsatz neuer oder die Änderung bestehender Systeme gehen.

XP Days 2014
Folien

Geb und Graphene im Vergleich

In den letzten Jahren sind zwei Frameworks um Selenium entstanden, die für sich beanspruchen, die Tests im Browser robuster und wartbarer zu gestalten. Geb (gebish.org) und Arquillian Graphene. Beide setzten auf eine an jQuery angelehnte Syntax zur Selektion und bieten die Möglichkeit den Testcode über Pageobjekte und wiederverwendbare Module wartbarer zu strukturieren. Zusätzlich gibt es Unterstützung für Ajax. Dieser Vortrag stellt die Stärken und Schwächen der beiden Neulinge in unterschiedlichen Umgebungen und im Vergleich zu Selenium vor und gibt Entscheidungshilfen für die Auswahl des geeigneten Werkzeugs.

code.talks 2014
Folien

Geb und Graphene im Vergleich

In den letzten Jahren sind zwei Frameworks um Selenium entstanden, die für sich beanspruchen, die Tests im Browser robuster und wartbarer zu gestalten. Geb (gebish.org) und Arquillian Graphene. Beide setzten auf eine an jQuery angelehnte Syntax zur Selektion und bieten die Möglichkeit den Testcode über Pageobjekte und wiederverwendbare Module wartbarer zu strukturieren. Zusätzlich gibt es Unterstützung für Ajax. Dieser Vortrag stellt die Stärken und Schwächen der beiden Neulinge in unterschiedlichen Umgebungen und im Vergleich zu Selenium vor und gibt Entscheidungshilfen für die Auswahl des geeigneten Werkzeugs.

An wen ist die Session gerichtet?

Selenium Anwender und alle die für JVM-Anwendungen Tests im Browser erstellen wollen.

Herbstcampus 2014
Folien

Was eine QS-Abteilung immer wollte... - Mit automatisierten Tests zum Ziel

Früher war alles gut: Die Anforderungen lagen vor dem Entwicklungsbeginn vor, wurden aggregiert, in Testfälle überführt und am Ende wurde das System dagegen getestet. Zeitrahmen: viele Monate. In agilen Projekten werden Anforderungen kontinuierlich erhoben und umgesetzt. Jede Änderung ist als Delta in Form von Userstories oder Ähnlichem dokumentiert. Um zu einer kumulierten Liste zu kommen, muss dieses Delta auf alle bestehenden Anforderungen und Testfälle angewendet werden. Da es keinen Compiler und keine automatisierte Testausführung gibt, werden sich viele Fehler einschleichen! Es gibt nur eine vollständige Beschreibung des Systems und seiner Anforderungen: das System mit seinen automatisierten Tests! Eine fortgeschriebene, vollständige und menschenlesbare Liste mit Anforderungen und deren Quellen ist allerdings etwas, was die Weiterentwicklung über viele Jahre unglaublich erleichtern kann, z. B. beim explorativen Testen oder bei externen und gesetzlichen Vorgaben.

In diesem Vortrag wird beschrieben wie ein Java EE-System mit JUnit, Arquillian und Cucumber testgetrieben entwickelt werden kann und wie Tests auf Unit-, Integrations- und Systemintegrationstestebenen so kombiniert werden können, dass am Ende eine Liste von automatisch geprüften Akzeptanzkriterien entsteht, ohne dass Laufzeit und Wartungsaufwand explodieren.

Herbstcampus 2014
Folien

Jedem seine eigene Teststage - Den ganzen Zoo auf einem Rechner

Wer schon mal in einem größeren Team mit einer zentralen Entwicklungs- und Testumgebung gearbeitet hat, wird wissen, was dort allerhand Kompromisse eingegangen werden müssen: relativ seltene Deployments, die dann genau zur falschen Zeit, viele Abstimmungen, inkompatible Schnittstellen und Datenbankschema zur lokalen Version, etc.. Wie schön wäre es doch seine eigene definierte Umgebung zu haben. Dies ist nun mit Werkzeugen aus der DevOps-Bewegung, die unter dem Begriff „Infrastructure as Code“ laufen, möglich. Mit diesen Mitteln sind auch Continous Integrationsumgebungen für mehrere Branches einfach umzusetzen, so dass der Code vor der Integration in zentrale Branches bereits getestet ist. Bei ausreichend hoher Testabdeckung können die erstellten Artifacte direkt für Deployments bereitgestellt werden (continous delivery).

In diesem Tutorium werden anhand eines konkreten Beispiels alle Schritte durchgegangen, um auf dem eigenen Rechner eine Laufzeitumgebung für eine typische Java-Applikation mit einem Datenbank-Server einzurichten. Hierzu werden primär vagrant, puppet und VirtualBox genutzt. Weiterhin wird ein Ausblick auf den Einsatz im CI-Server, mehrerer VMs und Docker gegeben.

Voraussetzungen: Programmierkenntnisse, keine Angst vor Linux, ein Notebook mit 64Bit CPU und Virtualisierungsunterstützung, 4GB Ram und 8GB freier Plattenplatz.

Entwicklertag Karlsruhe 2014
Folien

Nieder mit dem Zaun

Manuelles Testen ist bei kurzen Sprints schon schwierig und bei Continuous Delivery einfach nicht mehr möglich. Automatisierte Tests, die getrennt oder nachgelagert zur Entwicklung entstehen, sind wenigstens eine kurze Zeit veraltet und eignen sich daher auch nicht für Continuous Integration oder eine Deploymentpipeline. Automatisierte Tests sollten zudem ein Stück eines jeden Softwaresystems sein und auch mit ihm verwaltet und ausgeliefert werden.

Dies ist ein Appell für eine Zusammenarbeit von Test und Entwicklung mit einem gemeinsamen Ziel, einem gemeinsamen Werkzeugkasten und in einem gemeinsamen Repository.

Entwicklertag Karlsruhe 2014
Folien

Was zählt ist auf'm Platz - Testautomatisierung im Browser

Wer eine Anwendung mit Browserinterface schreibt, sollte neben Unittests und Tests auf Serviceebene, automatisierte Tests auf der Weboberfläche vorsehen, da nur so alle Aspekte einer modernen Webanwendung regelmäßig getestet und realitätsnahe Integrationstests durchgeführt werden können.

geb (gebish.org) ist eine auf Selenium und Groovy basierende Lösung, die mit der Strukturierung in wiederverwendbare Page- und Module-Objekte ein großes Manko von Selenium löst und lesbare und wartbare Tests ermöglicht. Der Wiederverwendung dieser Module in Unit-, Integrations-, Akzeptanz- und Lasttests steht nichts im Wege. Die Verwendung einer an jQuery angelehnten Api behebt auch einige sperrige Konstrukte von Selenium beim Zugriff auf Elemente der HTML-Seite.

Durch die Verwendung der JVM-Spache Groovy und Kompatibilität zu JUnit können die Tests direkt in den Buildprozess mit Maven oder Gradle eingebunden und aus der IDE gestartet werden. Da es sich um Quellcode in Form von Textdateien handelt, kann er mit der zu testenden Anwendung zusammen versioniert werden, so dass Branching keine Probleme darstellt. Diese nahtlose Integration in den Entwicklungsprozess einer JVM-Anwendung ist ein großer Vorteil gegenüber den meisten kommerziellen Lösungen zur Testautomatisierung. Durch die Integration von Tests aller Ebenen lassen sehr gut Akzeptanztests erstellen, die als Basis für eine lebendige Dokumentation der Anforderungen an das System dienen können.

In diesem Workshop werden geb-Grundlagen und Konzepte vermittelt, sowie ein Ausblick auf Integrationsmöglichkeiten gegeben. Für die aktive Mitarbeit werden Programmierkenntnisse in Groovy, (oder sehr gute Javakenntnisse) sowie ein Notebook mit installiertem VirtualBox, mindestens 2GB Arbeitsspeicher für die VM und 8GB freiem Platz auf der Festplatte benötigt.

Herbstcampus 2013
Folien

Was zählt ist auf'm Platz - Testautomatisierung im Browser

Wer eine Anwendung mit Browserinterface schreibt, sollte neben Unit-Tests und Tests auf Service-Ebene, Tests auf der Web-Oberfläche vorsehen, da nur so realitätsnahe Integrationstests durchgeführt werden können.

geb (gebish.org) ist eine auf Selenium und Groovy basierende Lösung, die bei der Strukturierung unterstützt und sich sehr gut in den Entwicklungsprozess einer JVM-Anwendung einbinden lässt. Neben den geb-Grundlagen werden Best Practices bei der weitergehenden Strukturierung der Tests vorgestellt sowie Möglichkeiten für kleinere Last-Tests gezeigt.

Für die aktive Mitarbeit werden gute Programmierkenntnisse sowie ein Notebook mit installiertem VirtualBox, mindestens 2GB Arbeitsspeicher für die VM und 8GB freiem Platz auf der Festplatte benötigt.