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