Facebook
Twitter
Google+
Kommentare
1

Testen von Webservices

Heute wollen wir mal wieder eine neue Kategorie anlegen. Obwohl wir schon einige Beiträge zum Thema Qualitätssicherung hatten, hier jetzt endlich die passende Kategorie dazu.

Heute wollen wir einfach mal Unit Tests für Webservices anschneiden. Wir hatten bis jetzt den Ansatz, dass wir in unseren Tests den Webservice aufrufen und in unserem Fall die SOAP Antwort verifizieren. Dabei liefen Webservice und Unit Test auf dem selben Rechner. Dadurch, dass wir die ganze Zeit der komplette SOAP Server und Client aufgerufen wurde, wurden die Tests recht Zeitaufwändig. Für die ca. 20 Tests hat unser Bauprozess circa 60 Sekunden benötigt, was auf die Dauer relativ nervig sein kann. Dafür hatten wir aber eine gute Testabdeckung, was unsere SOAP Services anging. Da diese aber in einem anderen PHP Prozess liefen, wurde die Code Coverage aber nicht erkannt.

Irgendwie wussten wir, dass wir etwas falsch, oder besser, nicht komplett richtig gemacht hatten. Aber wo war unserer Fehler. Eigentlich ganz einfach, der Ansatz die Tests über SOAP Aufzurufen war einfach nicht richtig. Der komplette SOAP Server sollte über seine eigenen Tests verfügen. An der Stelle, an der wir die speziellen Services testen wollen, müssen wir davon ausgehen, dass der Server einwandfrei funktioniert. Wir müssen also nur die Klassen testen, die im Hintergrund aktiv sind. Ich hoffe mal, dass ihr alle eure Businesslogik von der eigentlichen Webservice Logik getrennt habt. Wir hatten es und so war der Umbau der Tests auch gar kein Problem. Diese Neustruktorierung oder neudeutsch Refaktorisierung, hatte zwei große Vorteile: die Tests liefen jetzt innerhalb von unter 10 Sekunden durch und die Testabdeckung wird von PHPUnit aus richtig ausgewertet.

Fazit: Solltet ihr auf Integrationstests mit PHPUnit setzen, dann versucht die zu testenden Bestandteile in möglichst kleine Stücke aufzubrechen, da so eine höhere Pfadabdeckung einfacher zu erreichen ist. Auch muss jedes Teil für sich getestet werden und nicht unbedingt im Kontext mit anderen.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

1 Comments

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen