3. ¿Quién soy?
• Head of QA
• Más de 5 años de experiencia en testing en empresas como
• Profesor en el grado de Ingeniería en Desarrollo de
Contenidos Digitales
• Co-organizador de #MADQA
7. Hace un par de años, tuve un proyecto en el que
me pidieron que automatizara pruebas para
una aplicación móvil multiplataforma…
8. Por multiplataforma era: HTML, iOS y Android.
Por supuesto cada una de las versiones las había
hecho una empresa diferente usando un
lenguaje diferente
(o eso me decían porque yo no veía el código ni el repositorio)
9. Si no hubiera sido una persona perezosa
hubiera tenido que hacer muchas cosas:
22. Calabash enables you to write and execute
automated acceptance tests of mobile apps.
Calabash is cross-platform, supporting Android
and iOS native apps.
28. ANDROID
Comprueba que tienes una variable de entorno ANDROID_HOME
$> echo $ANDROID_HOME
(Si no lo tenemos, exportarlo dentro de ~/.bahsrc o ~/.bash_profile)
$> export ANDROID_HOME=path/to/sdk
Más info: https://github.com/calabash/calabash-‐android
IOS
Instala la última versión de Xcode
Instala las Command Line Tools (http://osxdaily.com/2014/02/12/install-
command-line-tools-mac-os-x/)
Más info: https://github.com/calabash/calabash-‐ios
29.
30. Vamos a jugar un poco con un código de
prueba:
https://github.com/calabash/x-‐platform-‐example
31. Donde dejaremos nuestras features
El código específico para Android
El código específico para iOS
La definición de los steps
El código de soporte
32. ¿Cómo funciona Cucumber?
1º Carga todo lo que está en /support
2º Carga todo lo que está en /feature/
steps_definition
(Salvo que le digas otra cosa)
33. Cuando añadimos más código de simple de un
directorio features y un directorio
step_definition debemos de indicarle a
Cucumber cómo tiene que cargarlo
47. Appium is an open source test automation
framework for use with native, hybrid and mobile
web apps.
It drives iOS and Android apps using the
WebDriver protocol.
52. Instala el cliente de Appium:
$> npm install -‐g appium
o descárgate el cliente para escritorio:
http://appium.io/downloads.html
Instala las gemas necesarias
$> sudo gem install appium_lib
53.
54. Vamos a jugar un poco con un código de
prueba:
https://github.com/appium/sample-‐code
55. El archivo de configuración
La configuración específica
para Appium
La definición de los steps
El código de soporte
56. ¿Cómo funciona Appium?
1º Utiliza la misma configuración que vimos para
Calabash
2º Emplea un fichero appium.txt que sirve como
configuración
69. ¿Cómo debería de ser?
Definir los elementos de una página de manera
eficiente.
• ¿Cómo se accede a ellos? ¿Tienen siempre
ids? ¿Son iguales para las dos plataformas?
Haz a la página agnóstica de la plataforma:
• Si la aplicación no es igual para iOS que para
Android tendrás que empezar a añadir
código que luego tendrás que mantener
70. Buenas prácticas:
• Todos los elementos tendrían que ser accesibles de la misma
forma (ids, class, path…)
• Si no quieres complicar el código:
1. Scenarios independientemente de la tecnología
2. Steps lo más sencillos posibles
3. Pages claramente separadas en elementos y acciones
• Si quieres hacer Cross-Platform pon los “ids” de los
elementos en algún lugar que sea fácil de identificar si son
Android o iOS y que sean agnósticas de la implementación
de la page