{"id":1282,"date":"2024-05-10T14:09:56","date_gmt":"2024-05-10T12:09:56","guid":{"rendered":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/automatisiertes-testen\/test-getriebene-entwicklung-gurke\/"},"modified":"2024-07-11T09:43:31","modified_gmt":"2024-07-11T07:43:31","slug":"test-getriebene-entwicklung-gurke","status":"publish","type":"post","link":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/automatisiertes-testen\/gurken-tutorial\/test-getriebene-entwicklung-gurke\/","title":{"rendered":"Testgetriebene Entwicklung und Cucumber-Einf\u00fchrung"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Inhalts\u00fcbersicht<\/h2>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-vyvoj-riadeny-testami-tdd\">V\u00fdvoj riaden\u00fd testami (TDD)<\/a><ul><\/ul><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-cucumber\">Cucumber<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyvoj-riadeny-testami-tdd\">Testgetriebene Entwicklung (TDD)<\/h2>\n\n<p>Testgetriebene Entwicklung (TDD) ist eine Entwicklungsmethode, die sich auf das Schreiben von Tests vor der Implementierung von Funktionen konzentriert. Es handelt sich um einen iterativen Prozess, der sich auf die Erstellung von Tests, deren Ausf\u00fchrung und die anschlie\u00dfende Implementierung der Funktionalit\u00e4t konzentriert, damit die Tests erfolgreich sind.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-tdd-postupuje-podla-nasledujucich-krokov\">TDD l\u00e4uft in folgenden Schritten ab:<\/h2>\n\n<ol class=\"wp-block-list\">\n<li>Schreiben Sie einen Test: Der erste Schritt besteht darin, einen Test zu schreiben, der die gew\u00fcnschte Funktionalit\u00e4t beschreibt, die implementiert werden soll. Dieser Test sollte fehlschlagen, da die Funktionalit\u00e4t noch nicht implementiert ist.<\/li>\n\n\n\n<li>Test ausf\u00fchren: Der Test wird ausgef\u00fchrt, um zu pr\u00fcfen, ob er fehlschl\u00e4gt, was das erwartete Ergebnis ist.<\/li>\n\n\n\n<li>Implementierung der Funktionalit\u00e4t: Auf der Grundlage des Tests wird die Funktionalit\u00e4t so implementiert, dass der Test bestanden wird. Dies bedeutet, dass ein ausreichender Code geschrieben werden muss, der die Anforderungen des Tests erf\u00fcllt.<\/li>\n\n\n\n<li>Wiederholung des Tests: Nach der Implementierung wird der Test erneut durchgef\u00fchrt. Wenn sie bestanden wird, bedeutet dies, dass die Funktionalit\u00e4t korrekt implementiert wurde.<\/li>\n\n\n\n<li>Refactoring: Nachdem der Test erfolgreich bestanden wurde, kann der Code \u00fcberarbeitet werden. Das bedeutet, dass die Qualit\u00e4t und die Lesbarkeit des Codes verbessert werden, ohne die korrekte Funktion der Tests zu beeintr\u00e4chtigen.<\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-vyhody-vyvoja-riadeneho-testami-su\">Die Vorteile der testgetriebenen Entwicklung sind:<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Bessere Codequalit\u00e4t: TDD f\u00fchrt zu einer starken Testabdeckung und damit zu einer h\u00f6heren Codequalit\u00e4t. Jede \u00c4nderung am Code wird durch Tests \u00fcberpr\u00fcft, um sicherzustellen, dass sie keine unerw\u00fcnschten Nebeneffekte hat.<\/li>\n\n\n\n<li>Gr\u00f6\u00dferes Vertrauen: TDD bringt ein gr\u00f6\u00dferes Vertrauen in die Korrektheit der implementierten Funktionalit\u00e4t. Wenn die Tests erfolgreich sind, k\u00f6nnen Sie sicher sein, dass der Code wie erwartet funktioniert.<\/li>\n\n\n\n<li>Schnelles Feedback: TDD erm\u00f6glicht eine sofortige R\u00fcckmeldung, wenn Tests erfolgreich sind oder fehlschlagen. Dies erm\u00f6glicht eine schnelle Erkennung und Korrektur von Fehlern.<\/li>\n\n\n\n<li>Verbesserte Design-F\u00e4higkeit: TDD ermutigt gutes Code-Design, weil es Ihnen erlaubt, \u00fcber die Testbarkeit und Nutzbarkeit Ihres Codes zu denken, wie Sie es erstellen.<\/li>\n\n\n\n<li>Dokumentation: Tests in TDD dienen auch als Dokumentation, da sie die erforderlichen funktionalen Anforderungen und die erwarteten Ergebnisse beschreiben.<\/li>\n<\/ul>\n\n<p>Die testgetriebene Entwicklung (TDD) ist eine n\u00fctzliche Methode f\u00fcr Entwickler, da sie die Codequalit\u00e4t verbessert, das Vertrauen in die Korrektheit der Implementierung erh\u00f6ht und ein schnelles Feedback erm\u00f6glicht. TDD zwingt Sie dazu, bereits in den fr\u00fchen Phasen der Entwicklung \u00fcber Testbarkeit und Design nachzudenken, was zu besserer und robusterer Software f\u00fchrt.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-cucumber\">Gurke<\/h2>\n\n<p>Cucumber ist ein Open-Source-Tool f\u00fcr Akzeptanztests, mit dem Sie Testszenarien in einer einfachen und leicht verst\u00e4ndlichen Sprache namens Gherkin schreiben k\u00f6nnen. Cucumber-Skripte sind in einem Format geschrieben, das nicht nur f\u00fcr Entwickler, sondern auch f\u00fcr andere interessierte Personen wie Manager, Tester oder Kunden leicht zu lesen ist.<\/p>\n\n<p>Cucumber unterst\u00fctzt einen verhaltensgesteuerten Entwicklungsansatz (BDD), der die Kommunikation und Zusammenarbeit zwischen den verschiedenen Teammitgliedern betont, um ein besseres Verst\u00e4ndnis der Anforderungen und das richtige Funktionieren der Software zu erreichen.<\/p>\n\n<p>Die wichtigsten Merkmale der Gurke sind:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Gherkin-Syntax: Cucumber verwendet die Gherkin-Syntax, die einfach und leicht zu lesen ist. Szenarien werden in Form von Schritten geschrieben, die durch Schl\u00fcsselw\u00f6rter wie &#8222;Gegeben&#8220;, &#8222;Wenn&#8220;, &#8222;Dann&#8220; und andere ausgedr\u00fcckt werden, die es erm\u00f6glichen, das erwartete Verhalten der Software klar zu definieren.<\/li>\n\n\n\n<li>Testautomatisierung: Mit Cucumber k\u00f6nnen Sie in Gherkin-Syntax geschriebene Tests mit Programmiersprachen wie Java, Ruby, C# und anderen automatisieren. So k\u00f6nnen Sie Tests mit vorhandener Software verbinden und ihre Ausf\u00fchrung automatisieren.<\/li>\n\n\n\n<li>Leichte Zusammenarbeit: Cucumber macht es den Teammitgliedern leicht, zusammenzuarbeiten, da die Gherkin-Sprache von allen verstanden wird. Szenarien k\u00f6nnen als gemeinsame Darstellung von Anforderungen verwendet werden, um sicherzustellen, dass alle Beteiligten die gleiche Vorstellung davon haben, was die Software leisten soll.<\/li>\n\n\n\n<li>Reporting: Cucumber bietet umfangreiche Reporting-Funktionen, mit denen Sie Ihre Testergebnisse verfolgen und verwalten k\u00f6nnen. Sie k\u00f6nnen \u00fcbersichtliche Berichte erstellen, die erfolgreiche und fehlgeschlagene Szenarien sowie Details zu den einzelnen Schritten enthalten.<\/li>\n<\/ul>\n\n<p>Cucumber ist ein hervorragendes Tool f\u00fcr Akzeptanztests und unterst\u00fctzt den BDD-Ansatz bei der Softwareentwicklung. Die einfache und klare Gherkin-Sprache erm\u00f6glicht eine bessere Kommunikation zwischen den Teammitgliedern und verbessert das Verst\u00e4ndnis der Anforderungen. Die Testautomatisierung in Cucumber erh\u00f6ht die Testeffizienz, und die Berichterstellung erm\u00f6glicht es Ihnen, die Ergebnisse zu verfolgen und Testszenarien zu verwalten.<\/p>\n\n<p>In Cucumber gibt es zwei Arten von Dateien &#8211; eine Funktionsdatei und eine Schrittdefinitionsdatei.<\/p>\n\n<p><strong>Feature-Datei<\/strong> &#8211; Eine Feature-Datei definiert ein bestimmtes Anwendungsverhalten in Klartext. Er kann von einem QA, einem Business-Analysten, einem Kunden oder sogar von einem nicht-technischen Stakeholder geschrieben werden. Funktionsdateien in Cucumber werden in Given-When-Then-Form geschrieben. Beispiel f\u00fcr einen Satz von Funktionen:<\/p>\n\n<p><strong>Funktion: Addition im Google-Taschenrechner pr\u00fcfen<\/strong><\/p>\n\n<p>  Um zu \u00fcberpr\u00fcfen, ob der Google-Rechner korrekt funktioniert<\/p>\n\n<p>  Als Nutzer von Google<\/p>\n\n<p>  Ich sollte in der Lage sein, ein korrektes Additionsergebnis zu erhalten<\/p>\n\n<p>  Szenario: Addition<\/p>\n\n<p>   <strong>Vorausgesetzt,<\/strong> ich \u00f6ffne google.com<\/p>\n\n<p>   <strong>Wenn ich<\/strong> 2+2 in das Suchfeld eingebe<\/p>\n\n<p>   <strong>Dann<\/strong> sollte ich als Ergebnis 4 erhalten<\/p>\n\n<p><strong>Schrittdefinitionsdatei<\/strong> &#8211; In der Schrittdefinitionsdatei wird der Code geschrieben, der die Schritte implementiert, die in den Wenn-Dann-Anweisungen der Funktionsdatei stehen. Wir k\u00f6nnen verschiedene Werkzeuge und Sprachen verwenden, um die Schritte umzusetzen, z. B. Watir mit Ruby oder Selenium mit Java, usw.<\/p>\n\n<p>Im n\u00e4chsten Beitrag werden wir Cucumber mit Selenium in Java einrichten &#8211; Cucumber mit Selenium und ein Beispiel-Testskript schreiben, das den Funktionsumfang von Google Calculator implementiert.<\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Was ist Test-Driven Development (TDD) und welche Eigenschaften hat das Tool Cucumber, die es ideal f\u00fcr Akzeptanztests machen?<\/p>\n","protected":false},"author":8,"featured_media":1506,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[27],"tags":[],"class_list":["post-1282","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gurken-tutorial"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts\/1282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/comments?post=1282"}],"version-history":[{"count":2,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts\/1282\/revisions"}],"predecessor-version":[{"id":1508,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/posts\/1282\/revisions\/1508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/media\/1506"}],"wp:attachment":[{"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/media?parent=1282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/categories?post=1282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staging-msg-ittester-sk.rucolabs.sk\/de\/wp-json\/wp\/v2\/tags?post=1282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}