PHPUnit unter Kontrolle

Testen macht Spaß



Was ist der Antrieb beim Coden? Für mich ist es der Spaß am Problemlösen, Knobeln, Macht über die Maschine zu bekommen- kurz Erfolgserlebnisse.
Woher soll man die nehmen, wenn in den tiefen Schichten einer Anwendung ohne sichtbare Erfolge entwickelt wird? Dafür wurden die Unit Tests erfunden. Sebastian Bergmann konnte es mit PHP und ohne diese Erfolgserlebnisse nicht mehr aushalten - er schrieb das Testframework PHPUnit.

Es gibt auch noch andere Versionen dieser Geschichte.

Example Projekt testen

Holen wir uns etwas Freude mit unserer Math Klasse und bringen die Unit Tests in den grünen Bereich.

Meilenstein 3

  • Syntax berichtigen bis Unit Tests erfolgreich laufen
  • Einfluss auf den Build in phpUnderControl erkunden



    Den aktuellen Stand kann man sich auf den Testseiten von phpUnderControl anschauen. Aber als Reporting und Build Tool wird es nicht in den Workflow der Fehlerbeseitigung passen. Wir nehmen einfach wieder unsere Konsolenvariante. Genau genommen liegt hier auch der Anstoß für die Erstellung des Entwicklungsservers unter VirtualBox. Ich habe unter Vista64 einfach keine lauffähige CLI Version von PHP und damit auch PEAR hinbekommen.

Return to topic, nutzen wir doch einfach die Variante von Meilenstein 2 und aktivieren Überwachungskonsole …

und Editor. Fehleranalyse: 2 Varianten sind immer zu bedenken. Erstens unsere Tests sind fehlerhaft oder der zu testende Code ist der Schuldige.

/home/developer/example.phpuc/source/tests/MathTest.php:92

Da haben wir die 1. Quelle und starten das Refactoring. Ich schlage vor, jeder für sich schnell mal da durch.

Für Einsteiger sind schöne Beispiele für den Funktionsumfang von PHPUnit dabei. Schauen wir doch nochmal auf unsere Testseite und kaum zu glauben: GRÜN. Da ist es wieder dieses Erfolgserlebnis.



Ursachenforschung

Die Testfehler verhinderten also ein erfolgreiches Build. Unsere Bemühungen tragen Früchte und wir haben ein Beispiel für Qualitätssicherung auf Unit Test Ebene.

Wer jetzt auch noch die letzten roten Punkte von der Karte haben will, der muss sich mit den Software Metrics auseinandersetzen und die anzeigten Probleme beseitigen. Dabei geht es um sehr wichtige Vorgaben, die die Teamarbeit ungemein unterstützen. Bei konsequenter Anwendung wird die Lesbarkeit und der Codingstil in den Quellen verbessert.

Am besten gefällt mir dabei der CRAP Index, der die Komplexität einer Funktion anhand der Anzahl ihrer möglichen Durchläufe bewertet. Vorbei die Zeiten schneller Dirty-Hacks, aber auch die der ungeliebten Pflege solcher Monster.

Aktualisiert am 29. September 2009