Entwicklung & Design

Eine Einführung in Unit Testing mit PHP: Makelloser Code durch effizientes Testen

Komplexe Applikationen, die kontinuierlich weiterentwickelt werden, sind häufig fehleranfällig. Andererseits dürfen in geschäftskritischen Anwendungen natürlich keine Fehler auftauchen. Um Probleme zu entdecken und unbeabsichtige Auswirkungen von Änderungen während der Entwicklung zu finden, muss schnell, umfassend, wiederholt und am besten automatisch getestet werden. Deshalb bedienen sich immer mehr Entwicklerteams der Funktionalität von Unit Testing.

Die große Frage ist häufig: „Wozu brauchen wir denn Unit Tests, unsere Applikation läuft doch einwandfrei?“ Doch selbst wenn ein Programm fehlerfrei zu laufen scheint, können sich Fehler eingeschlichen haben, die auf den ersten Blick nicht ersichtlich sind. Teilweise funktionieren bestimmte Programmteile monatelang problemlos und erst durch umfangreiches Unit Testing, das alle Eventualitäten abdeckt, werden Fehler im Quellcode aufgedeckt.

Fehler aufzufinden und zu beheben ist das Ziel

Damit haben wir also bereits einen Punkt, der für Unit Testing spricht: Fehler können bereits auf der Ebene der Funktionen aufgespürt und behoben werden. Daneben gibt es aber noch mindestens einen weiteren Punkt, der für maschinelle Softwaretests spricht: Bei einfachen Funktionen ist manuelles Prüfen möglich und je nach verfügbaren Ressourcen auch praktikabel. Erreicht die Software allerdings eine bestimmte Komplexität, so sind manuelle Tests nur noch in beschränktem Rahmen möglich. Mit Unit Testing dagegen können leicht 500, 1.000 oder 10.000 Tests innerhalb von Minuten abgearbeitet werden.

Sebastian Bergmann hat mit PHPUnit [1] ein Framework entwickelt, das Unit Tests für PHP-Applikationen durchführt; gleichartige Module gibt es bereits für Java und andere Programmiersprachen. Mit PHPUnit können Entwickler auf einfache Weise eigene Tests für ihre Klassen und Funktionen schreiben und dann repetitiv durchlaufen lassen.

Innerhalb von PHPUnit existieren eine oder mehrere Testsuiten, die die einzelnen Test Cases beinhalten. Beim Aufruf von PHPUnit kann zunächst ausgewählt werden, welche Tests genau durchlaufen werden sollen.

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Ein Kommentar
Webelutions
Webelutions

Sehr guter Artikel!
Ich habe auch einen Artikel über Unit Testing mit PHPUnit geschrieben, dort sind noch weiter Informationen zu diesem Thema vorhanden: http://webelutions.de/blog/unit-testing-mit-php/

Antworten
Abbrechen

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung