{"id":190425,"date":"2023-12-22T21:08:08","date_gmt":"2023-12-22T20:08:08","guid":{"rendered":"https:\/\/liora.io\/de\/?p=190425"},"modified":"2026-02-06T06:07:09","modified_gmt":"2026-02-06T05:07:09","slug":"test-driven-development-oder-test-first-policy","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/test-driven-development-oder-test-first-policy","title":{"rendered":"Test Driven Development oder: Test First Policy"},"content":{"rendered":"<p><strong>Die Softwareentwicklung besteht aus mehreren Schritten, die durch das PDCA-Prinzip (Plan &#8211; Do &#8211; Check &#8211; Act) gekennzeichnet sind. Einer der wichtigsten Schritte im Deming-Rad ist die Phase der \u00dcberpr\u00fcfung (oder des Testens). Hierf\u00fcr gibt es verschiedene Methoden, die die Qualit\u00e4t und Zuverl\u00e4ssigkeit von Software \u00fcberpr\u00fcfen k\u00f6nnen. Eine davon ist Test Driven Development.<\/strong><\/p>\nWorum handelt es sich ? Was sind die Vor- und Nachteile dieser Methode? Und vor allem: Wie kann man sie umsetzen? Liora beantwortet all deine Fragen.\n<h3>Was ist Test Driven Development?<\/h3>\n<h4>Definition von TDD<\/h4>\n<strong>Test Driven Development (Testgetriebene Entwicklung)<\/strong> ist eine Methode zur Entwicklung von Software, die auf einer Test-First-Politik basiert. Die Idee ist es, die Programmierung von Software oder Anwendungen durch eine Reihe von Tests zu leiten.\n\nDies geschieht noch vor dem Schreiben des Codes.\n\nSobald die Entwickler auf Fehler sto\u00dfen, werden diese nach und nach behoben. Durch die regelm\u00e4\u00dfige Durchf\u00fchrung von Tests k\u00f6nnen alle Anomalien, die im Quellcode entdeckt werden, schnell (fast in Echtzeit) beseitigt werden. In dieser Hinsicht entspricht <strong>TDD<\/strong> perfekt den Anforderungen der agilen Methode, da es bedeutet, in Iterationen vorzugehen, um die Software schrittweise zu verbessern.\n\n<strong>Gut zu wissen<\/strong>: Dieser Ansatz wurde von dem amerikanischen Entwickler Kent Beck initiiert. Er kehrte den verwendeten Prozess einfach um,<a href=\"https:\/\/liora.io\/de\/alphacode-deepminds-neues-ki-tool-zum-schreiben-von-computercode\"> indem er zuerst den Test und dann den Code schrieb.<\/a> Dadurch konnte er die<a href=\"https:\/\/liora.io\/de\/codesquire-alles-ueber-ki-die-beim-programmieren-hilft\"> Qualit\u00e4t des Codes verbessern.<\/a>\n<h4>Test Driven Development und andere Testverfahren<\/h4>\nTest Driven Development ist eine <a href=\"https:\/\/liora.io\/de\/devops-pipeline-was-ist-das-wozu-dient-es\">sehr bekannte Methode unter DevOps<\/a>, aber bei weitem nicht die einzige Methode, um die Qualit\u00e4t von Software zu \u00fcberpr\u00fcfen:\n<ul>\n \t<li><strong>Test Driven Development Acceptance (oder ATDD):<\/strong> Dies ist eine erg\u00e4nzende Methode zu TDD. In diesem Fall konzentrieren sich die Entwickler vor allem darauf, zu \u00fcberpr\u00fcfen, ob ein Anwendungsszenario mit den angestrebten Zielen \u00fcbereinstimmt. Dieser Ansatz konzentriert sich auf das Testen von funktionalen Anwendungen.<\/li>\n \t<li><strong>Behavior driven development:<\/strong> Auch als verhaltensgesteuerte Programmierung bezeichnet, konzentriert sich BDD auf das gew\u00fcnschte Verhalten und nicht auf die Korrektheit des Codes.<\/li>\n \t<li><strong>Domain Driven Design (DDD):<\/strong> Hier geht es vor allem darum, eine gemeinsame Vision und eine gemeinsame Sprache f\u00fcr alle Beteiligten zu definieren.<\/li>\n<\/ul>\nAlle diese <strong>Methoden erg\u00e4nzen sich gegenseitig<\/strong>. Zusammen erm\u00f6glichen sie es, bessere, skalierbare und zuverl\u00e4ssige Software zu entwickeln und gleichzeitig die technischen Schulden zu senken.\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2023\/11\/Test_Driven_Development_TDD.jpg\" title=\"\" alt=\"\" loading=\"lazy\"><figcaption><\/figcaption><\/figure>\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Mehr \u00fcber TDD erfahren<\/a><\/div><\/div>\n\n<h3>Was sind die Vor- und Nachteile des Test Driven Development?<\/h3>\n<h4>Vorteile des Test Driven Development<\/h4>\nHeutzutage wird <strong>Test Driven Development<\/strong> f\u00fcr die meisten Programmierprozesse empfohlen. Und das aus gutem Grund, denn diese Art der \u00dcberpr\u00fcfung bringt eine Vielzahl von Vorteilen mit sich:\n<ul>\n \t<li><strong>Die Machbarkeit der Software voraussehen:<\/strong> Indem sie die Tests schreiben, bevor sie den Code schreiben, stellen die Entwickler sicher, dass die Software so konzipiert ist, dass die Ziele erreicht werden.<\/li>\n \t<li><strong>Tats\u00e4chlich entsprechen die Tests eher den gesch\u00e4ftlichen Anforderungen. Und was noch wichtiger ist:<\/strong> DevOps sind in der Lage, mehr Unit-Tests abzudecken.<\/li>\n \t<li><strong>Zeit sparen:<\/strong> Das Schreiben von Tests im Vorfeld verhindert auch, dass Zeit mit der Entwicklung von Funktionen verschwendet wird, die nicht den angestrebten Zielen entsprechen.<\/li>\n \t<li><strong>Fehler minimieren:<\/strong> Da die Entwicklung durch Tests gesteuert wird, k\u00f6nnen die Entwickler Fehler fast in Echtzeit erkennen. Dadurch werden Fehler nach dem Einsatz minimiert.<\/li>\n \t<li><strong>Vereinfachung der Wartung:<\/strong> Die Reduzierung von Fehlern spart auch Zeit bei der Wartung und \u00dcberwartung.<\/li>\n<\/ul>\n<h4>Nachteile des Test Driven Development<\/h4>\nTrotz aller <strong>Vorteile von Test Driven Development<\/strong> sollte man sich auch seiner Grenzen bewusst sein.\n\nZum einen setzt dieses Pr\u00fcfverfahren ein umfassendes Verst\u00e4ndnis des Codes voraus. Das bedeutet, dass du mehr Zeit f\u00fcr die Einarbeitung ben\u00f6tigst, bevor du mit dem <strong>Schreiben des Codes<\/strong> beginnen kannst.\n\nAndererseits besteht das Ziel des testgetriebenen Einsatzes vor allem darin, die Genauigkeit des Codes zu \u00fcberpr\u00fcfen. Diese Methode h\u00e4lt sich nicht damit auf, die Nutzung der Software und ihrer Funktionen zu \u00fcberwachen. Aus diesem <strong>Grund muss TDD in der Regel durch andere Testverfahren (insbesondere BDT) erg\u00e4nzt werden.<\/strong>\n<h3>Was sind die drei Phasen des Test Driven Development?<\/h3>\nTest Driven Development basiert auf drei Grundgesetzen, n\u00e4mlich :\n<ul>\n \t<li>&#8222;Du musst einen Test schreiben, der fehlschl\u00e4gt, bevor du den entsprechenden Produktionscode schreiben kannst&#8220;.<\/li>\n \t<li>&#8222;Du musst jeweils nur eine Assertion schreiben, durch die der Test fehlschl\u00e4gt oder die beim Kompilieren fehlschl\u00e4gt&#8220;.<\/li>\n \t<li>&#8222;Du musst das Minimum an Produktionscode schreiben, damit die Assertion des fehlgeschlagenen Tests erf\u00fcllt wird&#8220;.<\/li>\n<\/ul>\nWenn diese drei Gesetze in einer einzigen Iteration zusammengef\u00fchrt werden, bilden sie einen TDD-Nano-Zyklus. Traditionell werden sie in einem <strong>Zyklus mit drei Phasen dargestellt: red (rot), green (gr\u00fcn) und refactor (\u00dcberarbeitung).<\/strong>\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2023\/11\/3_phases_tdd.png\" title=\"\" alt=\"\" loading=\"lazy\">\n\n<figcaption><\/figcaption><\/figure>\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Die Phasen von TDD beherrschen<\/a><\/div><\/div>\n\n<h4>Rote Phase<\/h4>\nIm ersten Schritt der<strong> Test Driven Development<\/strong> muss der Entwickler ein Problem durch das <a href=\"https:\/\/liora.io\/de\/unit-tests-in-der-datenanalyse\">Schreiben eines Unit-Tests beschreiben<\/a>. Da der Code aber noch nicht existiert, wird der Test bei seiner Ausf\u00fchrung zwangsl\u00e4ufig fehlschlagen. Daher das Symbol mit der roten Farbe.\n\nUm den Test durchzuf\u00fchren, versetzt sich der Entwickler in die Lage des Endbenutzers, indem er die fehlenden Komponenten beschreibt, die f\u00fcr das Funktionieren des Codes unerl\u00e4sslich sind. Dabei handelt es sich jedoch um Komponenten, die noch nicht implementiert wurden.\n<h4>Gr\u00fcne Phase<\/h4>\nDas<strong> Ziel dieser Phase ist es, den Test zu bestehen.<\/strong> Dazu schreibt der Entwickler ein St\u00fcck Code, indem er den zuvor geschriebenen Unit-Test vervollst\u00e4ndigt. Es muss gr\u00fcn werden. Es ist also eine Suchphase, in der der Entwickler eine L\u00f6sung f\u00fcr das gestellte Problem finden muss.\n\nAber Vorsicht: In dieser Phase der <strong>Test Driven Development<\/strong> darf der DevOps nicht nach komplexen L\u00f6sungen suchen. Er muss sich auf das Wesentliche konzentrieren, um den Produktionscode auf gr\u00fcn zu schalten. Er \u00fcberpr\u00fcft dann, ob der Code erfolgreich ist, indem er weitere Tests ausf\u00fchrt.\n<h4>Refactor-Phase<\/h4>\nErst wenn der <strong>Entwickler die L\u00f6sung<\/strong> gefunden hat, kann er zum Refactoring \u00fcbergehen. Er kann nun den Code \u00fcberarbeiten, strukturieren, lesbarer machen und eventuell erg\u00e4nzen. Dabei darf er jedoch das Verhalten des Codes nicht ver\u00e4ndern. Das hei\u00dft, er muss jede Funktionalit\u00e4t beibehalten. Auch hier muss er \u00fcberpr\u00fcfen, dass jeder Test validiert wird, wenn eine neue Funktion hinzugef\u00fcgt wird.\n<h3>Beherrsche TDD mit Liora<\/h3>\nDer<strong> Test Driven Development-<\/strong>Ansatz passt perfekt zur <a href=\"https:\/\/liora.io\/de\/continuous-integration-ci-und-continuous-delivery-cd\">CI\/CD-Arbeitsweise (Continuous Integration and Deployment),<\/a> die f\u00fcr DevOps typisch ist. Als zuk\u00fcnftiger Entwickler musst du diesen Ansatz beherrschen, um den Code in allen Phasen der Entwicklung zu optimieren. Um ihn richtig zu integrieren, ist es besser, sich darin zu schulen. Deshalb bietet dir Liora eine Ausbildung an, die sowohl praktische Kurse als auch die besten Methoden vereint. Mach mit!\n\n<iframe title=\"Discover our Data Scientist training - DataScientest\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/kNPe_pgbuHg?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<a href=\"https:\/\/liora.io\/de\/weiterbildung-data-scientist\">\nLerne alles \u00fcber TDD\n<\/a>","protected":false},"excerpt":{"rendered":"<p>Die Softwareentwicklung besteht aus mehreren Schritten, die durch das PDCA-Prinzip (Plan &#8211; Do &#8211; Check &#8211; Act) gekennzeichnet sind. Einer der wichtigsten Schritte im Deming-Rad ist die Phase der \u00dcberpr\u00fcfung (oder des Testens). Hierf\u00fcr gibt es verschiedene Methoden, die die Qualit\u00e4t und Zuverl\u00e4ssigkeit von Software \u00fcberpr\u00fcfen k\u00f6nnen. Eine davon ist Test Driven Development. Worum handelt [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":190467,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-190425","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/190425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=190425"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/190425\/revisions"}],"predecessor-version":[{"id":217048,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/190425\/revisions\/217048"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/190467"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=190425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=190425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}