74 lines
3.1 KiB
Markdown
74 lines
3.1 KiB
Markdown
# 🧐 [QA Specialist] — Zwischenstand & Roadmap
|
|
|
|
> **Stand:** 12. 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 — Abgeschlossen
|
|
|
|
- [x] **B-1** | Test-Suite: Navigation & Back-Stack (V2/V3)
|
|
- [x] Navigations-Flows für alle Screens (vorwärts + zurück)
|
|
- [x] Back-Stack-Verhalten nach Zurück-Navigation (korrekter Zustand)
|
|
- [x] SingleTop-Tabs: kein doppelter Stack-Eintrag bei Tab-Wechsel
|
|
- [x] Logout poppt MainShell komplett (keine Screens im Back-Stack)
|
|
|
|
- [x] **B-2** | Test-Suite: Onboarding-Wizard Edge-Cases
|
|
- [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`)
|
|
- [x] OnboardingValidator-Tests (GRÜN)
|
|
|
|
- [x] **B-3** | Test-Suite: Abteilungs-Logik
|
|
- [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] AbteilungsRegelServiceTest.kt (GRÜN)
|
|
|
|
- [x] **B-4** | Test-Suite: ViewModel-Verhalten
|
|
- [x] State-Initialisierung korrekt (Loading-State beim Start)
|
|
- [x] Intent → State-Transition für alle Sealed-Class-Intents
|
|
- [x] Fehler-State bei simuliertem Backend-Fehler korrekt gesetzt
|
|
|
|
---
|
|
|
|
## 🟠 Sprint C — In Arbeit
|
|
|
|
- [ ] **C-1** | Test-Suite: Mandanten-Isolation (nach Backend A-1)
|
|
- [ ] Veranstaltung A kann keine Daten von Veranstaltung B lesen
|
|
- [ ] Basis: Backend E2E-Isolationstest re-enablen (aktuell `@Disabled`)
|
|
|
|
- [x] **C-2** | Test-Suite: Ergebniserfassung & Platzierung (Phase 11)
|
|
- [x] Validierung der Platzierungs-Logik (ÖTO-konform)
|
|
- [x] PDF-Export Test (Ergebnislisten)
|
|
- [x] `ErgebnisRepository` Integrationstests
|
|
|
|
- [ ] **C-3** | Test-Suite: Kassa und Zahlvorgang (Phase 12)
|
|
- [ ] 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
|
|
|
|
---
|
|
|
|
## 📌 Abhängigkeiten
|
|
|
|
| Warte auf | Von wem | Betrifft |
|
|
|--------------------------|-------------|------------------------|
|
|
| Backend B-2 Kassa-Service| 👷 Backend | C-3 Kassa-Tests |
|
|
| DevOps CI/CD Pipeline | 🐧 DevOps | CI-Integration |
|