Testen nativer Android Apps
Statische Code-Analyse
In Android Studio gibt es eingebaute Tools für die statische Code-Analyse, z. B. Lint-Checks, die potenzielle Probleme im Code erkennen können. Diese können mit Code → Inspect Code… ausgeführt werden.
Zusätzlich gibt es Tools für die statische Analyse von Android-/Kotlin-Code, z. B. Detekt oder Ktlint .
Unit-Tests für Funktionen
In Kotlin werden Unit-Tests in der Regel mit JUnit geschrieben:
Es gibt auch moderne Test-Frameworks wie Kotest , die zusätzliche Funktionalitäten bieten.
Tests für UI-Komponenten
Ähnlich wie bei React Native können auch in nativen Android-Apps UI-Komponententests geschrieben werden, siehe z. B. UI-Testing für Compose in den Android-Docs: https://developer.android.com/develop/ui/compose/testing
End-to-End-Tests mit Maestro
Allgemeine Informationen und Installation siehe Tests mit React Native.
Maestro nutzen
Test-Skript z. B. in app/src/androidTest/assets/maestro/first-flow.yaml:
appId: com.example.todosandroid2025
---
- launchApp:
clearState: true
- tapOn: "Neues Todo erstellen"
- assertVisible: "Neues Todo"
- inputText: "Check out Maestro!"
- tapOn: "Hinzufügen"
- assertVisible: "Check out Maestro!"appId ist die applicationId der Android-App, die im Gradle-Skript
in app definiert wird.
Ausführen mit maestro test app/src/androidTest/assets/maestro/first-flow.yaml.
Im Emulator kann beobachtet werden, wie der UI-Test durchgeführt wird.
Alternativen zu Maestro
Appium (https://appium.io ) ist ebenfalls ein etabliertes und umfangreiches Open Source Testframework für End-to-End-Tests.
Android hat verschiedene eigene Ansätze (Espresso, UI-Automator, u.a.), siehe https://developer.android.com/training/testing .
Nützliche Links zu Lernressourcen
- Überblick zu Testarten in der Android-Dokumentation: https://developer.android.com/training/testing