Teststrategie
Die Teststrategie kombiniert schnelle automatische Prüfungen mit manuellen Tests für Risiken, die sich nicht zuverlässig automatisieren lassen. Umfang und Tiefe richten sich nach der Änderung.
Webapp
Automatisiert
- ESLint
- Jest mit jsdom und Testing Library
- Next.js-Produktionsbuild
- Playwright-Smoke- und Journey-Tests
- axe-Prüfungen gegen ausgewählte Zustände nach WCAG 2.2 A und AA
In Merge Requests und auf main baut der E2E-Job die App lokal und verwendet
ein veröffentlichtes Staging-CMS als Datenquelle. Funktionale E2E- und
Accessibility-Tests laufen dort mit Chromium. Lokale Playwright-Läufe können
zusätzlich Firefox und WebKit verwenden.
Schwerpunkte sind Kategorienavigation, Stories und Slides, Breadcrumb, Sprachwahl, Locale-Präferenz, Fokusführung, responsive Zustände, Content Preview, CMS-Proxy und TTS-nahe Logik.
Manuell
- Screenreader mit mindestens einem realistischen Kernflow
- vollständige Tastaturbedienung
- Zoom bis 200 und 400 Prozent sowie Reflow
- Smartphone- und Desktopdarstellung
- Reduced Motion
- Verständlichkeit der deutschen und englischen UI-Texte
- Audiowiedergabe, Aussprache und Wortmarkierung
Automatische axe-Prüfungen ersetzen diese Tests nicht.
CMS
Derzeit automatisiert
- reproduzierbare Installation mit
npm ci - Abhängigkeitskonsistenz mit
npm ls --omit=dev - Strapi-Produktionsbuild
Das CMS besitzt derzeit keine automatisierten Tests und keine lokale Lint- oder Formatkonfiguration. Diese Lücke wird offen benannt und durch manuelle Prüfungen abgesichert, bis kritische CMS-Pfade automatisiert getestet werden.
Manuelle Pflichtpfade bei betroffenen Änderungen
- Kategorie und Story anlegen, speichern, bearbeiten und veröffentlichen
- deutsche und englische Lokalisierung samt Beziehungen
- Entwurfsvorschau und Verlassen der Vorschau
- öffentliche API liefert keine Entwürfe
- Medienupload lokal beziehungsweise über S3
- TTS einzeln und gesammelt starten
- Status, Fehler, Abbruch und Wiederherstellung prüfen
- erzeugtes Audio und Wort-Zeitmarken in der App kontrollieren
Schema-, Datenbank-, Upload-, Preview- oder TTS-Änderungen benötigen passende Testdaten und eine Rückfallstrategie.
Dokumentation
Automatisiert
- TypeScript-Prüfung
- Prüfung interner Links und lokaler Assets
- Next.js-Produktionsbuild
- Pagefind-Indexierung
- GitLab SAST und Secret Detection
Manuell
- Navigation und alte Weiterleitungen
- Suche und direkte Seitenaufrufe
- Desktop- und Smartphone-Ansicht
- Tastaturbedienung und sichtbarer Fokus
- Überschriftenhierarchie und verständliche Linktexte
- Staging-Banner und
noindex - Stichprobe der Anleitungen gegen App und CMS
Teststufen
- Während der Umsetzung: betroffene schnelle Tests und Selbstprüfung.
- Vor dem Merge: vollständige relevante Repository-CI.
- Auf Staging: integrierte Kernflows über CMS, App und Docs.
- Vor Beta oder Release: manuelle Accessibility-, Redaktions- und Betriebsprüfungen.
- Nach Deployment: kurzer Produktions-Smoke-Test ohne Veränderung produktiver Daten.
Regressionstests
Ein behobener Fehler erhält einen automatisierten Regressionstest, wenn der Pfad stabil automatisierbar und das Risiko relevant ist. Andernfalls wird der manuelle Prüfpunkt in einer Checkliste ergänzt. Tests müssen den beobachtbaren Vertrag prüfen und dürfen nicht unnötig an Implementierungsdetails gekoppelt sein.
Testdaten und Umgebungen
- Unit-Tests verwenden kontrollierte Fixtures und Mocks.
- App-E2E verwendet veröffentlichte, nicht vertrauliche Staging-Inhalte.
- CMS-Importe und destruktive Tests laufen nur gegen neue oder bewusst dafür vorbereitete Instanzen.
- Produktive Daten und Secrets werden nicht in Tests, Artefakte oder Logs kopiert.
Freigabekriterium
Ein Merge oder Release ist nur freigabefähig, wenn die relevanten Prüfungen grün sind oder eine begründete, dokumentierte Risikofreigabe vorliegt. Flaky Tests werden nicht kommentarlos wiederholt oder dauerhaft ignoriert, sondern als eigenes Problem erfasst.