Hinweis: Dieser Blogbeitrag stammt aus der Zeit vor dem Zusammenschluss und wurde von ARS realisiert – heute Teil von ATVANTAGE. Unsere Erfahrung bleibt – nur unser Name hat sich geändert. Hier finden Sie weitere Informationen rund um die Fusion.

Lesezeit: 4 Minuten

Demokratisierung von Softwaretests


Herkömmliche Tests von Software-Systemen sind häufig sehr technisch und detailliert, was die Beteiligung von nichttechnischen Stakeholdern und Product Managern ausschließt. Dies führt dazu, dass die Tests auf die QA oder die Entwicklungsabteilung konzentriert bleiben. Das Ergebnis ist eine eingeschränkte Perspektive auf Probleme und Lösungen. Im Folgenden wollen wir die Schwierigkeiten und Konsequenzen dieses herkömmlichen Ansatzes genauer beleuchten.

Schwierigkeiten des traditionellen Testens

Das Begrenzen der Testaktivitäten auf Entwickler oder spezialisierte Tester kann zu einer Reihe von Problemen führen:

  • Eingeschränkte Perspektive: Entwickler und Tester haben oft eine technisch orientierte Sichtweise. Dies kann dazu führen, dass wichtige Aspekte der Benutzererfahrung oder Geschäftsziele übersehen werden, die von anderen Stakeholdern wie Marketing, Vertrieb oder sogar Endkunden besser verstanden würden. Diese eingeschränkte Perspektive kann die Zufriedenheit der Nutzer beeinträchtigen und den wirtschaftlichen Erfolg des Produkts mindern.
  • Verzögerte Fehlererkennung: Wenn Tests nur von einer kleinen Gruppe durchgeführt werden, bleiben Fehler oft unentdeckt, bis sie in späteren Phasen teurer und zeitaufwendiger zu beheben sind. Das kann zum Beispiel den Produktstart verzögern und die Entwicklungskosten in die Höhe treiben.
  • Kommunikationsschwierigkeiten: Das Fehlen einer gemeinsamen Sprache zwischen technischen und nichttechnischen Teammitgliedern kann zu Missverständnissen führen. Diese Kommunikationslücken können die Zusammenarbeit erschweren und die Effizienz des Projekts beeinträchtigen.
  • Isolierung und fehlende Zusammenarbeit: Durch das isolierte Arbeiten der Entwickler und Tester kann sich eine Kluft zwischen den verschiedenen Abteilungen des Teams bilden. Diese Trennung erschwert die Zusammenarbeit und kann verhindern, dass das Team eine ganzheitliche Betrachtung des Produkts erreicht. Der Mangel an Interaktion zwischen den verschiedenen Rollen führt oft zu Reibungen und Missverständnissen, die den gesamten Entwicklungsprozess behindern können.
  • Qualitätsverlust: Die Beschränkung des Testens auf eine kleine Gruppe von Spezialisten kann zu einer niedrigeren Gesamtqualität des Endprodukts führen. Nicht alle Aspekte wie Benutzerfreundlichkeit, Kompatibilität oder Performance können gleichermaßen berücksichtigt werden. Dies kann zu einem Produkt führen, das zwar technisch funktioniert, aber in anderen wichtigen Bereichen Mängel aufweist.

Diese Probleme zeigen deutlich, dass eine Änderung der traditionellen Testmethoden notwendig ist, um eine qualitativ hochwertige und zeit- und kosteneffiziente Softwareentwicklung zu ermöglichen.

Hier können Testtools wie Cypress und Cucumber eine entscheidende Rolle spielen. Indem sie eine Brücke zwischen technischen und nichttechnischen Teammitgliedern bauen und das Schreiben von Tests in einer Sprache ermöglichen, die von allen verstanden werden kann, fördern sie die Zusammenarbeit im Testprozess. Die damit einhergehende größere Perspektiven- und Kompetenzenvielfalt ermöglicht schlussendlich ein Produkt, das besser, billiger und inklusiver ist.

Cypress

Cypress ist ein Testing Tool, welches die Automatisierung von Unit-, Integrations- und E2E-Tests im Frontend ermöglicht. Die Lernkurve, um Cypress Tests zu schreiben, ist flach und durch die BDD-Syntax (Behavior Driven Development) leicht verständlich.

Cypress Tests werden in Spec Files hinterlegt und folgen einer ähnlichen Struktur und Syntax anderer Testframeworks. Mit 'describe' können Tests gruppiert werden. Der einzelne Testfall wird in 'it' Blöcken festgehalten. 'beforeEach' und 'afterEach' werden verwendet, um die Konfiguration für die Testfälle vorzubereiten und nach Ausführung dieser aufzuräumen.

Kommandos wie cy.visit und cy.click ermöglichen die Steuerung des Browser wie das Aufrufen einer Seite oder Klicken eines Buttons. Diese sind besonders bei End-to-End Tests von hoher Relevanz.

Am Ende der Tests stehen die Assertions, die in Cypress so aussehen 'expect(Ergebnis).to.equal(Erwartung)' oder '.should(‚equal‘. Erwartung)'. Die Assertions können mit weiteren Schlüsselwörtern detailliert geschrieben und angepasst werden, um die fachliche Richtigkeit der Umsetzung zu beschreiben.

Neben der intuitiven Möglichkeit der Verwendung des Tools und Stabilität der Tests, bietet Cypress unter anderem Features wie Time Travel oder automatisiertes Warten, weshalb es momentan ein beliebtes und weit verbreitetes Testwerkzeug für JavaScript ist.

 

Wie bereits erwähnt, ist Cypress ein Testframework, mit welchem man jegliche Art von Tests in JavaScript schreiben kann, jedoch sind meistens die E2E-Tests im Kontext mit Cucumber gemeint.

Cucumber

Cucumber ist ein Tool, welches BDD unterstützt und die Kommunikation zwischen dem technischen und nicht-technischen Team verbessert. Die Tests werden in Gherkin geschrieben und haben eine durch Schlüsselwörter (Given-When-Then) vorgegebene Struktur und stellen das fachliche Verhalten eines Software-Features dar. Die Bedeutung der Wörter ist wie folgt:

  • Feature: sollte eine grobe Beschreibung des Features beinhalten
  • Example/Scenario: ist ein konkretes Beispiel, welches den Geschäftsfall definiert
  • Given: hier wird die Vorbedingung des Tests beschrieben
  • When: beschreibt die Aktion, die ausgeführt wird
  • Then: definiert das erwartete Resultat
  • And, But: um besser lesbare Tests zu erhalten, können die Vorbedingungen und Resultate aufgelistet werden

Darüber hinaus gibt es weitere primäre Schlüsselwörter wie Background, Rule, Scenario Outline, mit denen die Tests weiter vereinheitlicht und spezifiziert werden können.
Sekundäre Schlüsselwörter wie '#', '@', '"""' oder '|' werden für Kommentare, Tags, Dokumentation und tabellarische Darstellung verwendet.

 

Diese Beschreibungen werden in sogenannten Gherkin Feature Files abgelegt, welche zugleich auch eine Gruppierung der Tests darstellen. Die Tests werden in der Sprache der Anwender geschrieben, da Übersetzungen vermieden werden sollen. Aus diesem Grund sind die Gherkin Schlüsselwörter in bis zu 70 Sprachen vorhanden.

 

Natürlich ist es möglich, für jede Eingabe einen Test zu schreiben. Dies führt jedoch dazu, dass viele redundante Testbeschreibungen existieren. Um dies zu vermeiden, werden Datentabellen für das Testen von verschiedenen Datensätzen verwendet. Im vorherigen Beispiel sollen für den Titel des Tasks verschiedene Eingaben gemacht und deren Resultate überprüft werden. Dafür wird das Feature File folgendermaßen umgeschrieben:

 

Wir haben nun gesehen, dass beide Werkzeuge intuitiv zu verwenden sind. Jedoch bleibt die Frage offen, wie man aus einem Gherkin Feature File einen lauffähigen Cypress Test erhält?

Für eine Umwandlung werden sowohl ein Preprocessor, welcher die Feature Files in Cypress Tests umwandelt, als auch die Step Definitions benötigt. Zum Preprocessor ist noch anzumerken, dass verschiedene Implementierungen existieren, diese sich jedoch nur im Detail unterscheiden.

Zu den einzelnen Schritten in den Feature Files müssen noch Step Definitions in Cypress definiert/geschrieben werden. Dabei werden nur die Schritte definiert, die für einen erfolgreichen Testlauf von Bedeutung sind, d.h. Schritte wie Funktionalität, ein Kommentar oder Szenario werden nicht in die Step Definitions aufgenommen, da sie nur von informativer Natur sind.

Abgeleitet aus dem Feature Files Beispiel mit der Datentabelle werden also folgende Schritte in eine Step Definition Datei übernommen:

 

Im Feature File wird eine Datentabelle für die Beschreibung Wenn und Dann benutzt. Entsprechend sind die Schritte in den Step Definitions zu parametrisieren.

Fazit

Cypress und Cucumber bilden ein starkes Team, das die Teststrategie verbessern und vielleicht sogar revolutionieren kann. Die Tests können jedoch nicht von Beginn eines Projektes alleine von nicht-technischen Stakeholdern umgesetzt werden. Es bedarf noch Entwickler bzw. technische Mitglieder eines Teams, die sowohl das Projekt entsprechend vorbereiten als auch die Step Definitions implementieren.

Die Umsetzung der Step Definitions wird am Anfang des Projektes noch aufwendig sein, aber nach und nach können bestimmte Schritte, wie beispielsweise die Navigation zu einer Seite, wiederverwendet werden. Somit kann ein nicht-technischer Stakeholder im Laufe des Entwicklungsprozesses immer selbstständiger Tests implementieren und dadurch die technischen Stakeholder beim Testen unterstützen. Kein Testing-Tool ersetzt jedoch klare Testgrenzen, eine gute Organisation und eine saubere Implementierung. Bei der anfänglichen Einbindung in eine Test-Infrastruktur können auch andere Hürden auftreten, die jedoch mit guter Planung überwunden werden können.

Mögliche Widerstände und Schwierigkeiten, die berücksichtigt werden sollten, sind unter anderem:

Fehlender Wille: Ein Mangel an Engagement oder Verständnis für die Vorteile dieser Tools kann die Einführung behindern.

Konservative Einschätzungen: In einigen Organisationen könnte es eine Neigung geben, an bewährten Methoden festzuhalten, was die Einführung neuer Tools verlangsamen würde.

Verschiebungen des Aufwands: Obwohl die Einführung dieser Tools langfristig Vorteile hat, könnte sie zunächst zusätzliche Ressourcen in Form von Schulung, Anpassung und Integration erfordern. Ebenso sollten die Konsequenzen bedacht werden, die der Mehraufwand zum Beispiel auf Seiten des Product Owners mit sich bringt und ob dieser überhaupt die Zeit dafür aufbringen kann.

Technische Hürden: Die Integration in bestehende Systeme könnte technisch anspruchsvoll sein und spezialisiertes Wissen erfordern.

Darüber hinaus sollte man sich immer schon vor dem eigentlichen Testen im Klaren darüber sein, welchen Umfang die Tests haben sollen, was genau abgetestet werden soll und wann und wo die Tests laufen. Alle diese Faktoren sollten sorgfältig geplant und abgewogen werden, um sicherzustellen, dass die Einführung von Cypress und Cucumber reibungslos verläuft. Wenn man das alles bedenkt, ist der Weg für eine neue und grandiose Testerfahrung geebnet und kann mit Freude begangen werden, trotz der möglichen Herausforderungen, die überwunden werden müssen.

Blogautoren

Gerhard Knapp
Softwareentwickler ARS Computer und Consulting GmbH
David Nguyen
Softwareentwickler ARS Computer und Consulting GmbH

Ihr Erfolg ist unser Ziel

Stehen Sie vor komplexen IT-Projekten? Mit unserer Expertise bieten wir Ihnen maßgeschneiderte Lösungen. Erfahren Sie mehr.

Werde Teil unseres Teams

Wir suchen ständig nach neuen Talenten. Für dich haben wir genau die richtige Stelle. Schau dir unsere offenen Positionen an.

Noch Fragen? Wir helfen Ihnen gerne!

novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog 30.10.19

Testen von Angular Anwendungen mit Cypress

Cypress ist ein End-to-End Testing Framework, mit dem man einfache Tests erstellen kann, die in Echtzeit ausgeführt werden. Mit Cypress kann man auch Snapshots von den einzelnen Schritten während der Testausführung sehen. Tests können schnell erstellt werden, ohne dass bestimmte Server oder Driver benötigt werden.

News 08.06.22

Schnellere App-Entwicklung dank Mendix-Partnerschaft

Die TIMETOACT GROUP baut ihre Kompetenz rund um Low-Code durch eine Partnerschaft mit den Experten von Mendix weiter aus.

Referenz

Turck Holding schafft effizientere IT-Struktur

Mehr Effizienz und Struktur durch eine nachhaltige IT-Strategie: Die Turck Holding GmbH stellt ihre IT-Organisation neu und zukunftssicher auf.

Social

Sommerfest Wasserski & BBQ 2022

Jedes Jahr laden wir alle Mitarbeitenden und deren Familien ein, um gemeinsam einen gemütlichen Tag am Wasserski See in Langenfeld auf und neben dem Wasser zu verbringen.

Social

Gemeinsam sind wir stark! - ITCS-Messe in Köln 2024

Das haben wir im September auf der ITCS-Messe in Köln wieder einmal bewiesen. Als Team haben wir die Vielfalt unserer Group präsentiert und für viel Aufmerksamkeit gesorgt! Besonders stolz sind wir auf die inspirierenden Vorträge von Hermann, Lisa und Matthias über Künstliche Intelligenz und den Zusammenhalt in der TIMETOACT GROUP sowie Vanessa, die ihren Weg als Frau in der IT auf der Women in Tech Bühne geteilt hat. Auch Benedict und Sophia haben mit ihrem Beitrag über das perfekte Rezept für Design -& Frontend-Projekte überzeugt und Innovationen gezeigt.🚀 Ein weiteres Highlight war der spannende Vortrag zu effizienten visuellen Regressionstests im CI/CD-Kontext von Marius🛠️ Ein großer Dank geht auch an Johanna, die den gesamten Tag so engagiert die Women in Tech Bühne moderiert hat.

News 11.12.24

JOIN(+) wird Teil der TIMETOACT GROUP

Köln/Villingen-Schwenningen, 11. Dezember 2024 – Die TIMETOACT GROUP erwirbt mit JOIN(+) ein erfahrenes Beratungshaus zu Big Data & AI. Die Geschäftsführer der JOIN(+) leiten das Unternehmen weiter.

Event 19.05.22

8. Zukunftskongress Staat & Verwaltung

Vom 20. bis 22. Juni 2022 findet der 8. Zukunftskongress Staat und Verwaltung live im bcc Berlin Congress Center statt.

Jun 20
News

Studie Legacy-Modernisierung 2022

Wo stehen Unternehmen aktuell beim Thema Legacy-Modernisierung? Mit dieser und weiteren Fragestellungen beschäftigt sich die Studie "Legacy-Modernisierung 2022".

Event

Rethink! IT 2022!

Treffen Sie die Expert*innen der TIMETOACT GROUP auf dem Kongress rund um Digitalisierungsstrategien

Sep 21
News 29.09.22

TIMETOACT GROUP erwirbt Monitoring Spezialist OpenAdvice

Wir erweitern unser Angebot im Bereich Application Performance Monitoring und Business Service Assurance durch den Erwerb der OpenAdvice IT Services GmbH.

Standort

Barcelona

Finden Sie die catworkx S.L. Spain: Av. Diagonal 640, Planta 6 08017 Barcelona, Spanien, +34 936 07 24 80, info-es@catworkx.com

Teamarbeit mit Tasse und Tastatur
Referenz

HCL Connections und ICEC vereinen sich zu einem globalen, cl

SikaWorld 2.0 in der Schweiz – Connections und das Connections Engagement Center vereinen sich zu einem globalen, cloud-basierten Social Intranet für 15.000 User.

Referenz

Beratung zur ivv Kollaborationsstrategie

Die zukünftige Kollaboration der ivv ist geprägt durch moderne Kommunikations- und Kollaboration-Werkzeuge und für das organisationsübergreifende Arbeiten im Verbund und mit Externen definiert.

Event

Webcast: KI für Versicherer

Dr. Matthias Quaisser erläutert Ihnen praktische Projekterfahrung und Erfolgsfaktoren von KI und erzählt von fachliche Anwendungsfälle von KI bei Versicherern.

May 14
Event 06.05.20

Webcast: Versicherung und Data Science

Marc Bastian zeigt Ihnen ein Beispiel einer analytischen Infrastruktur für KI Anwendungsfälle, praktische Projekterfahrung und Erfolgsfaktoren.

Event

Webcast: Cloud Transformation & "run your App"

Lernen Sie mit Jochen Schneider die Cloud 1.0 (Cloud 1.0 (Lift&Shift), Cloud 2.0 (Microservices, Big Data) und Cloud 3.0 (Multi Cloud Management, Big Compute) kennen.

Event

Webcast: Das kognitive Versicherungsunternehmen

Lernen Sie von Dr. Jürgen Huschens das Konzept des Kognitive Enterprise kennen, die Adaption auf die Versicherungsindustrie und vieles mehr.

Event

Webcast: Smarte Erkennung von Kostennoten

Unsere Speaker Madeline Jolk und Frank Trila von der TIMETOACT berichten Ihnen alles rund um das Thema Erkennung von Kostennoten.

Event

Webcast: Regresspotenziale nutzbar mit KI

André Ullrich von der Roland Rechtsschutz AG erzählt Ihnen in einem Praxisbericht, wie Regresspotenziale mit KI nutzbar gemacht werden können.

Event

Webcast: VA-IT Anforderungen umsetzen

Unsere Experten Kerstin Gießer und Carsten Hufnagel von der TIMETOACT berichten Ihnen, wie VA-IT-Anforderungen schnell und Modular umgesetzt werden können.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!