# 🧐 [QA Specialist] — Zwischenstand & Roadmap > **Stand:** 3. April 2026 > **Rolle:** Test-Strategie, Edge-Cases, Integrationstests, Regressionssicherung --- ## ✅ Erledigte Sprints ### Sprint A — Abgeschlossen - [x] **A-1** | Test-Strategie fĂŒr Desktop-App definiert - [x] Testpyramide fĂŒr Compose Desktop festgelegt (Unit / Integration / UI-Tests) - [x] Tooling entschieden: `kotlin.test`, Compose UI Test, Mockk - [x] Test-Konventionen dokumentiert (Namensschema, Ordnerstruktur, Arrange-Act-Assert) - [x] `IdempotencyPluginTest` stabilisiert (Unit-Test GRÜN) - [x] `OetoValidatorsTest.kt` als Basis fĂŒr Grenzfall-Abdeckung etabliert --- ## 🟡 Sprint B — Teilweise offen - [ ] **B-1** | Test-Suite: Navigation & Back-Stack (V2/V3) - [ ] Navigations-Flows fĂŒr alle Screens (vorwĂ€rts + zurĂŒck) - [ ] Back-Stack-Verhalten nach ZurĂŒck-Navigation (korrekter Zustand) - [ ] SingleTop-Tabs: kein doppelter Stack-Eintrag bei Tab-Wechsel - [ ] Logout poppt MainShell komplett (keine Screens im Back-Stack) - [x] **B-2** | Test-Suite: Onboarding-Wizard Edge-Cases ✅ *3. April 2026* - [x] Leere Pflichtfelder → Speichern-Button bleibt deaktiviert - [x] Schnelles Doppelklick auf „Weiter" / „Speichern" → kein doppelter Submit - [x] Abbrechen mitten im Wizard → kein inkonsistenter Zustand - [x] ZurĂŒck-Navigation: GerĂ€tename und SicherheitsschlĂŒssel bleiben erhalten (`rememberSaveable`) - **Fix:** `remember` → `rememberSaveable` in `OnboardingScreen.kt` - **Neu:** `OnboardingValidator`-Objekt extrahiert fĂŒr isolierte Unit-Tests - **Tests:** `OnboardingValidatorTest.kt` (17 Tests, alle GRÜN) - [ ] UngĂŒltige OEPS-Nummer → Fehlermeldung sichtbar, Submit gesperrt *(offen: abhĂ€ngig von C-3)* - [x] **B-3** | Test-Suite: Abteilungs-Logik ✅ *3. April 2026* - [x] CSN-C-NEU ≀95cm: Pflicht-Teilung `ohne Lizenz` / `mit Lizenz` wird vorgeschlagen - [x] CSN-C-NEU ≄100cm: Pflicht-Teilung `R1` / `R2+` wird vorgeschlagen - [x] `ORGANISATORISCH`: Gesamtrangliste korrekt zusammengefĂŒhrt - [x] `SEPARATE_SIEGEREHRUNG`: Abteilungen werden nicht zusammengefĂŒhrt - [x] Caprilli-Regression abgesichert (LIZENZFREI → Abt. 1, R1 → Abt. 2) - [x] GrenzfĂ€lle 90 cm und 110 cm abgedeckt - **Neu:** `ORGANISATORISCH` + `SEPARATE_SIEGEREHRUNG` in `AbteilungsTeilungsTypE` ergĂ€nzt - **Fix:** CSN-C-NEU-Logik in `AbteilungsRegelService.kt` implementiert - **Tests:** `AbteilungsRegelServiceTest.kt` (14 neue Tests, alle GRÜN) - [ ] **B-4** | Test-Suite: ViewModel-Verhalten - [ ] State-Initialisierung korrekt (Loading-State beim Start) - [ ] Intent → State-Transition fĂŒr alle Sealed-Class-Intents - [ ] Fehler-State bei simuliertem Backend-Fehler korrekt gesetzt - [ ] Loading-State wĂ€hrend asynchroner Operationen (nicht flackern) --- ## 🟠 Sprint C — PrioritĂ€t 2 (nĂ€chste Woche) - [ ] **C-1** | Test-Suite: Mandanten-Isolation (nach Backend A-1) - [ ] Veranstaltung A kann keine Daten von Veranstaltung B lesen - [ ] Veranstaltung A kann keine Daten in Veranstaltung B schreiben - [ ] Kassa-Zugriff nur innerhalb derselben Veranstaltung möglich - [ ] Basis: Backend E2E-Isolationstest re-enablen (aktuell `@Disabled`) - [ ] **C-2** | Test-Suite: Kassa und Zahlvorgang - [ ] Teilnehmer an 2 Turnieren → 1 Zahlvorgang → 2 korrekte separate Rechnungen - [ ] Saldo-Berechnung korrekt (Summe aus beiden Turnier-Kassas) - [ ] Bereits bezahlte BetrĂ€ge werden nicht doppelt verrechnet - [ ] **C-3** | Test-Suite: ÖTO-Validierung (nach Rulebook C-1) - [ ] OEPS-Nummer: GĂŒltige und ungĂŒltige Formate testen - [ ] FEI-ID: GĂŒltige und ungĂŒltige Formate testen - [ ] Lizenzklasse × Bewerbs-Klasse: Alle erlaubten und verbotenen Kombinationen - [ ] Altersklasse Pferd × Bewerb: GrenzfĂ€lle (genau im Grenzjahr, Stichtag) - [ ] **C-4** | Regressions-Test-Suite & CI-Integration - [ ] Kritische User-Flows als automatisierte Tests abdecken - [ ] Tests in CI/CD-Pipeline integrieren (gemeinsam mit 🐧 DevOps) - [ ] `IdempotencyApiIntegrationTest` re-enablen (Port-Binding/Server-Lifecycle-Fix) --- ## 📌 AbhĂ€ngigkeiten | Warte auf | Von wem | Betrifft | |------------------------------------|---------------|-----------------------------| | Backend A-1 Rollout + E2E-Test-Fix | đŸ‘· Backend | C-1 Isolations-Tests | | Rulebook C-1 AltersklasseRechner | 📜 Rulebook | C-3 Validierungs-Tests | | Backend B-2 Kassa-Service | đŸ‘· Backend | C-2 Kassa-Tests | | DevOps CI/CD Pipeline | 🐧 DevOps C-1 | C-4 Regressions-Integration | --- ## 💡 Empfehlungen (nach PrioritĂ€t) 1. **B-2 Onboarding-Tests** — ZurĂŒck-Navigation mit `rememberSaveable` zeigte frĂŒher Inkonsistenzen; Regressionssicherung ist dringend. 2. **B-3 Abteilungs-Tests** — Die CSN-C-NEU Pflicht-Teilungslogik ist fachlich kritisch; GrenzfĂ€lle aus `OetoValidatorsTest.kt` direkt wiederverwenden. 3. **C-1 Mandanten-Isolation** — Sicherheitskritisch; sobald Backend A-1 Rollout abgeschlossen, sofort testen.