- 16 Hauptkategorien mit >150 Testfällen - Alle Status-Typen abgedeckt (pending/confirmed/cancelled/completed) - E-Mail-Integration und ICS-Dateien - Stornierungslogik und Zeitvalidierung - UI/UX, Performance und Accessibility - Sicherheit und Edge Cases - Browser-Kompatibilität - Testergebnis-Bereich für Dokumentation
10 KiB
10 KiB
Blackbox Test-Checkliste: Kunden-Statusseite
Branch: Statusseite
Feature: Token-basierte Buchungsübersicht mit integrierter Stornierung
Datum: 2025-10-01
Vorbereitung
- Entwicklungsserver läuft (
pnpm dev
) - E-Mail-Service konfiguriert (RESEND_API_KEY gesetzt)
- Admin-Account verfügbar
- Testbehandlungen vorhanden
- Verfügbare Slots erstellt
1. Buchungserstellung & Token-Generierung
1.1 Neue Buchung (Status: pending)
- Buchung über Formular erstellen
- Pending-E-Mail erhalten
- Status-Link (
/booking/{token}
) in E-Mail vorhanden - Button "Status ansehen" vorhanden und korrekt verlinkt
- Link funktioniert beim Klick
1.2 Token-Validierung
- Gültiger Token öffnet Statusseite
- Ungültiger Token zeigt Fehlermeldung
- Abgelaufener Token zeigt entsprechende Meldung
- Token ohne Parameter zeigt Fehler
2. Statusseite UI/UX (Allgemein)
2.1 Layout & Design
- Logo wird angezeigt
- Seite ist responsive (Desktop, Tablet, Mobile)
- Alle Texte sind auf Deutsch
- Farben entsprechen dem Branding (Pink/Purple)
- "Zurück zur Startseite" Link funktioniert
2.2 Navigation
- Link zur Startseite funktioniert
- Browser-Zurück-Button funktioniert korrekt
- URL ist teilbar (Copy & Paste)
3. Status: Pending (⏳ Wartet auf Bestätigung)
3.1 Anzeige
- Status-Badge zeigt "⏳ Wartet auf Bestätigung" (gelb)
- Banner mit gelber Hintergrundfarbe
- Text erklärt, dass Termin geprüft wird
- Alle Termin-Details werden angezeigt:
- Datum (Format: dd.mm.yyyy)
- Uhrzeit
- Behandlung
- Dauer in Minuten
- Preis (wenn > 0)
- Kundendaten werden angezeigt:
- Name
- Telefon
- Notizen (falls vorhanden)
3.2 Stornierung
- Stornierungsbereich ist NICHT sichtbar (pending kann nicht storniert werden)
- Keine Stornierungsbuttons vorhanden
4. Status: Confirmed (✓ Bestätigt)
4.1 Statuswechsel
- Admin bestätigt Buchung
- Confirmed-E-Mail wird versendet
- E-Mail enthält "Termin verwalten" Button
- Link in E-Mail zeigt auf
/booking/{token}
- ICS-Datei ist im E-Mail-Anhang
- AGB-PDF ist im E-Mail-Anhang
4.2 Anzeige
- Status-Badge zeigt "✓ Bestätigt" (grün)
- Banner mit grüner Hintergrundfarbe
- Text bestätigt den Termin
- "Verbleibende Zeit" wird angezeigt (wenn Zukunft)
- Stunden bis zum Termin werden berechnet und angezeigt
4.3 Stornierung (wenn möglich)
- Stornierungsbereich ist sichtbar
- Hinweistext zur Stornierungsfrist wird angezeigt
- Button "Termin stornieren" ist vorhanden
- Klick auf Button zeigt Bestätigungsdialog
- Bestätigungsdialog enthält:
- Warnhinweis in rot
- "Ja, stornieren" Button
- "Abbrechen" Button
- "Abbrechen" schließt Dialog ohne Aktion
- "Ja, stornieren" führt Stornierung durch
- Nach Stornierung: Erfolgsmeldung wird angezeigt
- Nach Stornierung: Status aktualisiert sich
4.4 Stornierung (nicht mehr möglich)
- Termin < 24h (oder MIN_STORNO_TIMESPAN): Kein Stornierungsbutton
- Gelber Hinweiskasten wird angezeigt
- Text erklärt, dass Frist abgelaufen ist
- Kontakthinweis wird angezeigt
5. Status: Cancelled (✕ Storniert)
5.1 Nach Stornierung
- Status-Badge zeigt "✕ Storniert" (rot)
- Banner mit roter Hintergrundfarbe
- Text erklärt, dass Termin storniert wurde
- Hinweis auf Neubuchung wird angezeigt
- Stornierungsbereich ist nicht mehr sichtbar
5.2 Cancelled-E-Mail
- E-Mail wird an Kunden gesendet
- E-Mail enthält storniertes Datum
- E-Mail enthält Hinweis auf Neubuchung
6. Status: Completed (✓ Abgeschlossen)
6.1 Anzeige
- Status-Badge zeigt "✓ Abgeschlossen" (grau)
- Banner mit grauer Hintergrundfarbe
- Dankestext wird angezeigt
- Stornierungsbereich ist nicht sichtbar
- Alle Termin-Details bleiben sichtbar
7. E-Mail-Integration
7.1 Pending-Mail
- Betreff: "Deine Terminanfrage ist eingegangen"
- Enthält orangefarbenen "Status ansehen" Button
- Link funktioniert
- Text erklärt, dass Bestätigung folgt
- Rechtliche Informationen enthalten
7.2 Confirmed-Mail
- Betreff: "Dein Termin wurde bestätigt - AGB im Anhang"
- Enthält pinken "Termin ansehen & verwalten" Button (statt rot "Termin stornieren")
- Link zeigt auf
/booking/{token}
- ICS-Datei im Anhang
- ICS-Datei hat korrekten Namen: "Termin_Stargirlnails.ics"
- ICS-Datei kann in Kalender importiert werden
- AGB-PDF im Anhang
- AGB-PDF heißt "AGB_Stargirlnails_Kiel.pdf"
7.3 Cancelled-Mail
- Betreff: "Dein Termin wurde abgesagt"
- Text erklärt Stornierung
- Hinweis auf Neubuchung
- Rechtliche Informationen enthalten
8. ICS-Kalendereinträge
8.1 ICS-Datei Inhalt
- Zeitzone: Europe/Berlin
- Startzeit korrekt
- Endzeit korrekt (Startzeit + Behandlungsdauer)
- Titel: "{Behandlung} - Stargirlnails Kiel"
- Location: "Stargirlnails Kiel"
- Beschreibung enthalten
- 24h-Erinnerung konfiguriert
8.2 Kalender-Import
- Outlook: Import funktioniert
- Google Calendar: Import funktioniert (wenn möglich zu testen)
- Apple Calendar: Import funktioniert (wenn möglich zu testen)
- Termin erscheint im Kalender mit korrekter Zeit
- Erinnerung wird 24h vorher ausgelöst
9. Stornierungslogik
9.1 Zeitbasierte Validierung
- Termin > 24h in Zukunft: Stornierung möglich
- Termin < 24h in Zukunft: Stornierung nicht möglich
- Termin in Vergangenheit: Stornierung nicht möglich
- Korrekte Berechnung der verbleibenden Stunden
9.2 Statusbasierte Validierung
- Status "pending": Keine Stornierung möglich
- Status "confirmed": Stornierung möglich (wenn Zeitfrist OK)
- Status "cancelled": Keine Stornierung möglich
- Status "completed": Keine Stornierung möglich
9.3 Stornierungsablauf
- Bestätigungsdialog erscheint
- Loading-Spinner während Stornierung
- Erfolgsmeldung nach Stornierung
- Fehlermeldung bei Fehler
- Token wird NICHT invalidiert nach Stornierung
- Slot wird wieder freigegeben
- Status aktualisiert sich auf Seite
10. Fehlerbehandlung
10.1 Ungültige Token
- Nicht existierender Token: Fehlermeldung
- Abgelaufener Token: Fehlermeldung
- Leerer Token: Fehlermeldung
- Fehlermeldung ist benutzerfreundlich (Deutsch)
10.2 Netzwerkfehler
- API nicht erreichbar: Fehlermeldung
- Timeout: Fehlermeldung
- Fehler während Stornierung: Fehlermeldung bleibt sichtbar
10.3 Validierungsfehler
- Stornierung außerhalb Frist: Klare Fehlermeldung
- Bereits stornierter Termin: Fehlermeldung
11. Performance & Ladezeiten
- Statusseite lädt in < 2 Sekunden
- Keine sichtbaren Layout-Shifts
- Loading-Spinner wird während Laden angezeigt
- Bilder werden optimiert geladen
- Keine JavaScript-Fehler in Browser-Console
12. Accessibility & Browser-Kompatibilität
12.1 Accessibility
- Buttons sind mit Tastatur erreichbar
- Fokus-Indikatoren sind sichtbar
- Farbkontraste sind ausreichend (WCAG AA)
- Alt-Texte für Bilder vorhanden
12.2 Browser
- Chrome (aktuell): Funktioniert
- Firefox (aktuell): Funktioniert
- Safari (wenn möglich): Funktioniert
- Edge (aktuell): Funktioniert
- Mobile Browser (iOS/Android): Funktioniert
12.3 Responsive Design
- Desktop (>1024px): Layout korrekt
- Tablet (768px-1024px): Layout korrekt
- Mobile (320px-767px): Layout korrekt
- Touch-Targets ausreichend groß (min. 44x44px)
13. Sicherheit
13.1 Token-Sicherheit
- Token ist ausreichend lang (UUID)
- Token ist nicht vorhersagbar
- Token läuft nach 30 Tagen ab
- Abgelaufene Token werden abgelehnt
13.2 Datenschutz
- Keine sensiblen Daten in URLs außer Token
- Keine Kundendaten in Browser-Console geloggt
- E-Mail-Adressen werden nicht im Klartext im HTML angezeigt
- Telefonnummern geschützt
14. Rückwärts-Kompatibilität
14.1 Legacy-Routen
/cancel/{token}
funktioniert NICHT (bewusst entfernt)- Alte Links in E-Mails zeigen auf neue Route
- Bestehende Tokens funktionieren weiterhin
14.2 Datenbank-Kompatibilität
- Alte Buchungen werden korrekt angezeigt
- Alte Tokens funktionieren mit neuem Code
- Migration ist nicht erforderlich
15. Edge Cases
15.1 Extremwerte
- Sehr lange Behandlungsnamen werden korrekt dargestellt
- Sehr lange Notizen werden korrekt dargestellt
- Sehr hohe Preise werden korrekt formatiert
- Termin weit in Zukunft (> 30 Tage): Token abgelaufen
15.2 Sonderfälle
- Termin heute um 23:59: Stornierungsfrist korrekt berechnet
- Termin während Sommerzeit/Winterzeit-Wechsel: Korrekt
- Mehrere Buchungen desselben Kunden: Jede hat eigenen Token
- Gleichzeitiger Zugriff auf Statusseite: Kein Konflikt
16. Integration mit bestehendem System
16.1 Admin-Panel
- Buchungen werden im Admin-Panel angezeigt
- Statusänderungen im Admin-Panel reflektieren sich auf Statusseite
- Admin erhält weiterhin E-Mail-Benachrichtigungen
16.2 Slot-Management
- Stornierung gibt Slot frei
- Freigegebener Slot ist sofort buchbar
- Keine Slot-Konflikte
16.3 E-Mail-System
- E-Mails werden zuverlässig versendet
- Anhänge werden korrekt zugestellt
- CC an Admin funktioniert (bei confirmed)
Testergebnisse
Getestet von: _________________
Datum: _________________
Browser/Gerät: _________________
Kritische Fehler (Blocker)
(Hier kritische Fehler eintragen, die Release verhindern)
Mittelschwere Fehler
(Hier mittelschwere Fehler eintragen, die behoben werden sollten)
Kleinere Probleme
(Hier kleinere Verbesserungsvorschläge eintragen)
Gesamtbewertung
- ✅ Alle Tests bestanden - Release-fähig
- ⚠️ Tests bestanden mit kleineren Problemen
- ❌ Kritische Fehler gefunden - Nachbesserung erforderlich
Notizen
(Hier zusätzliche Beobachtungen und Anmerkungen eintragen)