Files

11 KiB

Abnahmespezifikation und Testzuordnung

Knoten acceptance, Stand 2026-09-08. Die englischen Feature-Dateien in gherkin/ sind die kanonische ausführbar anzubindende Spezifikation. Die gleichnamigen Langbeschreibungen im Werkbaum werden synchron gehalten. Stabile WJ-Tags identifizieren Szenarien; IDs bei späteren Ergänzungen nicht neu nummerieren.

Dieser Knoten liefert Beispiele und Testzuordnung, nicht die fertigen Step Definitions. Die 13 fachlichen Arbeitszeit-Beispiele (WJ-043 bis WJ-055 mit @service, einschließlich vier Dauer-Beispielen) sind inzwischen mit Cucumber ausgeführt; siehe work-gherkin.md. Zusätzlich sind die sechs fachlichen Habit-Szenarien WJ-002, WJ-003, WJ-004, WJ-009, WJ-056 und WJ-057 ausgeführt; siehe habit-gherkin.md. Die zwölf Push-Service-Beispiele (WJ-028 bis WJ-035 ohne Browser-Szenario WJ-033, plus WJ-060) sind ebenfalls ausgeführt; siehe push-gherkin.md. Auch elf Konten-Service-Beispiele sind ausgeführt (WJ-010 bis WJ-019 ohne WJ-015); siehe identity-gherkin.md. WJ-038, WJ-039, WJ-041, WJ-042, WJ-058 und WJ-059 sind als echte Chromium-Szenarien angebunden; siehe browser-gherkin.md, browser-preferences.md, browser-closed-draft.md, browser-tab-conflict.md und browser-draft-owner.md. WJ-001 und WJ-005 prüfen Habit-Grenzwerte im Chromium-Browser; siehe browser-habit-limits.md. WJ-006 prüft vollständige Kalenderwochen über Monatsgrenzen; siehe browser-habit-month.md. WJ-007 prüft Arbeit am freien Tag inklusive Today-Summen und Erinnerungsunterdrückung; siehe browser-work-dayoff.md. WJ-008 prüft Tracker-Deaktivierung und Datenerhalt im echten Export; siehe browser-disable-work.md. Beide WJ-040-Beispiele prüfen private Monats-/Jahresdateien im Browser; siehe browser-private-export.md. WJ-054 prüft bestätigtes Löschen im Browser; siehe browser-work-delete.md. WJ-048 prüft ausdrückliche Kundenanlage im Arbeitsformular; siehe browser-customer-create.md. WJ-051 prüft Bearbeitungskonflikte zwischen getrennten Geräten; siehe browser-work-conflict.md. Alle übrigen Gherkin-Bindungen bleiben offen. Die folgenden Implementierungsknoten liefern echte fachliche Assertions; keine Platzhalter-Steps, die nur Erfolg zurückgeben. Sobald ein Fachbereich als fertig gilt, müssen alle zugehörigen Szenarien implementiert sein. Ein finales Release darf keine undefinierten oder übersprungenen Pflichtszenarien enthalten.

Testebenen

  • service: Cucumber auf der JVM, echte Anwendungsdienste und H2-Dateidatenbank, kontrollierte Uhr, kontrollierter E-Mail-Versand und Push-Testtransport. Nebenläufigkeit mit separaten Transaktionen und Barrieren prüfen, nicht mit zufälligen Sleeps.
  • browser: Cucumber/Playwright gegen die JVM-Anwendung. Anzeigen, Konfliktentwürfe, Browserpersistenz, Sprache und Theme tatsächlich im Browser prüfen. Kontrollierte Test-E-Mails statt externem Mailversand in der CI. Zwei Browserkontexte für zwei Geräte beziehungsweise Benutzer verwenden.
  • deployment: Gherkin-gesteuerter Test des wirklichen Shell-/Releaseablaufs in isolierten Verzeichnissen mit kontrollierter Dienst-/Transportgrenze. Änderungen an Dateien, Manifesten und Rückfallständen prüfen. Reale Hostintegration zusätzlich bei Betriebsabnahme verifizieren.
  • production_smoke: nur Produktions-JAR-Prozessstart und Bereitschaft prüfen, gemäß vereinbartem CI-Umfang. Keine versteckte Pflicht zur zusätzlichen vollständigen Fachtestsuite.
  • operator_restore: ausführbares Restore-Szenario mit vom Betreiber bereitgestellter repräsentativer Sicherung in isolierter Umgebung. Nicht automatisch private Sicherungen auf einen öffentlichen CI-Artefaktserver kopieren.

Echte E-Mail-Anmeldung, Android-Installation/Web Push und echte Chrome/Firefox-Abnahme separat dokumentieren. Kein Testcontainers-Docker-Daemon auf Werkdock voraussetzen. Testressourcen und Datenbankdateien je Szenario isolieren; keine Produktionsmutationen.

Offene Details gezielt später klären

Die bestätigten Regeln werden umgesetzt. Nicht bestätigte Vorschläge (Namenseindeutigkeit, zukünftige Habit-Tage, Wiederaktivierung von Push nach Tracker-Reaktivierung) werden nicht durch neue Szenarien still als Nutzerentscheidungen festgeschrieben. Vor dem jeweiligen Implementierungsknoten rückfragen und dann wie beauftragt anhalten.

Szenarien

ID Datei Szenario Testebene Cucumber-Ausführung
WJ-001 habit-tests.feature Count without a configured limit browser bestanden (Chromium)
WJ-002 habit-tests.feature A habit count cannot become negative service bestanden
WJ-003 habit-tests.feature Concurrent increments report a conflict service bestanden
WJ-004 habit-tests.feature Change the allowance for the current week only onward service bestanden
WJ-005 habit-tests.feature Record a habit above the allowance browser bestanden (Chromium)
WJ-006 habit-tests.feature Calculate a week spanning two months browser bestanden (Chromium)
WJ-007 habit-tests.feature Record work on a day off browser bestanden (Chromium)
WJ-008 habit-tests.feature Disable a tracker without deleting its data browser bestanden (Chromium)
WJ-009 habit-tests.feature The first allowance does not change earlier weeks service bestanden
WJ-010 identity-tests.feature Redeem an invitation exactly once service bestanden
WJ-011 identity-tests.feature Reject unavailable invitations service bestanden
WJ-012 identity-tests.feature Administrators cannot inspect another user's tracking data service bestanden
WJ-013 identity-tests.feature Disable an account with existing sessions service bestanden
WJ-014 identity-tests.feature Expire an inactive login service bestanden
WJ-015 identity-tests.feature Sign out everywhere browser bestanden
WJ-016 identity-tests.feature Delete and register again service bestanden
WJ-017 identity-tests.feature Recover after the last administrator deletes their account service bestanden
WJ-018 identity-tests.feature Account creation requires an invitation or authorized setup code service bestanden
WJ-019 identity-tests.feature Deletion requires fresh identity confirmation service bestanden
WJ-020 ops-tests.feature Production JAR smoke check production_smoke bestanden
WJ-021 ops-tests.feature Roll back a partially failed migration deployment noch nicht angebunden
WJ-022 ops-tests.feature Preserve known-good state across two failed releases deployment noch nicht angebunden
WJ-023 ops-tests.feature Keep maintenance active after a failed rollback deployment noch nicht angebunden
WJ-024 ops-tests.feature Restore from a Hostsharing backup operator_restore noch nicht angebunden
WJ-025 ops-tests.feature Upload does not activate an unverified candidate deployment noch nicht angebunden
WJ-026 ops-tests.feature CI deploys the exact tested artifact deployment noch nicht angebunden
WJ-027 ops-tests.feature A failed deployment remains failed after successful rollback deployment noch nicht angebunden
WJ-028 push-tests.feature Remind only an opted-in smartphone service bestanden
WJ-029 push-tests.feature Suppress an ineligible reminder service bestanden
WJ-030 push-tests.feature Catch up after maintenance service bestanden
WJ-031 push-tests.feature Do not catch up after the window closes service bestanden
WJ-032 push-tests.feature Use the last observed timezone while the app is closed service bestanden
WJ-033 push-tests.feature Open an old notification browser noch nicht angebunden
WJ-034 push-tests.feature Do not remind at weekends service bestanden
WJ-035 push-tests.feature Work recorded on another device suppresses a reminder service bestanden
WJ-036 ux-tests.feature Keep a work draft across deployment browser bestanden
WJ-037 ux-tests.feature Show an offline notice without committing work browser bestanden
WJ-038 ux-tests.feature Initialize and override the language browser bestanden (Chromium)
WJ-039 ux-tests.feature Keep theme overrides local to the device browser bestanden (Chromium)
WJ-040 ux-tests.feature Export private tracking data browser bestanden (Chromium, beide Beispiele)
WJ-041 ux-tests.feature Default to English for an unsupported browser language browser bestanden
WJ-042 ux-tests.feature A different account cannot recover a private draft browser bestanden (Chromium)
WJ-043 work-tests.feature Save several entries for one customer on the same day service bestanden
WJ-044 work-tests.feature Reject invalid work durations service bestanden
WJ-045 work-tests.feature Enforce the daily limit across concurrent insertions service bestanden
WJ-046 work-tests.feature Reject a future date in the current device timezone service bestanden
WJ-047 work-tests.feature Keep calendar dates stable during travel service bestanden
WJ-048 work-tests.feature Require an explicit catalog creation action browser bestanden (Chromium)
WJ-049 work-tests.feature Reject a project belonging to a different customer service bestanden
WJ-050 work-tests.feature Archive and rename catalog entries without losing work service bestanden
WJ-051 work-tests.feature Detect conflicting work edits browser bestanden (Chromium)
WJ-052 work-tests.feature Require both customer and project service bestanden
WJ-053 work-tests.feature Edit a work date without exceeding the destination total service bestanden
WJ-054 work-tests.feature Delete work only after confirmation browser bestanden (Chromium)
WJ-055 work-tests.feature Restore an archived project service bestanden

| WJ-056 | habit-tests.feature | All four boundaries are advisory | service | bestanden | | WJ-057 | habit-tests.feature | Initial habits remain ordinary editable data | service | bestanden | | WJ-058 | ux-tests.feature | Preserve a second tab's work draft after saving the first | browser | bestanden (Chromium) | | WJ-059 | ux-tests.feature | Recover a work draft from a closed tab | browser | bestanden (Chromium) | | WJ-060 | push-tests.feature | Removing a day-off marker restores reminder eligibility | service | bestanden |

WJ-015 ist mit getrennten Geräten einschließlich Offline-Wiederverbindung im Browser ausgeführt; siehe browser-logout-all.md. Damit sind alle Identity-Gherkin-Szenarien angebunden und bestanden.

WJ-037 prüft die echte Offline-Seite und den weiterhin ungespeicherten Entwurf nach Wiederverbindung; siehe browser-offline.md.

WJ-036 prüft Backend-Stopp, öffentliche Wartungsseite und Entwurf nach Neustart an derselben Testdatenbank; siehe browser-deployment-draft.md. Alle UX-Gherkin-Szenarien sind damit angebunden und bestanden.

WJ-020 läuft als eigene Produktions-Gherkin-Stufe nach JVM- und Frontendtests vor der Release-Erstellung; siehe production-smoke-gherkin.md.

WJ-061 (work-tests.feature): exact Today-entry navigation, direct hour controls and distinct close/discard actions passed in Chromium and Firefox; see work-quick-actions.md.