2.6 KiB
2.6 KiB
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:connectedLocalDebugAndroidTestausgefuehrt. Der CI-Workflow.github/workflows/android-tests.ymlfuehrt 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
- Backend und Daemon starten, mit einem Testkonto anmelden und Socket.IO-Verbindung prüfen.
- Backend stoppen: Offline-Banner, verständlicher Fehler und keine blockierte Navigation prüfen.
- Backend wieder starten: Screen aktualisieren und Realtime-Verbindung erneut prüfen.
- App im Hintergrund beenden und über Launcher oder Push erneut öffnen: verschlüsselte Sitzung, Deep-Link-Fortsetzung und Realtime-Reconnect prüfen.
- Für Socket.IO-Regressionen wird ein isolierter Node-Testserver mit den Ereignissen
friendloginchanged,falukantUpdateStatus,familychangedundreloadmenuverwendet. Der Android-Test verbindet sich mit dessen URL statt mit Production.