ALLE BLOGTEXTE
FACHTEXT

Wie ich meine Homepage teste

190 automatisierte Tests und ein Audit

Screenshot der Startseite von matthiasgross.net im Browser: der Name Matthias Groß, der Leitsatz Wissen gehört geteilt und daneben ein Foto von Matthias Groß, der lachend mit einem Stift in der Hand mit einer Person spricht.
Die Startseite von matthiasgross.net im Oktober 2026.
KURZ GESAGT
  • Meine Homepage prüfen 190 automatisierte Tests, Stand Oktober 2026.
  • Sie laufen vor jedem Commit, und ein roter Test hält die Änderung auf.
  • Dazu kommt ein regelmäßiges Audit, das die Seite aus Sicht definierter Personas bewertet.
  • Eingeordnet sind die Tests nach dem Matrix-Modell der TestGilde, also nach Teststufen und den Qualitätsmerkmalen der ISO/IEC 25010:2023.

Als Testmanager erzähle ich seit Jahren, dass Qualität kein Zufall ist. Bei der eigenen Homepage wäre es also etwas peinlich, kurz draufzuschauen und auf Hochladen zu klicken. Der Schuster mit den schlechtesten Schuhen wollte ich nicht sein. Also bekam die Seite, was ich auch in Projekten empfehle. Automatische Tests prüfen alles, was sich maschinell prüfen lässt. Für den Rest gibt es einen strukturierten Blick aus Sicht der Lesenden.

Die automatisierten Tests

Wer mich kennt, weiß: Ein Testautomatisierer bin ich nicht. Die Tests hat deshalb Claude Code geschrieben. Inhaltlich kann ich aber jeden Test abnehmen. Dafür ist jeder Test mit Ziel und Zweck beschrieben.

Vor jedem Commit

Gestartet werden die Tests von einem Pre-Commit-Hook. Er checkt den Stand aus dem Index in einen eigenen Ordner aus und lässt dort die ganze Suite laufen. Das dauert auf meinem Rechner rund 20 Sekunden. Scheitert ein Test, bricht der Commit ab. Weil ich nur committete Stände hochlade, ist damit jede Veröffentlichung getestet. Externe Dienste wie LinkedIn sind dabei gemockt. Statt eines echten Abrufs bekommt der Code vorbereitete Antworten.

Eine Sache ist mir wichtig: Jede Warnung von PHP lässt einen Test scheitern, auch wenn das Ergebnis stimmt. Gedacht ist das vor allem für veraltete Aufrufe, die in einer späteren PHP-Version wegfallen. Der Webspace läuft mit PHP 8.5. Solche Stellen sollen sofort auffallen, nicht erst beim nächsten Update des Hosters.

Was getestet wird

Getestet werden alle Seitenvorlagen, von der Startseite über Engagement, TestLänd, Kurzprofil, Werdegang und Datenschutz bis zu den Detailseiten unter Veröffentlichungen, Auftritte und Blog. Abgedeckt sind auch die zentralen Daten der Seite und der Front Controller, der für saubere Adressen sorgt. Dazu kommen der Blog mit Übersicht und RSS-Feed und die LinkedIn-Karten auf der Startseite samt passwortgeschützter Pflegeseite. Auch die eigene Besucherstatistik mit Kontaktformular hat ihre Tests, ebenso robots.txt, llms.txt und sitemap.xml sowie CSS, JavaScript und die .htaccess.

Die Tests prüfen nicht nur Code, sondern auch Inhalte. Harte Zahlen wie Semester, Studierende oder After Works stehen an genau einer Stelle. Ein Test schlägt an, sobald irgendwo eine dieser Zahlen fest eingetippt ist. Ein anderer prüft, dass alle Seiten denselben Wert zeigen. Jeder Blogeintrag braucht ein Titelbild mit Alt-Text, passenden Maßen und allen Bildvarianten.

Einordnung im Matrix-Modell

Das Matrix-Modell der TestGilde ordnet Tests auf zwei Achsen ein: nach Teststufen und nach den Qualitätsmerkmalen der ISO 25010. Jedes Feld zeigt also, welches Merkmal auf welcher Stufe geprüft wird. Gemeinsam mit Laura de Michele habe ich das Modell in einem Artikel für die iX beschrieben. Er erscheint am 06.11.2026 im iX Special „Software-Testing“. Vorgestellt habe ich es unter anderem bei der German Testing Night in Leonberg. Einen Bericht dazu findest du hier im Blog. Schau auch gerne bei meinen anderen Auftritten vorbei.

Matthias Groß erklärt vor einem großen Bildschirm das Matrix-Modell: Teststufen als Zeilen, Qualitätsmerkmale als Spalten, darin eingeordnet Smoke-Test, Regressionstest, Performanztest und Installationstest.
Das Matrix-Modell bei der German Testing Night in Leonberg im Juli 2026.

Auf meiner Homepage ist jeder der 190 Tests genau einer Teststufe und einem Qualitätsmerkmal als Hauptziel zugeordnet. Für die Teststufe zählt, wie viel ein Test als Ganzes ausführt. Nur beim Abnahmetest entscheidet etwas anderes, nämlich woher die erwartete Antwort stammt.

Wische seitlich, um alle Spalten zu sehen.

Teststufe Funktionale Eignung Leistungseffizienz Kompatibilität Interaktionsfähigkeit Zuverlässigkeit Informationssicherheit Wartbarkeit Flexibilität Betriebssicherheit Tests
Abnahme­test 13 1 3 1 18
System­integrations­test 7 2 1 10
System­test 17 7 1 4 4 4 1 38
Komponenten­integrations­test 14 1 8 4 3 30
Komponenten­test 43 2 5 5 12 22 4 1 94
Tests je Merkmal 94 2 14 17 22 30 9 2 0 190
Tests der Homepage je Teststufe und Qualitätsmerkmal, Stand Oktober 2026. Jeder Test zählt einmal, bei seinem Hauptmerkmal.

Teststufen

Mit knapp der Hälfte bilden die Komponententests die breite Basis, wie in einer Testpyramide. Die Stufen im Einzelnen, von unten nach oben:

Komponententests (94) prüfen eine einzelne Funktion oder Datei für sich.

Komponentenintegrationstests (30) prüfen, wie mehrere eigene Bausteine zusammenarbeiten. Ein Beispiel ist das Speichern eines LinkedIn-Beitrags mit Formular, Abruf, Bild und Speicher.

Systemtests (38) starten eine Seite über ihren Einstieg im eigenen PHP-Prozess, so wie Apache es tun würde. Dann prüfen sie das fertige HTML. Damit ist auch abgesichert, dass Inhalte ohne JavaScript ankommen. Im Browser läuft allerdings kein Test.

Systemintegrationstests (10) prüfen die Schnittstellen zu fremden Systemen: LinkedIn, den Kurzlinkdienst lnkd.in und Apache mit der .htaccess. Die Partner sind dabei gemockt, LinkedIn etwa durch eine gespeicherte Seite und vorbereitete Antworten. Ob LinkedIn sich morgen noch genauso verhält, zeigt erst der Betrieb.

Abnahmetests (18) haben als Testorakel keine technische Spezifikation. Die erwartete Antwort ist eine Entscheidung von mir oder eine rechtliche Vorgabe: wörtliche Zitate, Namen und Orte, Pflichtangaben im Datenschutz, Schreibregeln. So prüft ein Abnahmetest, dass auf der Startseite nur freigegebene Zitate stehen, wörtlich und in der festgelegten Reihenfolge. Diese Tests sorgen dafür, dass Entscheidungen nicht versehentlich zurückgedreht werden. Die eigentliche Abnahme bleibt trotzdem bei mir, in der lokalen Vorschau und auf der Live-Seite.

Qualitätsmerkmale

Ich verwende die deutschen Begriffe, die ich für die Qualitätsmerkmale der ISO 25010 empfehle. Die Zahl dahinter zählt wie in der Matrix die Tests mit diesem Merkmal als Hauptziel. 89 Tests prüfen nebenbei weitere Merkmale. Die zählt die Matrix nicht mit.

Funktionale Eignung (94): Der klare Schwerpunkt, und das passt: Der Wert dieser Website liegt in richtigen und vollständigen Inhalten. Zahlen stimmen auf allen Seiten überein, Blogtexte erscheinen in der richtigen Reihenfolge, Datumsangaben stimmen auch beim Wechsel auf die Winterzeit.

Informationssicherheit (30): Die Pflegeseite ruft nur LinkedIn per HTTPS ab, Adressen wie linkedin.com.evil.com fallen durch. Dateien lassen sich nicht über Pfade wie ../ löschen, Eingaben werden maskiert, die IP wird gekürzt gespeichert.

Zuverlässigkeit (22): Ein Fehler der Statistik darf nie eine Seite stören. Die robots.txt kommt auch dann, wenn das Mitschreiben scheitert. Kaputte Dateien führen zu leeren Listen statt zu Abstürzen und werden nie überschrieben.

Interaktionsfähigkeit (17): Jede Detailseite hat genau eine H1, jedes Bild einen Alt-Text, die Pflegeseite zeigt verständliche Meldungen statt Fehlercodes. Geprüft wird nur am HTML. Wie die Seite auf dem Telefon oder mit einem Screenreader wirkt, schaue ich mir von Hand an.

Kompatibilität (14): Strukturierte Daten, Open Graph und RSS sind gültig und zeigen auf die richtige Adresse. Geprüft wird gegen meine eigenen Erwartungen. Ob Google die Daten wirklich annimmt, zeigt erst ein externes Werkzeug wie der Rich-Results-Test. Den starte ich von Hand.

Wartbarkeit (9): Zahlen stehen zentral und sind nirgends fest eingetippt. Alle Seiten laden CSS und JavaScript in derselben Version. Zu jedem Blogeintrag gibt es genau eine Seite, und keine Seite bleibt verwaist.

Flexibilität (2): Die Seite passt sich ihrer Umgebung an. Sie läuft beim Hoster und auf meinem Rechner, ohne dass ich etwas umstellen muss. Was es nur beim Hoster gibt, etwa die Besucherstatistik, schaltet sich anderswo von selbst ab.

Leistungseffizienz (2): Nur statisch abgesichert über Bildgrößen, WebP-Varianten, Lazy Loading und Antworten mit 304. Ladezeiten misst kein Test.

Betriebssicherheit (0): Kein Test, und das ist richtig so. Eine Homepage gefährdet zum Glück weder Leib noch Leben. Eine kaputte Datei sperrt zwar das Speichern. Das sieht nach einem sicheren Zustand aus, schützt aber nur Daten und gehört deshalb zur Zuverlässigkeit.

Was die Matrix sichtbar macht

Genau dafür ist das Modell gedacht: Lücken in der Testabdeckung zu erkennen. Bei mir sind es drei. Die Pflegeseite läuft in keinem Systemtest als Ganzes, nur ihre Bausteine sind gut abgedeckt. Interaktionsfähigkeit im Browser und Ladezeiten prüfe ich nur von Hand. Und die Partner der Systemintegrationstests sind gemockt, nicht echt.

Das Audit

Personas als Basis

Tests prüfen, ob etwas stimmt. Das Audit fragt, ob die Seite überzeugt. Es ist ein Prompt für Claude Code, den ich regelmäßig laufen lasse. Er arbeitet rein prüfend und ändert keine Datei.

Grundlage sind vier definierte Personas. Die erste ist eine erfahrene Fachperson aus der Testing-Community. Die zweite würde mich weiterempfehlen, die dritte schlägt mich nach einem Vortrag nach. Die vierte ist ein Sprachmodell, das die Seite für eine KI-Antwort auswertet. Das Audit liest die Seite aus allen vier Blickwinkeln gleichzeitig.

Kategorien und Bericht

Bewertet wird in Kategorien wie Social Proof, Inhaltsqualität, „professionell und nahbar“, SEO, Auffindbarkeit in KI-Suchen sowie Alt-Texte und Barrierearmut. Jede Kategorie bekommt eine Bewertung auf einer Skala von 1 bis 10 mit festen Ankerpunkten, damit sie nicht zu milde ausfällt. Daraus ergibt sich ein gewichteter Gesamtwert. Beim ersten Lauf lag er bei 5,2, inzwischen seit drei Läufen bei 9,0 oder 9,1.

Ergebnis ist ein datierter Bericht mit einem Maßnahmenkatalog. Jede Maßnahme hat eine Nummer, einen Vorschlag zur Umsetzung, Aufwand und Wirkung. Geprüft wird gegen den lokalen Entwicklungsserver. Für Punkte, die nur live prüfbar sind, gibt es eine eigene Checkliste. Dazu gehören HTTPS und Weiterleitungen.

Vom Audit zum Test

Manche Maßnahme aus dem Audit landet anschließend in der Testsuite. Maßnahme M66 verlangte: Fällt das JavaScript aus, bleiben Inhalte und mein Name in der Kopfzeile trotzdem sichtbar. Heute sichern das 3 Tests ab.

Ein zweites Beispiel kam aus der Live-Prüfung: Adressen wie /img/ liefen in eine Weiterleitungsschleife. Seit der Korrektur passen 2 Tests auf, dass sie nicht wiederkommt. So wird aus einem Befund eine Regel, die nicht wieder kaputtgeht.

Fazit

Die automatischen Tests sichern ab, was schon funktioniert. Das Audit zeigt, wo die Seite noch besser werden kann. Erst beides zusammen ergibt für mich ein vollständiges Bild, genau wie im Projekt.

Und ja: Auch dieser Beitrag musste durch die Tests, bevor er online gehen durfte.

LINKEDIN

Dazu auf LinkedIn

DER AUTOR

Matthias Groß ist Testmanager und Partner der TestGilde GmbH in Esslingen bei Stuttgart und arbeitet seit 2007 in der Softwarequalitätssicherung. Er hat von 2008 bis 2022 an der Dualen Hochschule Baden-Württemberg gelehrt und betreut dort seit 2015 Projekt- und Bachelorarbeiten. Er ist Mitgründer der Testcommunity TestLänd und Mitglied im Programmkomitee des Software-QS-Tag. Am meisten lernt er im Austausch mit anderen, deshalb liegt ihm die Community so am Herzen.