TDD – Testgetriebene Entwicklung
Table of Contens
Egal ob du ein kleines Projekt oder ein grosses Projekt entwickelst, ist das Testen des Codes heutzutage ein Muss. Wenn man sein Code ohne zu Testen veröffentlicht, erhält man vielleicht sofort kein Problem, aber die schlimmste Probleme sind die jenige, die man übersehen hat. Mit der TDD (Test Driven Development) respektive Testgetriebene Entwicklung wird die Wahrscheinlichkeit ein potenzielles/zukünftiges Problem verhindert.
Was ist TDD, Testgetriebene Entwicklung?
Kurz und bündig: Bei der Testgetriebene Entwicklung werden die Tests zuerst danach die Codes erstellt. Der Code wird anhand von diesen Tests Schritt für Schritt entwickelt. Somit werden unnötige Codes/Funktionen/Klassen vermieden.
TDD nach Kent Beck
Unit-Tests und mit ihnen getestete Units werden stets parallel entwickelt. Die eigentliche Programmierung erfolgt in kleinen, wiederholten Mikroiterationen. Eine solche Iteration, die nur wenige Minuten dauern sollte, hat drei Hauptteile, die man im englischen Red-Green-Refactor nennt.
Red: Schreibe einen Test, der ein neues zu programmierendes Verhalten (Funktionalität) prüfen soll. Dabei fängt man mit dem einfachsten Beispiel an. Dieser Test wird vom vorhandenen Programmcode erst einmal nicht erfüllt, muss also fehlschlagen.
Green: Ändere den Programmcode mit möglichst wenig Aufwand ab und ergänze ihn, bis er nach dem anschliessend angestossenen Testdurchlauf alle Tests besteht.
Räume dann im Code auf (Refactoring): Entferne Wiederholungen (Code-Duplizierung), abstrahiere wo nötig, richte ihn nach den verbindlichen Code-Konventionen aus etc. Nach jeder Änderung werden die Tests ausgeführt, ihr Fehlschlag verbietet es, die offenbar fehlerhafte Änderung schon in den genutzten Code zu übernehmen. Ziel des Aufräumens ist es, den Code schlicht und verständlich zu machen.
Stub Objekte
Die Stub Objekte sind die Test-Dummys (externe Dateien, Json, XML usw.) Zum Beispiel wenn eine Klasse die Kunden-Daten von einer externen Schnittstelle (andere Klasse, Datenbank, externe App) benötigt, kann man mit Stub-Objekte diese benötigte Daten simulieren.
Mock Objekte
Die Mock Objekte sind die interne Codes. Damit der Projekt in der lokalen Umgebung unabhängig von externen Schnittstellen funktioniert, werden die bestehende Codes, die mit externen Schnittstellen kommunizieren, mit eigenen Test-Codes simuliert.
Vorteile von der Testgetriebene Entwicklung
- kein ungetesteter Code, somit können Sie ruhig schlafen 🙂
- saubere Code-Architektur durch TDD
- keine Redundanzen durch Refactoring
Testgetriebene Entwicklung konzentiert sich meistens auf Unit-Test. Es gibt andere Arten von Testing sowie Behavior Driven Development. Aber die Grundidee aller Testing-Konzepten ist das Testing 🙂
In dem nächsten Artikel werde ich einen Unit-Test und einen Acceptance Test mit Codeception erstellen. Bis dann…
Looking for a WordPress Developer?
I'm a Fullstack PHP Developer a Hosting Company in Zürich/Switzerland. I love WordPress! For personal and business purposes i use WordPress.
If you have any Problem with your WordPress Website or you want to create one do not hesitate to contact me!
Neueste Kommentare
- Marco bei OPNsense Bridge Firewall(Stealth) – 🛡Unsichtbarer Schutz
- Victoria bei Element 3d installieren und cracken – After Effects
- Aziz Ozbek bei OPNsense Bridge Firewall(Stealth) – 🛡Unsichtbarer Schutz
- Anton bei OPNsense Bridge Firewall(Stealth) – 🛡Unsichtbarer Schutz
- Aziz Ozbek bei OPNsense Bridge Firewall(Stealth) – 🛡Unsichtbarer Schutz
Recent Posts
- WordPress Non-zero exit status returned by script [Lösung]Dezember 6, 2022Sie installieren entweder ein neues WordPress oder […]
- So überprüfen Sie Ihre WordPress VersionDezember 5, 2022Manchmal haben Sie keinen Zugriff auf das WordPress […]
- WordPress Website transferieren – Duplicator [2022]November 22, 2022Wollen Sie Ihre WordPress Website von einem Hoster zu […]
- WordPress Site-URL anpassen [2022]November 20, 2022Es gibt viele Gründe warum Sie die Site URL vom Ihrer […]
- WordPress Login scheitert [Lösung]November 16, 2022Sie probieren in das Backend Login von WordPress […]
Comments
Leave a Comment