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

Wasserzeichen mit PHP Image Workshop Eins mit Abstand besten Module für Drupal ist das Imagecache Modul. Ich habe mich ja schon des öfteren darüber ausgelassen wie schade es ist, das kein...
Google Analytics GA.PI() – Klasse um Analytics mit... Dass Google Analytics eine API anbietet, um direkt Daten auszulesen und diese selbst darzustellen ist nichts Neues. Wie bei allen APIs stellt sich abe...
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...
Amazon Web Services nur noch mit Signatur Kaum schreibt man mal ein mehrteiliges Tutorial, schon ändert Amazon mal wieder was und nichts stimmt mehr :) Ich könnte jetzt ziemlich fluchen, bring...

Schreibe einen Kommentar