Test-Driven Development mit PHP

Mit phpUnit gibt es bereits seit Jahren eine Methode zur testgetriebenen Entwicklung in PHP. Gerade bei der agilen Software-Entwicklung ist diese Methodik ein Grundpfeiler im Softwareentwicklungsprozess. „Alte“ Vorgehensweisen wie das Wasserfall- oder das V-Modell gehören bei der modernen Webentwicklung langsam aber sicher der Vergangenheit an.

Interessant am Test-Driven Development ist der Test-First-Ansatz. Hierbei lässt man eine Software automatisch testen, obwohl diese die benötigte Funktionalität gar nicht besitzt. Die entwickelte Software wird demnach den Test nicht bestehen. Es wird nun genau so viel Produktionscode geschrieben, wie der Test es verlangt. Besteht die Software den Test, ist die Entwicklung abgeschlossen. Man kann nun neue Test-Szenarien aufbauen oder bestehende erweitern, und den Produktionscode wieder entsprechend anpassen. Ändert man den Code, kann die gesamte Software gegen alle bereits vorhandenen Tests geprüft werden. Würde also eine Code-Änderung die Funktionalität eines anderen Bereiches der Software gefährden, würde dieser ebenfalls bei einem automatischen Test durchfallen.

Die Vorteile liegen klar auf der Hand: Die Tests finden bereits während der Entwicklung statt, und nicht erst danach. Das Vertrauen in die Software steigt, da bei erfolgreichem Abschluss der Programmierarbeiten alle vorhandenen Test-Szenarien erfolgreich überprüft worden sind. Es entsteht auch kein Mehraufwand für Korrekturen nach Abschluss der Arbeiten, da die entsprechenden Tests sehr stark an das Pflichtenheft ausgerichtet werden können.

Eine Voraussetzung der agilen Programmierung ist es nun aber, dass solche Tests sehr schnell erledigt und ohne großen Aufwand geschrieben werden können. Und genau hier kommt phpUnit ins Spiel, dass diese Aufgaben erledigt. Allerdings kommt an diesem Punkt erschwerend hinzu, dass im Bereich der Web-Anwendungs-Entwicklung Formulare ausgefüllt werden müssen, bei denen ebenfalls Tests erfolgreich zu Ende geführt werden müssen.

Hierzu bedient sich phpUnit des Browser-Plugins Selenium. Dieses Plugin speichert Maus-Bewegungen und Tastatur-Eingaben, die dann nachträglich wie bei einem Makro automatisch abgespielt werden können. Entsprechende Formulare können somit beliebig oft mit Testdaten getestet werden.

Weiterführende Techniken des Extreme Programming unterstützt phpUnit ebenfalls. Ein Beispiel sei hier nur das Behaviour-Driven-Development oder auch Code-Coverage-Analysen. Die Analyse ist zum Beispiel ein Indikator für den Fortschritt der Verifikation und somit ein weiteres Hilfsmittel. Sie sagt allerdings nichts über die Lauffähigkeit des Programmes aus, wofür die eigentlichen Unit-Tests verwendet werden müssen.

Ich denke, das phpUnit definitiv in den Enterprise-Bereich gehört, und von jedem PHP-Programmierer zumindest einmal angetestet werden sollen, auch wenn er sich dazu entschließen sollte, das Programmpaket dann doch nicht einzusetzen.

Zur Homepage von phpUnit.

Ähnliche Beiträge

Online Entwicklungsumgebungen für PHP Nunja, ich gebe zu, der Titel ist etwas reißerisch, denn von einer richten Entwicklungsumgebung kann man wohl kaum sprechen! Dennoch sind mir in der l...
Serverseitige Komprimierung Tja, wer es noch nicht weiß, Seiten lassen sich auf dem Server mit gzip komprimieren, und der Browser entpackt diese dann automatisch. Soweit zumindes...
Tutorial Amazon Web Services mit PHP – IV &#... Nachdem wir uns im letzten Teil des Tutorials mit dem Funktionscaching beschäftigt haben, besitzen wir nun alle notwendigen Werkzeuge, um Daten aus de...
Lambda Funktionen in PHP 5.3 Das neue PHP wird über Lambda-Funktionen verfügen. Toll! Aber was ist das eigentlich? Nun ja, es ist in der Tat etwas schwer zu erklären, aber ich wil...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.