Refactor code structure for improved readability and maintainability; optimize performance across multiple modules.
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
This commit is contained in:
45
android/TESTING.md
Normal file
45
android/TESTING.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user