• 1 year ago / Marius Büscher

Qualitätssicherung in der Web-Entwicklung: Backend

Im ersten Teil unserer Serie zur Qualitätssicherung in der Web-Entwicklung haben wir uns mit der Sicherung im Frontend beschäftigt. Aber nicht nur im Frontend ist die Kontrolle und Sicherung der Qualität des Codings wichtig. Eine kontinuierliche Überwachung findet immer auch im Backend statt. Gerade im Backend liegen oft geschäftskritische Anwendungen des Kunden, die immer und vorbehaltlos funktionieren müssen. Daher ist das Testing der serverseitigen Applikationen besonders wichtig.

Auch hier wird die Formatierung des Quellcodes, die sogenannte Code Conventions, geprüft und auf bestimmte Muster hin untersucht, die so nicht vorkommen sollten. Wir programmieren PHP beispielsweise nach dem PSR-2 Standard, der Formatierungen und Pattern vorgibt. Getestet wird der Code mithilfe des PHP CodeSniffers. Auch beim PHP CodeSniffer lassen sich Regelverstöße zum Teil automatisch korrigieren. Dies spart Zeit ein, die dann im jeweiligen Projekt besser genutzt werden kann.

Da im Backend meist die Geschäftslogik einer Anwendung zu finden ist, sind hier die sogenannten Unit-Tests besonders wichtig. Dazu setzen wir unter anderem die Software PHPUnit ein, die sämtliche Tools für Unit-Tests zur Verfügung stellt. Klassen und Objekte lassen sich durch Mocks ersetzen. Sie stellen das gleiche API wie die ursprünglichen Objekte zur Verfügung, können aber kontrollierte Rückgabewerte liefern und Funktionsaufrufe mit in die Tests einfließen lassen. PHPUnit erstellt auch einen Bericht über das sog. Code-Coverage. Bei diesem Bericht wird aufgelistet, welche Stellen des Quellcodes mit Tests abgedeckt sind und welche noch Tests benötigen.

Dokumentation und wichtige Tools

Die Dokumentation der Projekte wird außerdem automatisch aus dem Quellcode erstellt – vorausgesetzt der Entwickler schreibt die entsprechenden Kommentare in seinen erstellten Quellcode. Die Software PHPDox wertet diese Kommentare aus und generiert automatisch eine Dokumentation aus dem Code und den Kommentaren. Dies ermöglicht den Entwicklern, den Quellcode schneller zu verstehen und die bereits vorhandenen Funktionen zu nutzen und zu erweitern.

Es gibt noch weit mehr als nur diese zwei Tools, um PHP zu testen. Eine weitaus größere Auflistung findet sich auf der Seite phpqatools.org. Die oben genannten Tools sind die weitaus wichtigsten.

Nicht nur Funktion und Formatierung des Quellcodes sollen getestet werden, sondern auch die Sicherheit des gesamten Systems. Dazu werden Projekte vor einem Livegang auf Sicherheit mit Software Acunetix Security getestet. Dieser Test läuft auch  automatisiert ab, soweit es gewünscht ist. Es werden Schwachstellen, wie beispielsweise SQL-Injection, Cross Site Scripting und andere Probleme untersucht. Da solche Tests sehr aufwändig sind, werden sie nicht bei jedem Build ausgeführt, sondern müssen gesondert gestartet werden.

Hier lest ihr Teil 1 zur Qualitätssicherung im Frontend. Weiter geht es zum abschließenden Teil 3 der CI-Integration.

Wenn ihr euch für die Arbeit bei denkwerk interessiert und uns in einer lockeren Atmosphäre kennenlernen möchtet, dann kommt zu unserem Event Level up am 27.02.2016 in Köln-Ehrenfeld.