Blog über Software, Mensch und Persönlicher Entwicklung

Cypress - Richard Seidl

Geschrieben von Richard Seidl | 17.07.2023

Dehla arbeitet schon viele Jahre mit Automatisierungstools. Cypress hat sie überzeugt. Das Open Source Tool hat viele Vorteile wie den flexiblen Einsatz in mehreren Teststufen und die Schnelligkeit. Doch Cypress hat natürlich auch Grenzen. Dehla erklärt, wie man mit Cypress vorgeht und wie ihr Team damit arbeitet. Zum Schluss gibt sie noch wertvolle Tipps für alle, die Cypress ausprobieren wollen.

“Cypress schafft es, die Schnelligkeit eines Tests zu verbinden mit dem visuellen Feedback” – Dehla Sokenou

Dr.-Ing. Dehla Sokenou promovierte 2005 an der TU Berlin über UML-basiertes Testen. Sie fühlt sich in allen Phasen der Softwareentwicklung zu Hause, einen besonderen Schwerpunkt bilden allerdings auch weiterhin alle Themen rund um Qualitätssicherung und Testen. Bei der WPS ist sie als Test- und Qualitätsmanagerin sowie Softwarearchitektin tätig. Daneben ist sie Sprecherin der GI-Fachgruppe Test, Analyse und Verifikation von Software (TAV) und im Sprechergremium des Arbeitskreises Innovative Testmethoden.

Highlights in dieser Episode:

  • Dehla hat auf dem German Testing Day 2023 über Cypress gesprochen
  • Cypress ist ein Testautomatisierungs-Framework, das ursprünglich als End-to-End-Testing-Tool gestartet ist
  • Es bietet visuelles Feedback und ein ‘Daumen-Kino’ Feature, das zeigt, was während der Tests passiert
  • Cypress verwendet echte Browser für Tests und ermöglicht Test-Driven-Development im Frontend
  • Es unterstützt JavaScript und TypeScript und bietet die Möglichkeit, Tests direkt neben den Komponenten zu platzieren
  • Cypress hat regelmäßige Updates und ist sowohl als Open-Source-Projekt als auch in einer kommerziellen Variante verfügbar
  • Die kommerzielle Variante bietet zusätzliche Features wie Testparallelisierung und ein Dashboard für das Management
  • Dehla empfiehlt die Verwendung der Testing Library zusammen mit Cypress für intuitivere und stabilere Tests

Cypress: Revolution im Bereich der Testautomatisierung

Dehla stellt Cypress vor, ein revolutionäres Testautomatisierungstool für Webentwicklungen. Sie geht auf die Vorteile von Cypress ein, spricht über Herausforderungen und Best Practices und erzählt, wie es die Testlandschaft verändert.

Cypress ist mehr als nur ein Selenium-Konkurrent

Cypress startete als End-to-End-Testing-Tool und positionierte sich schnell als starker Gegenspieler zu Selenium. Jedoch hat es sich seitdem weit darüber hinaus entwickelt. Besonders interessant ist die Einführung des Component-Testing, welches eine neue Perspektive auf Frontend-Tests eröffnete. Statt die Testpyramide auf den Kopf zu stellen, ermöglicht Component-Testing eine fokussiertere Betrachtung einzelner Komponenten – eine Methode, die schnelleres Feedback und höhere Teststabilität verspricht.

Der Umgang mit Tests: Ein Paradigmenwechsel

Dehla erzählte von dem Paradigmenwechsel in der Herangehensweise an Tests durch Cypress. Anstatt umständlich Jest zu verwenden, das nicht im echten Browser testet und somit oft instabil ist, nutzt Cypress den echten Browser für Tests. Dies führt nicht nur zu einer höheren Stabilität der Tests, sondern auch zu einem visuellen Feedback während des Testprozesses. Besonders hervorgehoben wird das ‘Daumen-Kino’-Feature von Cypress, das es erlaubt, jeden Schritt eines Tests zu visualisieren und somit einen unmittelbaren Einblick in das Verhalten der getesteten Komponente bietet.

Test-driven Development im Frontend

Cypress hat auch neue Möglichkeiten für Test-driven Development (TDD) im Frontend eröffnet. Durch die intuitive Handhabung des Tools beginnen Entwicklerinnen und Entwickler mit dem Schreiben von Tests noch bevor die eigentliche Komponente existiert. Dieser Prozess unterstützt eine strukturierte Entwicklung und hilft dabei, Features schrittweise einzuführen und sofortiges Feedback zu erhalten.

Die Evolution von Cypress

Cypress entwickelt sich kontinuierlich weiter. Von den Anfängen als einfaches Testing-Tool bis hin zur aktuellen Version 12 hat Cypress mehrere bedeutende Updates erfahren. Diese Updates umfassten nicht nur Bugfixes und Performance-Verbesserungen, sondern auch die Einführung neuer Features wie Component-Testing für verschiedene Frameworks (React, Vue, Angular). Trotz kleinerer Hürden bei der Einführung neuer Funktionen ist es deutlich geworden, dass die Probleme mittlerweile behoben sind und Cypress eine stabile Umgebung für Frontend-Tests bietet.

Tipps für den Einstieg

Für alle, die mit Cypress beginnen möchten, empfiehlt Dehla, sich gründlich einzulesen und sich mit dem Setup vertraut zu machen. Ein wesentlicher Tipp ist die Nutzung der Testing Library zusammen mit Cypress für eine intuitivere Gestaltung von Tests. Dieser Ansatz erleichtert nicht nur das Schreiben von Tests aus Benutzersicht sondern trägt auch zur Stabilität bei. Der Schlüssel zum Erfolg liegt darin einfach anzufangen und eigene Erfahrungen zu sammeln.