Testing en Aplicacions Mòbils
El món del mòbil té regles diferents del web. El mercat està dividit en dues grans plataformes amb arquitectures molt diferents.
Les dues grans plataformes
Android (Google)
Arquitectura oberta. Domina ~80% del mercat global. Es desenvolupa amb Android Studio usant Java o Kotlin.
iOS (Apple)
Ecosistema privat i molt tancat. Es desenvolupa amb Xcode usant Objective-C o Swift.
L'Entorn: Android Studio i l'Emulador
Per programar o provar coses en Android, necessitem l'entorn oficial: Android Studio.
Emulador Virtual
Obre una finestra al teu ordinador amb una pantalla de mòbil tàctil simulada. Funciona com un mòbil físic sense necessitat d'endollar el telèfon real.
Logcat
Panell integrat a Android Studio per llegir els missatges interns d'error del sistema del telèfon en temps real.
L'Anatomia del disseny i el Testing
Les aplicacions mòbils no tenen pàgines HTML, tenen
Activities (finestres úniques de la interfície d'usuari). Aquestes pantalles
s'estructuren amb fitxers XML on definim la posició dels botons (amb
ConstraintLayout per adaptar-se a tauletes i mòbils de mides diverses).
android:id (ex: @+id/boto_login). El robot de testing el buscarà
per fer clic simulant el dit humà.
Appium: El "Selenium" dels mòbils
Així com fem servir Selenium pels navegadors, per a mòbils fem servir Appium.
L'Arquitectura Client-Servidor d'Appium (3 parts)
Client
El nostre script en Python. Diu: "fes clic al botó X".
Servidor Appium
Programa en NodeJS. Recull el "clic" de Python i el tradueix al llenguatge natiu del mòbil.
Dispositiu
Emulador (o mòbil real). Rep la instrucció i executa l'acció mecànica del clic.
Escrivint el primer test d'Appium
Abans que l'script pugui obrir el mòbil, cal definir quin mòbil hem d'atacar. Això es fa creant un diccionari Python anomenat Capabilities:
capabilities = {
"platformName": "Android",
"deviceName": "emulator",
"appPackage": "com.nom.aplicacio" # El "DNI" intern de l'app
}
Un cop connectats, Appium buscarà elements usant el seu
android:id o mitjançant arbres de cerca anomenats XPATH (per
exemple, cercar el text "Bateria" al menú de configuració de l'Android) i automatitzem
seqüències per validar que l'aplicació navega correctament.