﻿{"id":2768,"date":"2021-03-24T15:20:53","date_gmt":"2021-03-24T14:20:53","guid":{"rendered":"https:\/\/www.sortlist.de\/blog\/?p=2768"},"modified":"2023-03-30T10:42:25","modified_gmt":"2023-03-30T08:42:25","slug":"test-driven-development","status":"publish","type":"post","link":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/","title":{"rendered":"Test-Driven Development: effiziente Softwareentwicklung"},"content":{"rendered":"<p>Test-Driven Development wird beim Design und der Entwicklung neuer Softwareprodukte eingesetzt. Dieses Konzept ist nicht neu, ist aber in der heutigen Zeit aktueller denn je. Bereits im Jahr 2002 stellte Kent Beck diesen neuen Ansatz der IT-Welt vor, bei dem intensives Testing in den Entwicklungsprozess aufgenommen wird. Davon versprach er sich ein schnelleres Entwickeln mit weniger Fehlern. Wie genau Test-Driven Development (TDD) funktioniert, zeigen wir Ihnen im folgenden Artikel.<\/p>\n<h2>Ein \u00dcberblick zum Thema Test-Driven Development<\/h2>\n<p>Bereits seit den Anf\u00e4ngen der <a href=\"https:\/\/www.sortlist.de\/app-entwicklung\/hesse-he-de\" target=\"_blank\" rel=\"noopener noreferrer\">Softwareentwicklung<\/a> wurde das Developer Testing bei der Entwicklung eines neuen Computerprogramms genutzt. Jedoch fand dieser Prozess des Testens von der Programmierung des Quellcodes separat statt. Die Programmierer befassten sich mit der Erstellung des Quellcodes eines Programms und die Tester pr\u00fcften die Software. Eine direkte Zusammenarbeit fand nicht statt.<\/p>\n<p>Kent Beck sah das Potenzial, das sich hinter dem Testing verbarg, Softwarel\u00f6sungen wesentlich schneller und effizienter umzusetzen. Seine Kommentare und Ideen zum Extreme Programming und zum Test-First-Ansatz wurden schnell bekannt. Er ver\u00e4nderte den Entwicklungsprozess dahingehend, dass die Programmierer zuerst einen Test geschrieben haben. Dieser wurde getestet. Erst nachdem das Testprogramm erfolgreich angenommen wurde, begannen die Entwickler mit der Erstellung des eigentlichen Quellcodes, dem Produktivcode. Die First-Test-Methode fand so viel Anklang, dass Sie heute auch bei anderen Designparadigmen zu finden ist.<\/p>\n<p>Das Testen w\u00e4hrend der Entwicklung eines neuen Produktes koppelt sich direkt an die unterschiedlichen Entwicklungsstufen. Nur auf diese Weise kann eine neue Software kreiert werden, die so gut wie fehlerlos auf dem konkurrenzreichen Markt gelauncht wird. Grobe Fehler im Nachhinein auszub\u00fcgeln ist zeitintensiv und prestigesch\u00e4digend, weshalb die Methoden das Test-Driven Development in vielen Bereichen Einzug gehalten haben.<\/p>\n<h2>Wie funktioniert Test-Driven Development?<\/h2>\n<p><a href=\"https:\/\/www.sortlist.de\/app-entwicklung\/muenster-de\" target=\"_blank\" rel=\"noopener noreferrer\">Die Entwicklung einer neuen Software<\/a> findet immer in Teilabschnitten statt. Schritt f\u00fcr Schritt stellen Entwickler die einzelnen Komponenten zusammen. Dabei l\u00e4uft das Test-Driven Development inkrementell ab. Jede kleine Ver\u00e4nderung oder Zusatzfunktion wird getestet. Nach bestandenem Test integrieren die Entwickler diesen neuen Teil in den Quellcode.<\/p>\n<p>Der gro\u00dfe Vorteil, Unit-Tests und der Test von einzelnen Funktionen und Features nimmt in der Regel relativ wenig Zeit in Anspruch. Fortschritte sind dadurch schnell sichtbar. Der Entwicklungsprozess in kleinen Schritten folgt den drei Gesetzen des Test-Driven Development.<\/p>\n<h3>Zyklus 1<\/h3>\n<p>In dieser Testphase dauern die Zyklen in der Regel nicht l\u00e4nger als 30 Sekunden.<\/p>\n<ul>\n<li>Schreiben Sie zuerst einen Test, bevor Sie am Code f\u00fcr das Release-Produkt arbeiten.<\/li>\n<li>Schreiben Sie nur so viel Code, wie Sie f\u00fcr einen fehlgeschlagenen Test ben\u00f6tigen.<\/li>\n<li>Erstellen Sie nur so viel Code, dass der eigentlichen Testfall und dessen Bestehen erreicht wird.<\/li>\n<\/ul>\n<h3>Zyklus 2: der Red-Green-Refactor<\/h3>\n<p>Der sogenannte Red-Green-Refactor dauert meist mehrere Minuten und wird nach den ersten sehr kurzen Testphasen des Zyklus 1 eingesetzt.<\/p>\n<ul>\n<li>Sie schreiben den Test. Sollte der Test fehlschlagen, markieren Sie diesen rot.<\/li>\n<li>Danach schreiben Sie den Produktivcode und integrieren ihn in das System. Wird der Test bestanden, so wird dieser Schritt gr\u00fcn markiert.<\/li>\n<li>Der Code wird Schritt f\u00fcr Schritt erweitert. Dabei schreiben Sie Testf\u00e4lle und die entsprechenden Codebestandteile. Den Zyklus des Refactoring durchlaufen Sie so oft bis die Software verst\u00e4ndlich und effizient aussieht. Testen Sie dabei jede Codezeile. Ungetestete Zeilen k\u00f6nnen im sp\u00e4teren Verlauf zu Problemen f\u00fchren.<\/li>\n<\/ul>\n<h3>Zyklus 3: der Specific-Generic-Zyklus<\/h3>\n<p>Im Rahmen dieser Testphase testen Sie die einzelnen Module. Ziel ist, die Anforderungen der geplanten Software zu erreichen.<\/p>\n<h3>Zyklus 4: der Primary-Zyklus<\/h3>\n<p>Dieser Zyklus zeigt die Grenzen der einzelnen Module auf. Diese Grenzen resultieren aus der Software Architektur und den festgelegten Regeln. Ziel dieser Phase ist das perfekte Ineinandergreifen aller Module und Komponenten der Software, sowie eine klare Struktur.<\/p>\n<h2>Organisatorische Aspekte im Test-Driven Development<\/h2>\n<p>Die Integration des Entwicklerteams in den Betrieb der Software bringt einige Vorteile mit sich. Die Programmierer sind viel st\u00e4rker am Erfolg des Produktes interessiert. Regelm\u00e4\u00dfiger Erfahrungsaustausch mit den Kollegen f\u00fchrt zu einer schnelleren L\u00f6sung m\u00f6glicher Probleme und steigert das Qualit\u00e4tsniveau der Tests.<\/p>\n<p>F\u00fcr Neueinsteiger der TDD Methode empfiehlt sich das Pair Programming. Zwei Programmierer arbeiten zusammen an einem Bildschirm. Ein Mitarbeiter, der bereits Erfahrungen im Bereich des Test-Driven Development besitzt, f\u00fchrt den neuen Kollegen in die Materie ein. Kontinuierliche Kommunikation f\u00fchrt automatisch zu besseren Tests und Codes. Dabei ist nat\u00fcrlich die Unterst\u00fctzung durch das Management f\u00fcr ma\u00dfgebliche Erfolge unabdingbar.<\/p>\n<h2>Technische Aspekte<\/h2>\n<p>Jeder Unit-Test sollte aus technischer Sicht separat erfolgen. Im Falle von Abh\u00e4ngigkeiten werden sogenannte Mock-Objekte eingesetzt. Auf diese Weise sind die Tests \u00e4u\u00dferst resistent gegen\u00fcber \u00c4nderungen. Die Modul-Tests sollten schnell auszuf\u00fchren sein. Zu lang dauernde Tests k\u00f6nnen dazu f\u00fchren, dass die Entwickler eher darauf verzichten.<\/p>\n<p>Eine gute Strukturierung der Tests erleichtert das Befolgen und zeigt deren gro\u00dfen Nutzen auf. Hier kommt die Triple-A-Regel zum Tragen: Arrange &#8211; Act &#8211; Assert. Zuerst wird die Umgebung initialisiert. Daraufhin wird das gew\u00fcnschte Verhalten ausgel\u00f6st und mit dem Soll-Ist-Vergleich abgeschlossen.<\/p>\n<p>Das Entwicklerteam sollte hier zu einer einheitlichen Namenskonvention finden. Idealerweise wird der Name aus diesen 3 Punkten zusammengestellt: Name des Tests, Testumgebung und erwartetes Ergebnis.<\/p>\n<p>Am Ende jedes TDD-Zyklus steht das Refactoring des Test- und des Produktivcodes. Eine einheitliche Codierung ist ausschlaggebend f\u00fcr \u00dcbersichtlichkeit und somit Schnelligkeit in der Entwicklung des Quellcodes neuer Software.<\/p>\n<h2>Methodische Aspekte<\/h2>\n<p>Wie oft Sie Tests durchf\u00fchren, sollten Sie bereits am Anfang des Projektes bedenken. Je k\u00fcrzer und kleiner die Ver\u00e4nderungen, desto \u00f6fter k\u00f6nnen Sie Tests durchf\u00fchren. Gerade die Unit-Tests sollten Sie regelm\u00e4\u00dfig realisieren.<\/p>\n<p>Je weiter fortgeschritten der Prozess ist, desto weniger Tests finden in der Regel statt. Daf\u00fcr steigt die Komplexit\u00e4t der Tests an. Die \u00dcberpr\u00fcfungen dauern dadurch auch wesentlich l\u00e4nger. Einige Fehler k\u00f6nnen Sie mit einfachen Unit-Tests nicht entdecken. Gerade wenn es sich um das Zusammenspiel verschiedener Modulen handelt. In dieser Entwicklungsphase eignen sich Integrationstest sowie User-Acceptance-Tests. Letztere zielen auf die Gebrauchstauglichkeit ab. Bei den komplexen Tests sollte das Teammanagement sehr genau ausw\u00e4hlen, welche Tests wann durchgef\u00fchrt werden.<\/p>\n<h2>Was ist Extreme Programming?<\/h2>\n<p>Als Extreme Programming (XP) wird eine agile Form der Softwareentwicklung bezeichnet. Markante Merkmale und Werte dieser Arbeitsform sind:<\/p>\n<ul>\n<li>Kommunikation<\/li>\n<li>Einfachheit<\/li>\n<li>Mut<\/li>\n<li>Feedback<\/li>\n<li>Qualit\u00e4t<\/li>\n<li>Lernen<\/li>\n<li>Respekt<\/li>\n<\/ul>\n<figure style=\"width: 500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/3eIvCGyiXnRL9f8gI_ppbYl4HnCB00_KuVQQe0TF223OsQNVd_5ahP_KsQztCcXxOWGV-lCFci8aIU0RA-F8rtdUHrlwuQWuEu6F0bkj84Lo5jaDZfS2qvIu9D_w9O0vrum2Uv6C\" alt=\"Extreme Programming\" width=\"500\" height=\"333\" \/><figcaption class=\"wp-caption-text\">Quelle: <a href=\"https:\/\/images.pexels.com\/photos\/1560932\/pexels-photo-1560932.jpeg?auto=compress&amp;cs=tinysrgb&amp;dpr=1&amp;w=500\">Pexels<\/a><\/figcaption><\/figure>\n<p>Mit diesen Werten im Hinterkopf werden Anwendungen entwickelt, mit denen die Nutzer vollauf zufrieden sind. Die Kosten f\u00fcr \u00c4nderungen halten sich dann in der Regel in Grenzen. Dabei wird auf bestimmte Techniken der Softwareprogrammierung gesetzt.<\/p>\n<ul>\n<li>Stetige Reviews und Test<\/li>\n<li>Durchg\u00e4ngiges Design und Redesign<\/li>\n<li>Kontinuierliches Feedback<\/li>\n<li>Kurze Releasezyklen<\/li>\n<li>Starke Integration des Kunden und des Auftraggebers<\/li>\n<\/ul>\n<p>Diese Methode eignet sich vor allem f\u00fcr Projekte, die immer neuen \u00c4nderungen unterliegen. Dadurch k\u00f6nnen Sie Kosten besser kontrollieren und Termine leichter einhalten.<\/p>\n<h2>Vorteile der Verwendung von Test-Driven Development<\/h2>\n<p>Die Vorteile des Test-Driven Development gegen\u00fcber herk\u00f6mmlichen Entwicklungsmethoden liegen eindeutig auf der Hand.<\/p>\n<ul>\n<li>Die <strong>Qualit\u00e4t der Software<\/strong> ist generell auf einem sehr hohen Stand.<\/li>\n<li>Die entwickelte Software weist <strong>wenige Fehler<\/strong> auf und muss nicht so h\u00e4ufig gewartet werden.<\/li>\n<li>Das Aufdecken von Fehlern und m\u00f6gliche Wartungsarbeiten sind viel <strong>schneller und wesentlich einfacher<\/strong> zu realisieren.<\/li>\n<li>Der Code selbst zeichnet sich durch <strong>einfache und verst\u00e4ndliche Angaben<\/strong> aus, die einer klaren Struktur folgen.<\/li>\n<li>Unn\u00f6tige Codebestandteile werden vermieden, was zu <strong>schlanken Quellcodes<\/strong> f\u00fchrt.<\/li>\n<\/ul>\n<h2>Martin Fowler und sein Einfluss auf Test-Driven Development<\/h2>\n<p>Martin Fowler z\u00e4hlt zu den einflussreichsten K\u00f6pfen in der <a href=\"https:\/\/www.sortlist.de\/app-entwicklung\/niedersachsen-nds-de\" target=\"_blank\" rel=\"noopener noreferrer\">agilen Softwareentwicklung<\/a>. Der Autor und Referent hat die Softwarearchitektur und all seine Komponenten zu seinem Wirkungsbereich erkl\u00e4rt. Im Speziellen befasst er sich mit objektorientierter Analyse und Design, UML, Entwurfsmuster und der agilen Softwareentwicklung.<\/p>\n<p>Bereits seit den fr\u00fchen 1980er Jahren arbeitet Fowler in der Softwarebranche und hat seitdem f\u00fcnf B\u00fccher zum Thema Softwareentwicklung herausgebracht und war einer der ersten Unterzeichner des Manifests zur agilen Softwareentwicklung. Dieses Manifest beruft sich auf die<strong> 4 Leits\u00e4tze<\/strong>:<\/p>\n<ul>\n<li><strong>Individuen und Interaktionen<\/strong> sind mehr als nur Werkzeuge und Prozesse<\/li>\n<li><strong>Funktionierende Software<\/strong> ist mehr als nur eine umfassende Dokumentation<\/li>\n<li><strong>Zusammenarbeit mit dem Auftraggeber<\/strong> ist mehr als nur eine Vertragsverhandlung<\/li>\n<li><strong>Reaktion auf Ver\u00e4nderungen<\/strong> ist mehr als nur das Abarbeiten eines Plans<\/li>\n<\/ul>\n<p>Aus diesen 4 Leits\u00e4tzen erschlie\u00dfen sich die <strong>12 agilen Prinzipien<\/strong>:<\/p>\n<ol>\n<li>Der Kunde wird zufriedengestellt mit fr\u00fcher und kontinuierlicher Lieferung von wertvoller Software.<\/li>\n<li>Agile Prozesse verwenden Ver\u00e4nderungen zum Wettbewerbsvorteil des Kunden auch sp\u00e4t in der Entwicklungsphase.<\/li>\n<li>Die Lieferung funktionstauglicher Software erfolgt in kurzen Zeitabst\u00e4nden.<\/li>\n<li>Zusammenarbeit von Entwicklern und Experten erfolgt auf t\u00e4glicher Basis.<\/li>\n<li>Mitarbeiter-Motivation, welche das Umfeld und die gew\u00fcnschte Unterst\u00fctzung erzeugt, die zur Arbeitsbew\u00e4ltigung notwendig ist.<\/li>\n<li>Informationsaustausch von Angesicht zu Angesicht.<\/li>\n<li>Das wichtigste Fortschrittma\u00df ist die Funktionsf\u00e4higkeit der Software.<\/li>\n<li>Nachhaltige Entwicklung dank eines gleichm\u00e4\u00dfigen Arbeitstempos der Entwickler, Kunden und Benutzern.<\/li>\n<li><a href=\"https:\/\/www.sortlist.de\/i\/webdesign\/polen-pl\" target=\"_blank\" rel=\"noopener noreferrer\">Technische Exzellenz und gutes Design<\/a> stehen immer im Fokus.<\/li>\n<li>Einfachheit.<\/li>\n<li>Selbstorganisierte Teams entwerfen die besten Anforderungen, Ideen und Architekturen.<\/li>\n<li>Steigerung der Effizienz durch Selbstreflexion des eigenen Verhaltens der Teams.<\/li>\n<\/ol>\n<h2>4 Tipps f\u00fcr ein effizientes Test-Driven Development<\/h2>\n<p>Die Unit-Tests werden als die wichtigste Vorbedingung f\u00fcr alle Unternehmen gesehen, die TDD in ihre Entwicklungsprozesse aufnehmen wollen. Damit die Implementierung reibungslos funktioniert, sollten Sie einige Punkte beachten.<\/p>\n<h3>Test-Driven Development bei einem Bestandscode<\/h3>\n<p>M\u00f6chten Sie bei einem bereits existierenden Code TDD anwenden, k\u00f6nnten einige Probleme entstehen. Hier muss das Entwicklerteam entscheiden, ob der aktuelle Code \u00fcberhaupt testbar ist und wie viel Refactoring notwendig wird, um TDD zu realisieren.<\/p>\n<p>Wurde der Bestandscode geschrieben, ohne die Idee der Testbarkeit zu ber\u00fccksichtigen, ist es sehr schwierig, in diesem Fall TDD anzuwenden. Sollte der Mitarbeiter, der den Code erstellt hat, eventuell nicht mehr im Unternehmen arbeiten und haben sich die abh\u00e4ngigen Bibliotheken ge\u00e4ndert, \u00fcbersteigt der Wartungsaufwand den Nutzen.<\/p>\n<p>Ist er Bestandscode bereits in der Anwendung und funktioniert, so ist hier die beste Option, den Code so zu belassen, wie er ist. Sollte \u00c4nderungen oder Fehlerbehebungen notwendig werden, so lassen sich diese neuen Elemente mit der Methode des TDD erstellen.<\/p>\n<h3>Test-Driven Development bei Microservices<\/h3>\n<p>Software Architekturen, die auf Microservices basieren, zeigen wesentlich mehr Abh\u00e4ngigkeiten und eine h\u00f6here Komplexit\u00e4t auf als traditionelle Application-Stacks. Die Testumgebung kann sich in diesem Fall schwierig gestalten, da mit den Abh\u00e4ngigkeiten viel Mocking und Stubbing verlangt wird. Erprobte TDD-Verfahrensweisen k\u00f6nnen am besten auf die Microservices angewendet werden, wenn diese als einzelne Module wahrgenommen werden.<\/p>\n<p>Hier lassen sich auf API-Ebene automatisierte Tests entwickeln, welche die geforderten Definitionen enthalten, die zu positiven Testergebnissen f\u00fchren. Der Begriff API bedeutet Application Programming Interface. F\u00fcr solche API-Testl\u00f6sungen gibt es mittlerweile verschiedene Anbieter.<\/p>\n<h3>Alle m\u00fcssen an Bord sein<\/h3>\n<p>Die Umsetzung des Test-Driven Development mit all seinen Tests kann gerade bei kleineren Unternehmen an die Grenzen der verf\u00fcgbaren Ressourcen sto\u00dfen. Die Verwendung der TDD-Methode auf der API-Ebene kann helfen, die begrenzten Ressourcen optimal zu nutzen. API-Tests sind spezielle Softwaretests, welche die Schnittstelle einer Applikation auf Zuverl\u00e4ssigkeit und Funktionalit\u00e4t \u00fcberpr\u00fcft. Dies wird zum Beispiel mithilfe von Integrationstest erreicht.<\/p>\n<p>Sie erreichen, dass nicht nur die Entwickler die Testphasen durchf\u00fchren, sondern auch Analysten und Tester ihr Wissen beitragen k\u00f6nnen.<\/p>\n<p>Der Einsatz von Softwarel\u00f6sungen, die auf die Umsetzung einer simulierten Funktionalit\u00e4t spezialisiert sind, helfen bei der Erstellung und dem Ausf\u00fchren von Tests, bevor der Produktivcode geschrieben wird. Bei der<a href=\"https:\/\/www.sortlist.de\/webentwicklung\" target=\"_blank\" rel=\"noopener noreferrer\"> Entwicklung einer effizienten Strategie helfen Agenturen und Firmen<\/a>, die branchenspezifisches Wissen und jahrelange Erfahrung vereinen.<\/p>\n<h3>Bereicherung des TDD mit BDD<\/h3>\n<p>W\u00e4hrend das Test Driven Development sind auf das Bestehen von Tests konzentriert, fokussiert sich BDD (Behavior-Driven Development) auf eine verhaltensgetriebene Entwicklung. Der Code wird in diesem Fall nicht geschrieben, um einen Test zu bestehen, sondern um ein erwartetes Verhalten zu implementieren.<\/p>\n<p>Die Idee des Behavior-Driven Development wurde schon in der Vergangenheit ansatzweise umgesetzt. In Zusammenhang mit TDD bietet BDD eine Chance, technische H\u00fcrden weiter zu reduzieren und ein neues Niveau zu erreichen. Automatische Tests k\u00f6nnen aus dem Feature File erstellt werden, was zur Verringerung der technischen Komplexit\u00e4t f\u00fchrt, die beim Schreiben des Code ben\u00f6tigt wird. Normalerweise werden daf\u00fcr Entwickler-Ressourcen in Anspruch genommen.<\/p>\n<h2>Fazit<\/h2>\n<p>Die Nutzung der Methoden des Test-Driven Development f\u00fchrt bei der richtigen Umsetzung zu schlankem und einfachem Code. Einige Programmierer schreiben keinen Quellcode mehr, ohne vorher einen Testfall f\u00fcr die Codezeile zu erhalten. Das hat langfristig nur positive Auswirkungen, da es generell den Umfang des Quellcodes reduziert. Das Projekt selbst wird schneller und effektiver umgesetzt und die Ver\u00f6ffentlichkeitszyklen werden k\u00fcrzer.<\/p>\n<p>Im Fokus stehen die Ziele und die Funktionalit\u00e4t der Software. Die detaillierte Dokumentation der Test erm\u00f6glicht es auch im Nachhinein Ver\u00e4nderungen vorzunehmen. Programmierer, die nicht an der Entwicklung beteiligt waren, finden sich schnell in den Quellcode ein und k\u00f6nnen Wartungsarbeiten und Fehlerbehebungen vornehmen. TDD erfordert wahrscheinlich Informatiker und Programmierer mit hohem Erfahrungswert. Doch die Investition in die menschlichen Ressourcen lohnt sich allemal. Suchen Sie noch nach den richtigen Partnern, die Ihnen bei der Entwicklungsstrategie unter die Arme greifen, dann finden Sie diese jetzt bei Sortlist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Test-Driven Development wird beim Design und der Entwicklung neuer Softwareprodukte eingesetzt. Dieses Konzept ist nicht neu, ist aber in der heutigen Zeit aktueller denn je. Bereits im Jahr 2002 stellte Kent Beck diesen neuen Ansatz der IT-Welt vor, bei dem intensives Testing in den Entwicklungsprozess aufgenommen wird. Davon versprach er sich ein schnelleres Entwickeln mit [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":9413,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_sb_is_suggestion_mode":false,"_sb_show_suggestion_boards":false,"_sb_show_comment_boards":false,"_sb_suggestion_history":"","_sb_update_block_changes":"","content-type":"","om_disable_all_campaigns":false,"footnotes":""},"categories":[59],"class_list":["post-2768","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-webentwicklung"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Test-Driven Development: Effiziente Softwareentwicklung<\/title>\n<meta name=\"description\" content=\"Lesen Sie hier alles \u00fcber Test-Driven Development. Die Methode erlaubt eine klare Architektur des Quellcodes und geringere Fehlerquoten.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sortlist.de\/blog\/test-driven-development\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test-Driven Development: Effiziente Softwareentwicklung\" \/>\n<meta property=\"og:description\" content=\"Lesen Sie hier alles \u00fcber Test-Driven Development. Die Methode erlaubt eine klare Architektur des Quellcodes und geringere Fehlerquoten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sortlist.de\/blog\/test-driven-development\/\" \/>\n<meta property=\"og:site_name\" content=\"Sortlist Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-24T14:20:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-30T08:42:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.blog.production.sortlist.cloud\/wp-content\/uploads\/sites\/4\/2021\/03\/de-cover-images-6-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1748\" \/>\n\t<meta property=\"og:image:height\" content=\"1240\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Leonard Basse\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Leonard Basse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/\"},\"author\":{\"name\":\"Leonard Basse\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/#\\\/schema\\\/person\\\/b9802b27b8299e4488ece8cb1575dc19\"},\"headline\":\"Test-Driven Development: effiziente Softwareentwicklung\",\"datePublished\":\"2021-03-24T14:20:53+00:00\",\"dateModified\":\"2023-03-30T08:42:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/\"},\"wordCount\":2129,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2021\\\/03\\\/de-cover-images-6-1.jpg\",\"articleSection\":[\"Webentwicklung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/\",\"url\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/\",\"name\":\"Test-Driven Development: Effiziente Softwareentwicklung\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2021\\\/03\\\/de-cover-images-6-1.jpg\",\"datePublished\":\"2021-03-24T14:20:53+00:00\",\"dateModified\":\"2023-03-30T08:42:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/#\\\/schema\\\/person\\\/b9802b27b8299e4488ece8cb1575dc19\"},\"description\":\"Lesen Sie hier alles \u00fcber Test-Driven Development. Die Methode erlaubt eine klare Architektur des Quellcodes und geringere Fehlerquoten.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2021\\\/03\\\/de-cover-images-6-1.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/2021\\\/03\\\/de-cover-images-6-1.jpg\",\"width\":1748,\"height\":1240,\"caption\":\"Test-Driven Development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/test-driven-development\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test-Driven Development: effiziente Softwareentwicklung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/\",\"name\":\"Sortlist Blog\",\"description\":\"Sortlist Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/#\\\/schema\\\/person\\\/b9802b27b8299e4488ece8cb1575dc19\",\"name\":\"Leonard Basse\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/avatar_user_12_1625133031-96x96.jpeg\",\"url\":\"https:\\\/\\\/blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/avatar_user_12_1625133031-96x96.jpeg\",\"contentUrl\":\"https:\\\/\\\/blog.production.sortlist.cloud\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/avatar_user_12_1625133031-96x96.jpeg\",\"caption\":\"Leonard Basse\"},\"description\":\"Lenni is someone we would typically call \u00ab the cool kid \u00bb, of the content team. Passionate by nature &amp; surf, when he is not riding his bike, you will find him behind his computer writing about his other passion: marketing!\",\"url\":\"https:\\\/\\\/www.sortlist.de\\\/blog\\\/author\\\/leonard-basse\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test-Driven Development: Effiziente Softwareentwicklung","description":"Lesen Sie hier alles \u00fcber Test-Driven Development. Die Methode erlaubt eine klare Architektur des Quellcodes und geringere Fehlerquoten.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/","og_locale":"de_DE","og_type":"article","og_title":"Test-Driven Development: Effiziente Softwareentwicklung","og_description":"Lesen Sie hier alles \u00fcber Test-Driven Development. Die Methode erlaubt eine klare Architektur des Quellcodes und geringere Fehlerquoten.","og_url":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/","og_site_name":"Sortlist Blog","article_published_time":"2021-03-24T14:20:53+00:00","article_modified_time":"2023-03-30T08:42:25+00:00","og_image":[{"width":1748,"height":1240,"url":"https:\/\/cdn.blog.production.sortlist.cloud\/wp-content\/uploads\/sites\/4\/2021\/03\/de-cover-images-6-1.jpg","type":"image\/jpeg"}],"author":"Leonard Basse","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Leonard Basse","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#article","isPartOf":{"@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/"},"author":{"name":"Leonard Basse","@id":"https:\/\/www.sortlist.de\/blog\/#\/schema\/person\/b9802b27b8299e4488ece8cb1575dc19"},"headline":"Test-Driven Development: effiziente Softwareentwicklung","datePublished":"2021-03-24T14:20:53+00:00","dateModified":"2023-03-30T08:42:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/"},"wordCount":2129,"commentCount":0,"image":{"@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.blog.production.sortlist.cloud\/wp-content\/uploads\/sites\/4\/2021\/03\/de-cover-images-6-1.jpg","articleSection":["Webentwicklung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sortlist.de\/blog\/test-driven-development\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/","url":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/","name":"Test-Driven Development: Effiziente Softwareentwicklung","isPartOf":{"@id":"https:\/\/www.sortlist.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#primaryimage"},"image":{"@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.blog.production.sortlist.cloud\/wp-content\/uploads\/sites\/4\/2021\/03\/de-cover-images-6-1.jpg","datePublished":"2021-03-24T14:20:53+00:00","dateModified":"2023-03-30T08:42:25+00:00","author":{"@id":"https:\/\/www.sortlist.de\/blog\/#\/schema\/person\/b9802b27b8299e4488ece8cb1575dc19"},"description":"Lesen Sie hier alles \u00fcber Test-Driven Development. Die Methode erlaubt eine klare Architektur des Quellcodes und geringere Fehlerquoten.","breadcrumb":{"@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sortlist.de\/blog\/test-driven-development\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#primaryimage","url":"https:\/\/cdn.blog.production.sortlist.cloud\/wp-content\/uploads\/sites\/4\/2021\/03\/de-cover-images-6-1.jpg","contentUrl":"https:\/\/cdn.blog.production.sortlist.cloud\/wp-content\/uploads\/sites\/4\/2021\/03\/de-cover-images-6-1.jpg","width":1748,"height":1240,"caption":"Test-Driven Development"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sortlist.de\/blog\/test-driven-development\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sortlist.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Test-Driven Development: effiziente Softwareentwicklung"}]},{"@type":"WebSite","@id":"https:\/\/www.sortlist.de\/blog\/#website","url":"https:\/\/www.sortlist.de\/blog\/","name":"Sortlist Blog","description":"Sortlist Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sortlist.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/www.sortlist.de\/blog\/#\/schema\/person\/b9802b27b8299e4488ece8cb1575dc19","name":"Leonard Basse","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blog.production.sortlist.cloud\/wp-content\/uploads\/2021\/07\/avatar_user_12_1625133031-96x96.jpeg","url":"https:\/\/blog.production.sortlist.cloud\/wp-content\/uploads\/2021\/07\/avatar_user_12_1625133031-96x96.jpeg","contentUrl":"https:\/\/blog.production.sortlist.cloud\/wp-content\/uploads\/2021\/07\/avatar_user_12_1625133031-96x96.jpeg","caption":"Leonard Basse"},"description":"Lenni is someone we would typically call \u00ab the cool kid \u00bb, of the content team. Passionate by nature &amp; surf, when he is not riding his bike, you will find him behind his computer writing about his other passion: marketing!","url":"https:\/\/www.sortlist.de\/blog\/author\/leonard-basse\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/posts\/2768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/comments?post=2768"}],"version-history":[{"count":2,"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/posts\/2768\/revisions"}],"predecessor-version":[{"id":9415,"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/posts\/2768\/revisions\/9415"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/media\/9413"}],"wp:attachment":[{"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/media?parent=2768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sortlist.de\/blog\/wp-json\/wp\/v2\/categories?post=2768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}