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!

Software Entwickler
News 16.12.21

Lernen Sie das kostenlose Open-Source-Produkt Cypress kennen

Web Apps und Webseiten vollautomatisiert testen: Eine neue Einsteigerschulung bei edcom zeigt Ihnen, wie Sie Cypress installieren, Tests schreiben und wie Sie das Tool in Ihren Softwareentwicklungs-Prozess einbauen.

Service 08.08.22

Technical Account Manager (TAM)

Persönlicher, technischer Berater zur Wertsteigerung bei Atlassian-Software-Anwendungen.

Icon Atlassian Dev Tools
Produkt 08.08.22

Dev Tools

Durchsuchen, testen, reviewen und verwalten Sie Ihren Code mit den Atlassian Entwicklungstools (Dev Tools): Bitbucket, Bamboo, Fisheye etc.

Teaser Referenz IAM Silhouette
Referenz 21.04.23

Cyber-Sicherheit dank Multi-Faktor-Authentifizierung

Angriffe auf die IT-Infrastruktur sind für Unternehmen eine ernsthafte Bedrohung. Die Silhouette Group wollte sich besser gegen Cyberangriffe schützen. ✅ Lesen Sie mehr dazu.

Headerbild für Prozessautomatisierung
Kompetenz 09.01.24

Prozessautomatisierung

Unsere Expert:innen unterstützen Sie mit Methodenwissen und Umsetzungskompetenz dabei, Ihre Prozesse zu automatisieren und so schneller bessere Ergebnisse zu liefern.

Partner 28.09.22

//SEIBERT/MEDIA

Seibert Media entwickelt und vertreibt Software für eine bessere Zusammenarbeit in Teams.

Anonyme Referenz
Referenz

BAW unterstützt bei der Integration neuer Mitarbeiter

Gemeinsam mit X-INTEGRATE und BAW-Software der IBM entwickelt ein Schweizer Forschungsinstitut einen automatisierten On Boarding-Prozess. Hierdurch wird die Einarbeitungszeit deutlich vermindert und der Mitarbeiter insgesamt besser und schneller in sein Aufgabenfeld integriert.

Lösung 21.09.22

IT-Service-Management (ITSM)

Auf Basis von IT-Service-Management (ITSM) lassen sich (Geschäfts-)Prozesse im Sinne der Kunden- und Serviceorientierung verbessern – wichtig dabei ist der Einsatz richtiger Tools und der strukturierte Aufbau der IT-Abteilung.

Produkt

Cloud Machine Learning

Statt Code zu schreiben, der die vom Computer auszuführende Aktion beschreibt, liefert Euer Code einen Algorithmus, der sich selbst anpasst. Mit Machine Learning schneller und besser lernen!

CLOUDPILOTS, Google Workspace, G Suite, Google Cloud, GCP, MeisterTask, MindMeister, Freshworks, Freshdesk, Freshsales, Freshservice, Looker, VMware Engine
Produkt

Google Analytics

Mit Google Analytics werden Websitedaten mit kostenlosen Tools an einem Ort umfassend analysiert. Mit drei einfachen Schritten die eigene Kundschaft besser verstehen.

Teaserbild Managed Service IPG
Blog 16.01.25

IAM Managed Service: Der Schlüssel zur digitalen Sicherheit

Die Vorteile von IAM Managed Services: umfassende Überwachung, schnelle Fehlerbehebung und transparente Kostenstruktur für maximale Sicherheit und Effizienz im Unternehmen. Lesen Sie hier mehr.

Gruppe von Studenten
Blog 04.01.22

Microsoft Viva – was bietet die neue Plattform?

Das neue Microsoft 365 Tool für eine verbesserte Employee Experience. Lesen Sie im Blogbeitrag von Ralph Siepmann, was genau sich hinter Microsoft Viva verbirgt.

Offering

Agiles Onboarding mit BPM Webinar

Business Process Management unterstützt Sie dabei, Ihre neuen Mitarbeiter insgesamt besser und schneller in das jeweilige Aufgabenfeld zu integrieren. Erfahren Sie mehr in unserem Webcast!

Logo Jira Service Management
Technologie

Jira Service Management von Atlassian

Ermöglichen Sie Developern, Operatorn sowie weiteren Teams verschiedener Abteilungen die Zusammenarbeit und verbessern Sie deren Reaktionsgeschwindigkeit im Service Management. Reagieren Sie so schnell auf Vorfälle, Anfragen sowie Änderungen und bieten Sie Ihren Kunden ein optimiertes Serviceerlebnis.

Blog 17.10.24

IoT und Edge AI: Technologien für die smarte, morgige Welt

Wie schafft man den Sprung von einer Idee zu einem marktfähigen Produkt? Gaylord Aulke, CEO von der 100 DAYS software projects GmbH, hat in der neusten insights!-Folge genau darüber gesprochen und erklärt, warum Edge AI – die Verarbeitung von Daten direkt am Gerät – der Schlüssel zu schnelleren Innovationen und mehr Datenschutz ist. Durch schnelle Prototypen, frühes Testen und flexible Anpassungen können Unternehmen agil bleiben und sich den Herausforderungen der modernen Technologie stellen.

News

Whitepaper: IBM Software Compliance Audits meistern

Mit unserem Whitepaper möchten wir IBM Software Kunden ein Hilfsmittel an die Hand geben, um den Prozess des IBM Software Compliance Audits besser zu verstehen und die einzelnen Bausteine erfolgreich zu meistern.

Partner 28.09.22

Elements

Elements build dedicated software extensions for Jira and Confluence, the popular software tools for project management collaboration.

soluzione Logo
Technologie Übersicht 12.11.21

Innovative Lerntechologien mit soluzione

Qualifizieren Sie Ihre Mitarbeiter mit innovativen Lerntechnologien, z.B. für Software-Migrationen zu Microsoft Office, Windows und Productivity-Tools.

Bild zur Newsmeldung IPG und IdentityNow
News 06.01.20

Mehr Zeit fürs Wesentliche mit IPG und IdentityNow

Die Software as a Service (SaaS) Lösung IdentityNow von SailPoint bietet einen hohen Standardisierungsgrad und kann sehr schnell in Betrieb genommen werden.

Referenz

Wie schnell reagiert Jira? Load Simulation liefert Antworten

Schnelle Zugriffe und Antwortzeiten - ein entscheidendes Kriterium bei der Auswahl für eine neue Unternehmens-Software. Die Load Simulation von catworkx hilft bei der Entscheidung, denn hier...

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!