Files
yourpart3/android/TESTING.md
Torsten Schulz (local) 1ab9407e79
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
Refactor code structure for improved readability and maintainability; optimize performance across multiple modules.
2026-07-21 09:08:15 +02:00

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: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.