Facebook
Twitter
Google+
Kommentare
12

smoke – Lean Testing Tool

In den letzten Jahren haben sich Testivals für mich als eines der wichtigsten Testinstrumente herausgestellt. Eine Gruppe von Personen testen einen Releasekandidaten innerhalb von zwei Stunden und generieren somit einen Eindruck über die Qualität des Systems. Sehr günstig und sehr effektiv. Was in einem solchen Zweistunden-Test nicht gefunden wird, sollte auch im Produktiveinsatz keine großen Probleme machen.

Wenn ich bei einem solchen Testival selbst als Tester eingeladen bin, dann bin ich derjenige, der einen technischen Blick auf das System wirft. Sind die Header korrekt? Sieht das HTML gut aus? Valides JavaScript? All das sind meine ersten Aufgaben bei der Analyse. Da dies vom Ablauf her immer identisch geschieht, kam die Idee auf, diesen Part einer Qualitätsbewertung automatisiert geschehen zu lassen. Die Idee zu smoke war geboren.

Smoke ist ein Open-Source-Tool, welches sich durch eine gegebene Webseite crawlt und die gefundenen Seiten, Skripte, CSS-Files, RSS-Feeds, JSON-Files und XML-Dateien gegen einen Satz von Regeln validiert. Alles möglichst ohne Konfiguration und einfach einzusetzen. In der letzten Woche habe ich mich dann hingesetzt und das Projekt umgesetzt.

Das ganze kann auf GitHub gefunden und geforkt werden. In der ersten Version ist der Regelsatz schon recht umfangreich, wenn auch noch nicht vollständig. Folgende Überprüfungen werden bereits durchgeführt:

  • HTML-Größe: Webseiten sollten eine Größe von 300 Kilobyte nicht überschreiten
  • HTML-Tag: Existiert eine schließendes HTML-Tag?
  • CSS-File-Count: Sind mehr als 10 CSS-Dateien eingebunden? Falls ja, sollte man überlegen, ob combining sinnvoll ist.
  • JS-File-Count: Das gleiche wie für die CSS-Files, nur im JavaScript-Kontext
  • Insecure-Content: Wenn eine HTTPS-Seite analysiert wird, wird untersucht, ob sich HTTP-Ressourcen eingeschlichen haben
  • Duration: Sollte die „time to first byte“ größer als eine Sekunde sein, schlägt dieser Test an
  • GZip: Ist die Komprimierung der Seiten aktiv?
  • HTTP-Status-Code: Der Status-Code sollte kleiner 400 sein.
  • Expires: Das Ablaufdatum sollte in der Zukunft liegen
  • Max-Age: Sollte normalerweise nicht Null sein
  • No-Cache: Sollte auch nicht zu finden sein
  • Bilder-Größe: Alles über 100KB sollte zumindest bekannt gemacht werden
  • JS-Syntax: Sind die JavaScript-Files valide?
  • JSON-Syntax: Sind die JSON-Files syntaktisch korrekt?
  • RSS-Validierung: Validieren die Feeds gegen das RSS2 XSD?

Für den ersten Wurf sind schon die wichtigsten Sachen drinnen. An der CSS-Validierung arbeite ich gerade und sicherlich kommen bald auch noch weitere Regeln dazu. Der Aufruf des Tools ist denkbar einfach:

Smoke.phar analyse "http://www.amilio.de"

Screenshot 2015-06-01 09.06.09
Natürlich geht auch noch mehr Individualisierung, aber ich gehe davon aus, dass das in den meisten Fällen gar nicht notwendig ist. Da ich das ganze als Open-Source auf Github gestellt habe, würde ich mich ordentlich freuen, wenn ein paar von euch das Tool mal ausprobieren. Worüber ich mich aber mindestens genau so freuen würde, sind neue Ideen für Regeln. Welche Eigenschaften muss eine Webseite haben, damit sie einen Smoke-Test besteht?

Und jetzt viel Spaß mit dem Tool.

PS: Wer auf der Kommandozeile nicht so fit ist, dem habe ich eine einfache Weboberfläche gebastelt, mit der er rumspielen kann.

Ü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

12 Comments

  1. Schönes Tool.
    Habe die Web Variante getestet:

    Eine Verlinkung zu den Fehlern (Beschreibung mit Lösung) wäre noch hilfreich.

    Als weitere Regel könnte man noch eien Test auf ein gültiges SSL-Zertifikat vollziehen inklusive den Tests bezüglich mixed code.

    Reply
    • Da bin ich gerade dabei. Werde es wahrscheinlich im ersten Schritt sauber in thewebhatesme integrieren und dann gegebenenfalls mit Blogartikeln zu den einzelnen Regeln anreichern.

      Reply

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