46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
# Native Android Testmatrix
|
|
|
|
## Automatisiert
|
|
|
|
| Bereich | Testart | Ausführung |
|
|
| --- | --- | --- |
|
|
| Auth, Settings, HTTP-Fehler, Header, Daemon-Parser | JVM + MockWebServer | `./gradlew :app:testLocalDebugUnitTest` |
|
|
| Room-Migration und verschlüsselte Session nach Store-Neuerzeugung | Instrumentation | `./gradlew :app:connectedLocalDebugAndroidTest` |
|
|
| Login, Navigation, Home und Vokabel-Lektion | Compose Instrumentation | `./gradlew :app:connectedLocalDebugAndroidTest` |
|
|
| Realtime | JVM-Parser plus manueller Socket.IO-Testserver-Plan | siehe unten |
|
|
|
|
### Lokaler Ausfuehrungsstatus
|
|
|
|
- Die JVM-Suite (`:app:testLocalDebugUnitTest`) ist erfolgreich ausgefuehrt.
|
|
- Die Instrumentation-Suite inklusive Room- und Compose-Tests kompiliert erfolgreich.
|
|
- Die Ausfuehrung auf diesem Host ist blockiert: Es ist kein ADB-Geraet verbunden und die
|
|
x86_64-Emulatoren benoetigen KVM-Hardwarebeschleunigung, die hier nicht verfuegbar ist.
|
|
Das vorhandene ARM64-System-Image kann auf einem x86_64-Host nicht emuliert werden.
|
|
- Auf einem Host mit KVM oder einem verbundenen Geraet wird die Suite mit
|
|
`./gradlew :app:connectedLocalDebugAndroidTest` ausgefuehrt. Der CI-Workflow
|
|
`.github/workflows/android-tests.yml` fuehrt dieselbe Suite auf einem GitHub-Emulator aus.
|
|
|
|
## Emulator- und Geräte-Matrix
|
|
|
|
| Ziel | Pflichtfälle |
|
|
| --- | --- |
|
|
| Kleines Phone, API 34+ | Login, Navigation, Formular, Tastatur, Adult-Screenshotschutz |
|
|
| Großes Phone, API 34+ | Galerie, Falukant und Vokabel-Lektion |
|
|
| Tablet, API 34+ | Drawer, Landscape und Listenbreiten |
|
|
| Reales Android-Gerät, aktuelle API | Push-Berechtigung, OAuth Custom Tab, App Links, Kamera/Dateiauswahl |
|
|
|
|
Die Gradle Managed Devices `mediumPhone` und `mediumTablet` decken die CI-Basis ab. Das lokale
|
|
Team ergänzt für jeden Release-Lauf die installierten kleinen/großen Emulatoren und mindestens
|
|
ein reales Gerät.
|
|
|
|
## Netzwerk, Realtime und Lifecycle
|
|
|
|
1. Backend und Daemon starten, mit einem Testkonto anmelden und Socket.IO-Verbindung prüfen.
|
|
2. Backend stoppen: Offline-Banner, verständlicher Fehler und keine blockierte Navigation prüfen.
|
|
3. Backend wieder starten: Screen aktualisieren und Realtime-Verbindung erneut prüfen.
|
|
4. App im Hintergrund beenden und über Launcher oder Push erneut öffnen: verschlüsselte Sitzung,
|
|
Deep-Link-Fortsetzung und Realtime-Reconnect prüfen.
|
|
5. Für Socket.IO-Regressionen wird ein isolierter Node-Testserver mit den Ereignissen
|
|
`friendloginchanged`, `falukantUpdateStatus`, `familychanged` und `reloadmenu` verwendet.
|
|
Der Android-Test verbindet sich mit dessen URL statt mit Production.
|