share

End-To-End-Testing (E2E)

Vor Kurzem stand das „One-Week-Off“-Programms der marmalade GmbH für mich auf dem Plan. Dabei handelt es sich um ein Angebot an die Mitarbeiter, sich eine Woche aus dem regulären Tagesgeschäft heraus zu nehmen und mit einem Thema ihrer Wahl zu beschäftigen.

Für mich fiel die Wahl auf die Thematik des End-To-End-Testings (E2E). Mittels dieser Methode können Webapplikationen automatisiert hinsichtlich ihrer zugrunde liegenden und konzipierten Funktionalitäten getestet werden.

Das E2E-Testing kann verschiedene Akzeptanztests, wie bspw. User-Login oder Interaktionen innerhalb der Website (z.B. „Der User ruft Seite x auf, klickt auf den Button y und erwartet, dass die Information z erscheint“). Aber auch komplexere Nutzerinteraktionen können betrachtet werden. Beispielsweise ein kompletter Kaufprozess startend vom Besuch einer Katergorieseite, über die Auswahl eines Artikels, Hinzufügen in den Warenkorb und schließlich der Kaufabschluss, so dass der komplette Checkout Prozess automatisiert getestet werden kann.

Meine Zielstellung umfasste die Betrachtung und Evaluierung von drei E2E-Testingtools anhand eines konkreten Kundenbeispiels.

In diesem Artikel möchte ich gerne meine Eindrücke schildern. Dabei ist mir wichtig zu betonen, dass dies kein Tech-Talk wird. Im Fokus steht somit weniger der Code, als vielmehr die tatsächlichen Erfahrungen. Wer sich aus technischer Sicht tiefer für das Thema interessiert, dem kann ich die ausführlichen Dokumentationen der vorgestellten Tools empfehlen.

Bei den Tools handelt es sich um:

Für die Evaluierung sollten folgende Fragen beantwortet werden:

  1. Wie groß ist der Aufwand, das jeweilige Tool zu installieren?
  2. Wie zuverlässig funktionieren die Tests?
  3. Wie lässt sich das Tool in unseren CI-Prozess integrieren?

Kriterien:

  • Zu 1. Die Maßgabe in diesem Punkt war das Tool innerhalb von maximal 30 Minuten installiert und erste, einfache Tests geschrieben zu haben. Alle drei Tools bieten einen „Getting Started Guide“. Das Installieren und konfigurieren war somit in allen Fällen ohne größeren Aufwand möglich und schnell abgeschlossen.
  • Zu 2. Für mich funktioniert ein Test zuverlässig wenn er, sofern unter gleichen Bedingungen durchgeführt, reproduzierbare Ergenisse liefert.

Als ersten Test hatte ich definiert: „Rufe die Startseite auf und klicke auf den Link, der zur Login-Seite führt“. Die Syntax ist natürlich bei allen Tools unterschiedlich. Im Kern arbeiten diese jedoch alle nach einem ähnlichen Muster. Deshalb hatte die Syntax für mich in der ersten Betrachtung keine größere Relevanz.

In der Zuverlässigkeit des Tests zeigten sich hier bereits erste Unterschiede:

Sowohl Cypress als auch TestCafé haben den Test problemfrei abbilden können. CodeceptJS jedoch hat eine Fehlermeldung angezeigt, welche aussagte, dass das anvisierte Element (der Link zur Login-Seite) nicht gefunden werden konnte. Als ich  nach 15-minütiger Fehlersuche, dem Prüfen des Guides sowie der Recherche bzgl. der Fehlermeldung keine Lösung finden konnte, habe ich diesen Test mit CodeceptJS übersprungen.

Im nächsten Testfall wollte ich die Login-Funktion testen. Die Definition lautete demnach: „Gehe auf die Login-Seite, fülle die Input-Felder für E-Mail/ Passwort aus und klicke auf den Submit-Button“. Anschließend erwarte ich auf einer Seite zu sein, die „Hallo {username}“ enthält.

Auch hier liefen Cypress und TestCafé reibungslos durch. CodeceptJS hatte erneut das Problem, ein bestimmtes Element zu finden. In diesem Fall den Submit-Button.

Ob dieses Verhalten nun auf eine von mir fehlerhafte Implementierung des Tests oder auf das Tool selbst zurückzuführen ist kann ich nicht beurteilen. Für mich war entscheidend: In zwei von drei Tools funktionierten diese einfachen Tests ohne Probleme. Bei einem Tool müsste ich zusätzliche Zeit investieren, um die einfachen Tests zum Laufen zu bringen.

Punktsieg für Cypress und TestCafé.

Nach diesem ersten Beschnuppern der Tools, wobei alles noch stark an der Oberfläche gekratzt hat beschloss ich, mich näher mit ihnen zu beschäftigen. Angefangen habe ich dabei mit Cypress.

So nahm ich mir einen Vormittag um die Cypress Dokumentation von oben bis unten zu lesen. Dabei fand ich bereits viele interessante Aspekte des Tools, mit denen ich einige projektspezifische Testfälle abdecken könnte. Anstatt nun also direkt die nächste Doku zu lesen wollte ich das gelesene in der Praxis umsetzen.

In meinem Beispielprojekt gibt es die Besonderheit, dass bei der Nutzerinteraktion viel mit Asynchronität und AJAX-Requests gearbeitet wird. Hier ist demnach die Herausforderung, auch dies in den Tests sauber abbilden zu können. Sobald der Nutzer beispielsweise eine Versandart wählt wird mittels JS ein AJAX-Request abgeschickt, welcher die Zahlarten zurückgibt.

Der Test muss also Folgendes abbilden können: „Wähle Zahlart x aus und warte, bis der Request auf die Url ‚/xyz‘ beantwortet wurde. Anschließend erwarte ich, dass die Zahlart y verfügbar ist“.

Cypress kann diesen Fall bereits behandeln, ohne dass ich etwas zusätzlich konfigurieren muss. Das Tool wartet standardmäßig maximal 4 Sekunden ab, ob ein bestimmtes Element vorhanden ist. Zusätzlich kann definiert werden, dass ein bestimmter AJAX-Request abgewartet werden soll bevor weitere Testschritte durchgeführt werden.

Motiviert durch die schnelle Implementierung und Zuverlässigkeit der bisherigen Tests mit Cypress beschloss ich, komplexere Testscases zu definieren. So setzte ich das eingangs erwähnte Szenario des Weges bis zum Kaufabschluss um. Erneut klappte die Realisierung des Testcases relativ schmerzfrei. In weniger als 80 Zeilen Code konnte ich den kompletten Checkout Prozess abbilden.

Neben der problemfreien Implementierung der Tests gibt es weitere Punkte, welche bei Cypress positiv auffallen:

  • Cypress bietet eine GUI, welche den zu testenten Browser einbindet und dort direkt für den Anwender sichtbar die Tests durchführt. Dabei wird für jeden Test ein Snapshot angelegt. Dies ermöglicht, wenn beispielsweise ein Test fehlschlägt nachzuvollziehen, wie die Seite zu diesem Zeitpunkt aussah.
  • Wird Cypress in den CI-Prozess integriert bietet die Cloud-Plattorm „Cypress Dashboard“ die Möglichkeit, den im CI-Prozess durchgeführten Test zu visualisieren. Damit ist es für Projektmanager oder Shop-Betreiber einfacher zu ermitteln, weshalb ein Test ggf. fehlgeschlagen ist, ohne tiefere Coding Kentnisse zu besitzen.

Aufgrund dieser ersten Erkenntnisse und Eindrücke beschloss ich, als „proof of concept“, Cypress bei einem unserer Projekte in den CI Prozess zu integrieren und auf der Stage-Umgebung testen zu lassen.

Der Abschluss dieses Schrittes steht noch aus. Sobald dies durchgeführt wurde kann, für Cypress, die Frage „Wie lässt sich das Tool in unseren CI Prozess integrieren?“ beantwortet werden.

An dieser Stelle ist bereits klar, dass im Laufe der Woche mein ursprüngliches Ziel, drei Tools nebeneinander zu stellen und zu evaluieren der Idee eines „Proof of Concept“ gewichen ist. Stattdessen ist aus der Intention, mich in ein neues Thema einzuarbeiten, ein direktes Anwendungsszenario für unser Daily-Business entstanden.

Blogbeitrag von Alexander Hagemeier (Frontendentwickler marmalade GmbH)

share

Fokus Erfolg: marmalade und webvariants werden eins.

Geschäftsführer in der marmalade Group (v. l. n. r. Christian Metzeler – webvariants GmbH, André Renninger – marmalade GmbH, Joscha Krug – marmalade Group GmbH)

Nachdem wir im Januar diesen Jahres unser 10-jähriges Bestehen als marmalade GmbH feiern konnten, nimmt unsere weitere Entwicklung rasant Fahrt auf. Im Februar haben wir unser neues Büro in der Otto-von-Guericke-Straße 87a bezogen (zwischen dem Maritim Hotel und FCM Fanshop). Am 01. April 2019 wurde vom Inhaber Joscha Krug die marmalade Group gegründet, welche zunächst aus der marmalade GmbH, der Makaira GmbH und der Content Fellows UG bestand. Mit dem Stichtag 1. Mai begrüßen wir nun auch die webvariants GmbH aus Magdeburg als Teil der marmalade-Familie. Herzlich willkommen!

Struktur der marmalade Group

Die Bündelung unserer gemeinsamen Kompetenzen aus OXID & Shopware E-Commerce, CMS, TYPO3 und Symfony-Plattformentwicklung ermöglichen es uns, unsere Kunden breiter aufgestellt und schneller zu betreuen. Gleichzeitig entwickeln wir uns innovativ weiter. Ergänzt wird unser Portfolio durch die Makaira E-Commerce Marketing-Suite, welche nun als eigenständige Makaira GmbH mit Sitz in Heidelberg agiert, sowie die Content Fellows mit dem Schwerpunkt auf Online-Marketing. In der Gruppe verfügen wir nun über 35 Experten und 15 Jahre Branchenerfahrung, 2 Standorte (Heidelberg & Magdeburg), welche auf über 500 erfolgreiche Projekte zurückblicken können. Mit der Zusammenführung der fünf Unternehmen unter dem Dach der marmalade Group können unsere Kunden auf einen zentralen Ansprechpartner zurückgreifen. Wir freuen uns auf gemeinsame große Projekte in der gesamten Gruppe.

Geschäftsführer in der marmalade Group (v. l. n. r. Christian Metzeler – webvariants GmbH, Joscha Krug – marmalade Group GmbH, André Renninger – marmalade GmbH)

“Wir wollen die Mitarbeiterzahl der Gruppe am Standort Magdeburg im kommenden Jahr auf mindestens 40 erweitern. Dabei werden insbesondere Webentwickler mit den Schwerpunkten Shops (OXID, Shopware) und Website (Backend / Frontend) gesucht”, so Joscha Krug (37), der geschäftsführende Gesellschafter der marmalade group sowie der Makaira GmbH. Ihm zur Seite stehen die Geschäftsführer der Töchter marmalade GmbH, André Renninger (38) und webvariants GmbH, Christian Metzeler (41). “Dem zunehmenden Wettbewerb im E-Commerce und der Online-Kommunikation können wir nun als integrierte Gruppe begegnen und unsere Kunden somit umfassender von Anfang bis Ende betreuen”, so Krug weiter.

share

Neue Mitarbeiter und größere Räumlichkeiten

Das neue Jahr ist noch recht jung und schon stehen viele spannende Themen vor der Tür.

Neue Projekte sind gestartet, andere sind noch in der Planungsphase und geben den Ausblick auf ein interessantes Jahr 2019 voller neuer Themen. Über den Jahreswechsel hinweg konnten wir unser marmalade-Team um vier neue Mitarbeiter in unterschiedlichen Bereichen vergrößern.

Boris verstärkt seit Dezember unser Entwicklerteam. Als erfahrener Softwareentwickler wird er uns tatkräftig bei der Umsetzung neuer Projektinhalte unterstützen.

Mit Denise und Peter konnten wir zum Jahresstart zwei erfahrene Projektmanager gewinnen. Denise war die letzten 12 Jahre im Projektgeschäft eines bundesweiten Ingenieurdienstleisters tätig und bringt langjährige Erfahrung im Umgang mit verschiedensten Kunden mit. Peter kommt aus dem Automobilbereich und war dort in verschiedenen Positionen unterwegs, zuletzt als Projektleiter im Testing.  

Unsere neuen Kollegen v.l.: Peter, Denise, Patrick, Boris

Denise wird künftig unsere neuen Kunden die Harzer Schmalspurbahnen und Schuhtempel 24 betreuen. Für die Harzer Schmalspurbahnen setzen wir einen vollständigen Relaunch der Webseite auf einen OXID eShop, mit Verkauf der Regelzugtickets und Sonderfahrten, um. Zusätzlich übernehmen wir die Weiterentwicklung des bestehenden Online-Shops von Schuhtempel24 und starten direkt mit einem PHP7-Update.

Unseren Bestandskunden Sport Conrad und unser neues Projekt DIPIA werden künftig von Peter koordinieren.

Als neuen CTO konnten wir Patrick für uns gewinnen, welcher als Gründer der Relenda GmbH, bekannt durch den Kinderkleidungsmietservice kilenda, über ein tiefes technisches Verständnis und gute Branchenkenntnisse verfügt. Er wird uns in der technischen Entwicklung mit Rat und Tat zur Seite stehen.

Patrick wird für alle Kollegen vor Ort der Ansprechpartner für technische Fragestellungen sein. Zukünftig wird er die weitere Optimierung von bestehenden Technologien, Einführung und Verbesserung neuer Prozesse, sowie die technische Konzeption von neuen spannenden Features für unsere Neu- und Bestandskunden begleiten. Zusätzlich wird er das Makaira Team weiter verstärken.

2019 verspricht schon jetzt ein abwechslungsreiches und interessantes Jahr zu werden. In der kommenden Woche steht der Umzug in größere Räumlichkeiten an und wir sind ab dem 04. Februar in der Otto-von-Guericke-Straße 87a zu finden.

 

share

Schön wars! – twam #115

Alle Jahre wieder – steht das eCommerce Camp in Jena auf dem Plan!

Die Kollegen waren natürlich alle unheimlich aufgeregt und haben schon fleißig alle Sessionbesuche geplant.

Die Vorhut bildeten unsere Kolleginnin Alice und Anna, welche schon einmal den Stand aufgebaut und unsere süßen Leckereien Vorbereitet haben. An dieser Stelle können wir auch schon einen kleinen Spoiler-Alert geben, für alle die unsere Pralinen noch nicht kosten dürfen – sie schmecken fabelhaft!

   

 
Nachdem dann alle Kollegen beisammen waren, könnten wir auch endlich in den ersten gemeinsamen und gemütlichen Abend starten. In diesem Zuge konnten auch schon die ersten neuen Bekanntschaften geschlossen und gefachsimpelt werden.

 

Am Freitag ging es dann in die Vollen. Von Morgens bis Abends hatten wir die Gelegenheit in viele interessante Sessions zu schauen und spannende Vorträge zu hören.  Da war für jeden etwas dabei:

  • Frontend Performance Monitoring
  • Die Datenschutzverordnung kommt, rette sich wer kann
  • Über KI und Terminator
  • Studiengang E-Commerce an der EAH Jena

… und natürlich haben auch wir unseren Beitrag geleistet. Joscha hat in vertrauter Runde über „Makaira in Practice“ mit bestehenden Kunden und ehemaligen Leads gesprochen und somit ein 360° Feedback abgebildet.

  

Und wer sich fleißig weiterbildet, der darf abends auch mal albern sein. Bei der traditionellen eCommerce Party durfte jeder mal verrückt sein und den Schalk raus lassen! In geselliger Rund wurde über die Sessions und Erkenntnisse des Tages gesprochen und Pläne für den nächsten Tag gemacht.

  

Das war aber noch nicht alles!

In der letzten Woche stand ebenfalls ein neues Makaira-Release an.  In der Release-Version 2018.3 wurden unter dem Oberthema „Stream-Konfiguration, Mehrsprachigkeit, Kompatibilität mit Oxid v6“ wurden folgende Funktionalitäten ausgerollt.

Features

  • Erweiterte Stream-Konfiguration mit zusätzlichen Operatoren
  • Default-Settings für zusätzliche Sprachen (italienisch, französisch, spanisch, niederländisch)
  • Connect: Kompatibilität mit Oxid v6

Bugfixes

  • Boosting von Produktgruppen auf Basis von Streams
  • Connect: PHP5.4 Kompatibilität im Listen-Controller

Noch mehr Informationen zu unserer Makaira E-Commerce Marketing Suite, der Dokumentation und allen Releases gibt es unter makaira.io !

share

„Rein ins Getümmel!“ – twam #114

Diese Woche war es endlich soweit! Wir starten in die diesjährige Messe- und Konferenzsaison mit der Internet World EXPO 2018 in München.

Unsere allseits bekannten Kollegen André und Joscha haben für dieses Jahr den Anfang gemacht und sind nach München gefahren, um sich über neue Trends zu informieren, interessante Gespräche zu führen und natürlich unser Produkt Makaira an den Mann zu bringen.

Und das Resüme? – Ausgezeichnet! André und Joscha sind mit vielen tollen neuen Ideen und Eindrücken von der Messe zurück gekommen und bringen den Kollegen quasi ein Stück der Messe mit!

Außerdem konnte die beiden ein paar unserer Kunden treffen und in entspannter Runde über die gemeinsame Zukunft sprechen. Und last but not least, konnten wir auch noch diverse Trials für interessierte Nutzer vereinbaren.