Facebook
Twitter
Google+
Kommentare
2

Wie testet man ein Drupal-Projekt?

Wir sind gerade dabei einige unserer Webseiten auf Drupal umzustellen. Dabei erhoffen wir uns recht einfache Entwicklungsprozesse und ein schnelles Vorankommen im PHP-Umfeld. Soviel zumindest in der Theorie. Jetzt sind wir recht neu in der Drupalszene und müssen mit einem Projekt beginnen. Aber wie sieht es mit der Qualität aus?

Als Qualitätsmanager will man natürlich ein kontrollierbares Stück Software und wenn man aus dem Symfony2-Umfeld kommt, dann ist man einiges gewohnt. Drupal ist da anders. Bisher sieht es nicht so auch, als ob Testen der beste Freund des durchschnittlichen Drupalprogrammierers ist. Was also tun?

Was wir zuerst in einem Projekt etablieren sind Unit Tests. Wunderbares Werkzeug, um sauberen Code zu erzeugen und diesen auch stabil zu halten. Leider ist dies nicht der Normalfall bei Drupal. Unit Tests sind schlecht zu integrieren, die Komponenten sind zu eng gekoppelt und der Code zu komplex. Also einfach weglassen. Wird schon gut gehen.

Ich selbst bin noch nicht ganz so sicher, ob man Drupal wirklich nicht testen kann oder ob es einfach nur eine typischen Agenturenantwort ist. Aber nehmen wir man an, man kann es wirklich nicht mit Modultests bestücken, dann braucht man einen anderen Weg. Dabei haben wir uns für zwei Ansätze für das Sicherstellen der Funktionalität entschieden.

  • Funktionale Tests – Wenn man Drupal schon nicht als Whitebox sehen kann, dann muss man eben über Black-Box-Tests rangehen. Wir haben uns dazu entschieden Codeception zu nutzen, um automatisierte funktionale Systemtests zu schreiben. Das Tool macht einen guten Eindruck und wir haben bereits einige nette Erweiterungen dafür geschrieben. Die Aufgabe solche Tests zu schreiben liegt beim Entwicklungsteam.
  • Visuelle Regressionstests – Bei dieser Art von Tests macht man einen Screenshot von der Seite (oder einem Teil) und überprüft kontinuierlich, ob sich dieser verändert. Falls er es hat, wird ein Fehler geworfen. Fertig. In vielen Fällen ist dies der einfachere Einsatz im Vergleich zu „normalen“ funktionalen Tests.
    Das bekannteste Testwerkzeug ist wohl die JavaScript-Bibliothek PhantomCSS, die in Kombination mit resemle.js, casperjs und phantomjs einen tollen Job macht. Da wir uns damals aber gegen Casper & Phantom entschieden haben, werden wir wohl ein Codeception-Modul bauen, dass etwas ähnliches macht.

Wir hoffen, dass diese zwei Testmethoden fürs Erste ausreichen, um ein hochwertiges Produkt auf die Beine zu stellen. Ich würde mich aber sehr darüber freuen von euch über weitere Ansätze zu erfahren.

PS: Sowohl zu Codeception, als auch über VisualCeption, werde ich in den nächsten Wochen hier schreiben.

Ü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

2 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