Um diese Art von Situation zu vermeiden, müssen wir die Entwicklung auf der Grundlage von Tests durchführen, dh, wir erstellen die Tests des Systems, bevor wir den Code mit der Lösung erstellen. Auf diese Weise beginnen wir mit etwas, das uns von Anfang an Fehler bereitet, und wir tun dies Ich habe alle Tests bestanden.
Wenn wir eine neue Änderung hinzufügen, führen wir einfach alle bereits geschriebenen Tests aus und wenn einer, der bereits stattgefunden hat, fehlschlägt, wissen wir, dass wir eine Korrektur in unserem Code vornehmen müssen.
Zuerst testen, später codieren
Bei der Programmierung schreiben wir normalerweise einen Code und testen dann unser Programm, um festzustellen, ob es ausgeführt wird und das erwartete Ergebnis liefert. Viele könnten sagen, dass dies die beste und für bestimmte Anforderungen die beste Option ist Aber was passiert, wenn wir mit jedem neuen Code einen ganzen Einkaufsprozess durchlaufen müssen, bei dem wir nur 15 Minuten damit verbringen, es zu versuchen? Dies würde eine Menge Zeit kosten, die wir für andere Aktivitäten unseres Projekts aufwenden könnten.
In der extremen Programmierung, in der wir mit einem Minimum an Ressourcen und Zeit großartige Ergebnisse erzielen müssen und wenn wir uns die vorherige Situation vorstellen, dass wir einen sicheren Fehler garantieren, kommt hier die Programmierung auf der Basis von Tests oder Test Driven Development ins Spiel, so oft wir sie finden werden Diesmal werden wir zuerst den Test und dann den Code ausführen, wodurch wir gezwungen sind, den Test zu unterstützen, und somit die Gewissheit haben, dass unser Code nicht fehlschlägt. Am Ende führen wir statt eines Einkaufsprozesses einfach eine Datei aus, die das Ergebnis von liefert Die Checkpoints beschließen wir auszuprobieren.
Nachfolgend sehen Sie ein Bild mit einem Code, der einige Tests durchführt und anschließend die Funktionsweise erläutert:
In dem Code, den wir mit dem Importieren der Methode rect_area beginnen , weisen wir einige Werte zu und stellen die entsprechende Antwort her. Mit einer Bedingung sehen wir, ob diese Antwort dem Aufruf der angegebenen Methode entspricht.
Wenn es richtig ist, drucken wir, dass wir den Test bestanden haben, andernfalls ist der Test fehlgeschlagen. Diese ziemlich einfache Herangehensweise an einen Test zeigt uns, dass wir mehr als nur zu sehen, ob unser Programm ausgeführt wird oder nicht, nach einer Validierung unserer Lösung auf der Ebene suchen Allgemein, weil wir wissen, was wir zurückgeben müssen, wir das Problem kennen und mit ihm einen Weg finden müssen, es zu lösen.
Wenn wir den Beispieltest ausführen, müssen wir am Anfang viele Fehler haben, da wir jeden einzelnen von ihnen lösen und die Validierung unserer Lösung erreichen.
Obwohl es auf den ersten Blick so aussieht, als würden wir umgekehrt programmieren, kann uns diese Methodik letztendlich viel Kopfzerbrechen ersparen, wenn wir ein großes und komplexes System erstellen.