Die Softwareentwicklung besteht aus mehreren Schritten, die durch das PDCA-Prinzip (Plan – Do – Check – Act) gekennzeichnet sind. Einer der wichtigsten Schritte im Deming-Rad ist die Phase der Überprüfung (oder des Testens). Hierfür gibt es verschiedene Methoden, die die Qualität und Zuverlässigkeit von Software überprüfen können. Eine davon ist Test Driven Development.
Worum handelt es sich ? Was sind die Vor- und Nachteile dieser Methode? Und vor allem: Wie kann man sie umsetzen? Liora beantwortet all deine Fragen.Was ist Test Driven Development?
Definition von TDD
Test Driven Development (Testgetriebene Entwicklung) 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. Dies geschieht noch vor dem Schreiben des Codes. Sobald die Entwickler auf Fehler stoßen, werden diese nach und nach behoben. Durch die regelmäßige Durchführung von Tests können alle Anomalien, die im Quellcode entdeckt werden, schnell (fast in Echtzeit) beseitigt werden. In dieser Hinsicht entspricht TDD perfekt den Anforderungen der agilen Methode, da es bedeutet, in Iterationen vorzugehen, um die Software schrittweise zu verbessern. Gut zu wissen: Dieser Ansatz wurde von dem amerikanischen Entwickler Kent Beck initiiert. Er kehrte den verwendeten Prozess einfach um, indem er zuerst den Test und dann den Code schrieb. Dadurch konnte er die Qualität des Codes verbessern.Test Driven Development und andere Testverfahren
Test Driven Development ist eine sehr bekannte Methode unter DevOps, aber bei weitem nicht die einzige Methode, um die Qualität von Software zu überprüfen:- Test Driven Development Acceptance (oder ATDD): Dies ist eine ergänzende Methode zu TDD. In diesem Fall konzentrieren sich die Entwickler vor allem darauf, zu überprüfen, ob ein Anwendungsszenario mit den angestrebten Zielen übereinstimmt. Dieser Ansatz konzentriert sich auf das Testen von funktionalen Anwendungen.
- Behavior driven development: Auch als verhaltensgesteuerte Programmierung bezeichnet, konzentriert sich BDD auf das gewünschte Verhalten und nicht auf die Korrektheit des Codes.
- Domain Driven Design (DDD): Hier geht es vor allem darum, eine gemeinsame Vision und eine gemeinsame Sprache für alle Beteiligten zu definieren.

Was sind die Vor- und Nachteile des Test Driven Development?
Vorteile des Test Driven Development
Heutzutage wird Test Driven Development für die meisten Programmierprozesse empfohlen. Und das aus gutem Grund, denn diese Art der Überprüfung bringt eine Vielzahl von Vorteilen mit sich:- Die Machbarkeit der Software voraussehen: 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.
- Tatsächlich entsprechen die Tests eher den geschäftlichen Anforderungen. Und was noch wichtiger ist: DevOps sind in der Lage, mehr Unit-Tests abzudecken.
- Zeit sparen: Das Schreiben von Tests im Vorfeld verhindert auch, dass Zeit mit der Entwicklung von Funktionen verschwendet wird, die nicht den angestrebten Zielen entsprechen.
- Fehler minimieren: Da die Entwicklung durch Tests gesteuert wird, können die Entwickler Fehler fast in Echtzeit erkennen. Dadurch werden Fehler nach dem Einsatz minimiert.
- Vereinfachung der Wartung: Die Reduzierung von Fehlern spart auch Zeit bei der Wartung und Überwartung.
Nachteile des Test Driven Development
Trotz aller Vorteile von Test Driven Development sollte man sich auch seiner Grenzen bewusst sein. Zum einen setzt dieses Prüfverfahren ein umfassendes Verständnis des Codes voraus. Das bedeutet, dass du mehr Zeit für die Einarbeitung benötigst, bevor du mit dem Schreiben des Codes beginnen kannst. Andererseits besteht das Ziel des testgetriebenen Einsatzes vor allem darin, die Genauigkeit des Codes zu überprüfen. Diese Methode hält sich nicht damit auf, die Nutzung der Software und ihrer Funktionen zu überwachen. Aus diesem Grund muss TDD in der Regel durch andere Testverfahren (insbesondere BDT) ergänzt werden.Was sind die drei Phasen des Test Driven Development?
Test Driven Development basiert auf drei Grundgesetzen, nämlich :- „Du musst einen Test schreiben, der fehlschlägt, bevor du den entsprechenden Produktionscode schreiben kannst“.
- „Du musst jeweils nur eine Assertion schreiben, durch die der Test fehlschlägt oder die beim Kompilieren fehlschlägt“.
- „Du musst das Minimum an Produktionscode schreiben, damit die Assertion des fehlgeschlagenen Tests erfüllt wird“.

