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!

Blog 26.10.23

Given/When/Then und ATDD - Eine Win-Win-Win-Situation!?

Erfahren Sie, wie die Methode Given, When, Then (GWT) und Acceptance Test-Driven Development (ATDD) in agilen Projekten angewendet werden können, um Akzeptanzkriterien frühzeitig zu beschreiben. Entdecken Sie die Vorteile und Herausforderungen dieser Testmethode und wie sie die Zusammenarbeit zwischen Fachbereichen, Entwicklern und Testern verbessert. Eine Win-Win-Win-Situation für alle Projektbeteiligten!

Online survey filling out and digital form checklist by laptop computer, Document Management Checking System, online documentation database and process manage files
Blog

Mit End-to-End Testing zur einwandfreien Webanwendung

Webanwendungen sind selten statisch. Damit bestehende Funktionen und Layouts dabei keinen Schaden nehmen, kommen End-to-End Tests zum Einsatz.

Wissen

Filetransferlösungen Teil 3 - Funktionen und Eigenschaften

Nachdem die vorangegangenen zwei Blogeinträge nähere Details zu WebSphere MQ und der WebSphere MQ FTE-Architektur lieferten, geht der dritte Teil der Blogserie nun näher auf die Funktionen ein, welche WebSphere MQ FTE im Wesentlichen bietet.

Wissen

Filetransferlösungen mit IBM WebSphere MQ File transfer

IBM WebSphere MQ File Transfer Edition ist ein Produkt, welches im Wesentlichen auf das bereits seit über 15 Jahren etablierte und weit verbreitete Messaging-System IBM WebSphere MQ aufsetzt. Diese Blogserie soll Sie näher in WebSphere MQ einzuführen.

Wissen

REST-API und andere kleine Helferlein

Der Sterling Integrator wird in vielen Unternehmen zusammen mit dem Sterling File Gateway als zentrale Schnittstelle und Datendrehscheibe eingesetzt. In diesem Artikel erhalten Sie ein Update-Review zu Sterling B2B Integrator 5.2.6.2 und Filegateway 2.2.6.2.

News 21.04.21

Neue Features für „Teamworkx Issue Picker for Jira" (Cloud)

Die von catworkx entwickelte Lösung „Teamworkx Issue Picker for Jira” ermöglicht die zielgerichtete Verlinkung zwischen zwei oder mehreren Jira-Vorgängen. Die App ist über den Atlassian Marketplace für alle Jira-Varianten und Deployment-Optionen verfügbar. In der Cloud-Version 1.1.1 sind jetzt zwei neue Features hinzugekommen, die die funktionelle Lücke zum Funktionsumfang der Server-App weiter schließt.

Blog 11.08.23

AWS Lambda: Erste Schritte mit Java

In diesem Artikel lernen wir, was die Vorteile bei der Verwendung von AWS Lambda sind u. wie wir Java-Code in AWS-Lambda installieren und ausführen können.

Arbeit am Laptop
Wissen

Qualität der Messagingsysteme

Welche Funktionalitäten bieten Messagesysteme? Wo liegen die Unterschiede zwischen frei verfügbaren und kommerziellen Messagingsystemen? Lesen Sie in diesem Artikel mehr.

Wissen

Methodisches Vorgehen in IBM BPM

Im Software Engineering ist das passende Vorgehensmodell essenziell für die Strukturierung des Entwicklungsprozesses eines Projekts. Für Software-Projekte auf Basis der Plattform IBM Business Automation Workflows gibt es die IBM BPM Playback Methodology.

Icon Atlassian Jira Align
Produkt 25.02.25

Jira Align

Bindeglied zwischen der Definition umfassender Geschäftsstrategien und der agilen technischen Umsetzung

Illustration Atlassian Enterprise
Produkt

Atlassian-Produkte

Die gesamte Produktpalette von Atlassian ist darauf ausgerichtet, die Arbeit von Projekt-Teams zu optimieren.

Headerbild zu IBM Watson Assistant
Technologie

IBM Watson Assistant

Watson Assistant erkennt Intention in Anfragen, die über multiple Kanäle eingehen können. Watson Assistant wird anhand Real-Live Anforderungen angelernt und kann aufgrund der agierenden KI Zusammenhänge und Intention der Anfrage verstehen. Umfangreiche Rechercheanfragen werden an Watson Discovery geroutet und nahtlos in das Suchergebnis eingebettet.

Headerbild zu IBM Watson Discovery
Technologie

IBM Watson Discovery

Mit Watson Discovery werden Unternehmensdaten mittels moderner KI durchsucht, um Informationen zu extrahieren. Dabei nutzt die KI einerseits bereits antrainierte Methoden, um Texte zu verstehen, andererseits wird sie durch neues Training an den Unternehmensdaten, deren Struktur und Inhalten ständig weiterentwickelt und so die Suchergebnisse ständig verbessert.

Blog 16.12.20

Das synaigy-Framework Teil 3

Der priorisierte Matchplan ist Grundlage für die in den einzelnen Phasen einzuführenden Systeme. Er ist sozusagen die Übersichtskarte der nun folgenden Schritte in großem Maßstab. Die Karte wird durch die in den nächsten Schritten erstellten Konzepte Stück für Stück höher aufgelöst.

Blog 19.01.23

Digitalisierung und das richtige Mindset

Digitalisierung erfordert Umdenken weg von Projekten hin zu Produkten. DevOps und offene Fehlerkultur bestimmen moderne IT-Organisationen - auch bei Ihnen?

Headerbild zu IBM Watson Knowledge Studio
Technologie

IBM Watson Knowledge Studio

In IBM Watson Knowledge Studio trainieren Sie eine Künstliche Intelligenz (KI) auf Fachbegriffe Ihres Unternehmens oder Fachbereichs ("Domain Knowledge"). Auf diese Weise legen Sie die Grundlage für die automatisierte Textverarbeitung umfangreicher, fachbezogener Dokumente.

Lösung

Adobe – ein hervorragendes Kundenerlebnis schaffen

Kunden erwarten ein ansprechendes und personalisiertes Einkaufserlebnis – und das in Echtzeit. Schaffe jetzt deine digitale Transformation mit dem Marktführer Adobe.

Referenz

Verbesserte Performance und Stabilität durch RCA

Root-Cause-Analysen, kurz RCA (zu deutsch: Fehler-Ursachen-Analyse) gehen Problemen auf den Grund. Richtig eingesetzt, verbessern sie nicht nur die Sicherheit von IT-Infrastrukturen (z.B. Atlassian-Umgebungen) in Unternehmen, auch werden Fehler eliminiert und dadurch steigt die Performance.

Blog 09.12.24

Smarte digitale Berechtigungskonzepte mit NEXIS 4.1

Digitale Berechtigungskonzepte sind der Schlüssel zu mehr IT-Sicherheit und Effizienz. Entdecken Sie, wie NEXIS 4.1 moderne Anforderungen erfüllt und Ihre Prozesse revolutioniert.

Technologie Übersicht

Wir sind Ihr Partner rund um Snowflake

Mit der Snowflake Data Cloud verwalten Sie Ihre Daten zentral an einem Ort. Wir unterstützen und beraten Sie gerne zu Snowflake.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!