Las técnicas de monkey testing generalmente implican la ejecución de estímulos aleatorios sobre un sistema bajo pruebas con el único propósito de buscar situaciones de crash. Usar este tipo de técnicas es bastante barato, y además es posible conseguir información de valor sobre aspectos de calidad en forma temprana.
Típicamente, las herramientas existentes que usan estas técnicas son capaces de proveer información relacionada a robustez, mostrando la secuencia de pasoso ejecutada y los datos de entrada, y tal vez como información adicional el log del sistema. Es bastante complicado para el desarrollador o el tester el encontrar la causa raíz, o reducir la cantidad de pasos necesarios para reproducir las situaciones de error detectadas.
Implementar este tipo de herramientas no es trivial, más si consideramos que las aplicaciones móviles y el testing de las mismas es algo que tiene muy pocos años de desarrollo.
Aquí compartimos nuestra experiencia de implementar una plataforma opensource para pruebas de aplicaciones móviles usando monkey testing, buscando facilitar el uso y maximizar el beneficio de la información a obtener. Esto incluye desde la automatización de la exploración de un producto, la identificación automática de errores y hasta la obtención de métricas útiles para un desarrollador, y que le sirvan para detectar oportunidades de mejora y reducir así el riesgo de la liberación al mercado.
Hemos enfrentado diferentes problemas y desafíos, y así identificamos una serie de beneficios y desventajas de usar estas técnicas para este tipo de plataforma en particular que queremos compartir con la audiencia.
4. Errores de la FIFA
12 y 13 de noviembre de 2014 Valencia, España 4
5. Necesita mejoras
No está optimizada
Lenta
Se cae (crash)
Consume mucha red de datos
No es estable
Errores de la FIFA
12 y 13 de noviembre de 2014 Valencia, España 5
6. El approach que proponemos: Monkey Testing
Rápido y sin esfuerzo
1. www.monkop.com
2. Seleccionar la aplicación (APK)
3. Recibir reporte por e-mail
12 y 13 de noviembre de 2014 Valencia, España 6
7. Mientras el mono ejecuta…
Se capturan métricas, se observa el
comportamiento de la aplicación
• Performance
• Seguridad
• Robustez
• Buenas prácticas
12 y 13 de noviembre de 2014 Valencia, España 7
8. Explorando la app de FIFA
12 y 13 de noviembre de 2014 Valencia, España 8
9. Explorando otras aplicaciones
Encuentro GeneXus Marca Fotocasa La Liga VivaVideo
12 y 13 de noviembre de 2014 Valencia, España 9
15. ¿Puedo usar Emuladores?
Dispositivo (Red de datos)
Dispositivo (Wi-Fi + Simulador de red)
White paper from tcs.com: Mobile application testing
12 y 13 de noviembre de 2014 Valencia, España 15
Emuladores
17. Emuladores – Ventajas
• Reducir costos
12 y 13 de noviembre de 2014 Valencia, España 17
18. Emuladores – Desventajas
No son reales.
No se prueba la verdadera sensación del usuario al dispositivo.
No se puede medir la performance real del dispositivo.
No cuenta con implementaciones del fabricante
(tienen la implementación oficial de Android).
No cuenta con sensores reales.
No tienen plan de datos.
…
12 y 13 de noviembre de 2014 Valencia, España 18
19. Ok, probamos en dispositivos
Monkey: ¡En todos los que pueda!
oEl tiempo es finito
o¿Cómo seleccionar los dispositivos?
12 y 13 de noviembre de 2014 Valencia, España 19
20. Entonces, ¿qué dispositivos elijo?
Entre 5 y 10 dispositivos.
? ? ? ?
?
Selección basada en riesgo.
12 y 13 de noviembre de 2014 Valencia, España 20
21. Testing basado en Riesgo
12 y 13 de noviembre de 2014 Valencia, España 21
Los
dispositivos
más
usados.
22. Testing basado en Riesgo
12 y 13 de noviembre de 2014 Valencia, España 22
Menos
recursos.
Los que no
hemos
probado.
Dispositivos
más nuevos.
23. Selección de los dispositivos
¿Smartphones o tablets? ¿O ambos?
¿Variedad de tamaños de pantalla?
¿Se cuenta con al menos un gama
baja y un gama alta?
12 y 13 de noviembre de 2014 Valencia, España 23
24. Selección de los dispositivos más usados
12 y 13 de noviembre de 2014 Valencia, España 24
25. Diversidad en Android
Estadísticas iniciales proporcionadas por Android.
ohttp://developer.android.com/about/dashboards/index.html
12 y 13 de noviembre de 2014 Valencia, España 25
26. Diversidad iOS
Septiembre de 2014: 95% en
la versión anterior o superior
- 49% en iOS 7
- 46% en iOS 8
12 y 13 de noviembre de 2014 Valencia, España 26
28. Google Analytics – por SO
12 y 13 de noviembre de 2014 Valencia, España 28
29. Google Analytics – por dispositivo
¡Ojo con esto!
• ¿No será que estos son los dispositivos más
comunes porque no funcionan en el resto?
12 y 13 de noviembre de 2014 Valencia, España 29
30. Ok, ya sé qué dispositivos elijo
¿Todos vamos a comprar un set?
12 y 13 de noviembre de 2014 Valencia, España 30
31. 12 y 13 de noviembre de 2014 Valencia, España 31
37. ¿Qué métricas aportan valor?
CPU
oDificultades para obtener estos datos.
Batería
o¿Cómo calcular este costo?
Memoria
oMe ayuda a determinar en qué móviles funcionará mi app.
Datos
oImportante para cuando no tengo Wi-fi.
Más...
12 y 13 de noviembre de 2014 Valencia, España 37
38. ¿Cuándo reporto error?
Crash y excepciones.
12 y 13 de noviembre de 2014 Valencia, España 38
40. ¿Cuándo reporto error?
¿Cómo establecer los umbrales aceptables?
oGuidelines de Android / Google.
Cantidad de activities
Cantidad de controles
Render time
Etc.
12 y 13 de noviembre de 2014 Valencia, España 40
44. ¿Cuándo reporto error?
¿Cómo establecer los umbrales aceptables?
oAnálisis propio:
CPU, importante que no se generen mesetas.
Datos: depende del tipo de aplicación.
Memoria: umbrales a definir por dispositivo y por versión del sistema
operativo.
12 y 13 de noviembre de 2014 Valencia, España 44
47. ¿Cómo comunicamos esta información?
Necesidad de cuidar lo que decimos
Necesidad de cuidar cómo lo decimos
12 y 13 de noviembre de 2014 Valencia, España 47
48. Cuidado con lo que decimos
¿Qué pasa si no logra explorar mucho?
o¿Qué veredicto damos?
En ningún caso se está libre de errores.
Todos sabemos que si damos un veredicto y este está
mal, se perderá la confianza en el tester.
El desafío está en dar resultados confiables.
12 y 13 de noviembre de 2014 Valencia, España 48
49. Cuidado cómo lo decimos
Evaluación a través
de emociones.
oOportunidad
oPeligro
oPrecaución
12 y 13 de noviembre de 2014 Valencia, España 49
51. PhD. Federico Toledo
COO – Abstracta (Uruguay)
Doctor en Informática por la UCLM, en España. Ingeniero en Computación en
la Universidad de la República en Uruguay. Autor del libro “Introducción a las
Pruebas de Sistemas de Información”, publicado en abril de 2014. Cuenta con
más de 9 años de experiencia en el área de testing. Desde el año 2008 es uno
de los cofundadores de la empresa Abstracta, dedicada a brindar servicios y
productos de pruebas y aseguramiento de calidad.
Datos de Contacto
Federico.Toledo@abstracta.com.uy
@fltoledo
@abstractaQA
www.abstracta.com.uy
www.monkop.com
12 y 13 de noviembre de 2014 Valencia, España 51
Notas del editor
Estoy muy contento de estar acá de nuevo. El año pasado tuve el placer de participar con charla y en la mesa redonda en este evento, pero en ese entonces vivía por España. En marzo terminé el doctorado y me volví a Uruguay, donde me reintegré a tiempo completo en la empresa que formamos por el 2008, apuntando a temas de calidad y testing.
Hoy estamos con un nuevo desafío que es el de desarrollar una plataforma para probar aplicaciones móviles, usando estrategias monkey testing.
Hoy les quiero contar algunas cosas que hemos ido aprendiendo de esta experiencia en desarrollar aplicaciones de monkey testing.
Para comenzar a hablerles del tema quiero presentarles primero al personaje principal, a Monkop (es este mono, haciendo referencia a monkey testing)
Y además quiero hablarles de los errores de la fifa en el mundial que disfrutamos, o no tanto, este año que pasó.
Y con errores de la fifa no me refiero a estos errores, ni sus sanciones, sino a otro tipo de errores
Sino que a los errores que presentaba la aplicación del mundial de Brasil.
Se trataba de una aplicación que permitía ver las estadísticas de los partidos en tiempo real, un monton de información muy bien presentada, muy linda, PERO…
nos fijamos en el market y todos esos problemas estaban causando dolores de cabeza a los usuarios y por eso rankeaban negativamente
impacto? la app de la fifa es linda, da info útil, pero anda mal
A quien no le pasa que se le cierra una app y no entienden porque?- Porque empresas grandes e importantes tienen apps con muy malas reviews
Con nuestra herramienta de monkey testing pudimos anticipar todos los problemas que generó tantos usuarios insatisfechos.
Como les comenté, utilizamos una estrategia de monkey testing. Supongo que todos aquí saben qué es monkey testing, pero por las dudas el concepto importante es que sea un test rápido y con bajo esfuerzo. En nuestro caso el usuario lo único que debe hacer es ir a una página, subir la aplicación y esperar el reporte….
Esto es como darle la app a un mono,
BÁSICAMENTE lo que hace es instalar la app en distintos dispositivos y explorarla en forma aleatorea, como si fuera un mono con un celular,
Mientras ejecuta va tomando datos de cómo se va desempeñando el cellular, con respect a performance, seguridad, robustez, y si se siguen o no algunas buenas practicas definidas por google y por Android.
Luego genera un reporte con toda esa información que se la da al desarrollador, Y NO SOLO CON PROBLEMAS, SINO CON INFO PARA SOLUCIONARLOS
Lo que estamos apuntando a hacer es un mono inteligente, que reconozca elementos en las pantallas y pueda hacer clic en los botones, poner datos en los campos, si ve un video lo intenta reproducir, si ve un menú intenta ir recorriendo cada elemento del menú y así. Incluso es capaz de jugar juegos y pasar niveles. Ese es el diferencial de nuestro mono, la inteligencia.
acá están los top de españa para android
http://www.appannie.com/apps/google-play/top/spain/overall/
Qué obtenemos de resultado? Un reporte que nos da primero un resumen de oportunidades de mejora detectadas. Incluye el video de la grabación, para conocer qué llegó a explorar el mono, y luego podemos ir viendo tanto detalle como se quiera.
Por ejemplo viendo el comportamiento de cada métrica observada, acá vemos la memoria, también se puede ver el GC, el tráfico de red, CPU, hilos, consumo de batería, etc. Y asociar cada cosa que se ve anómala en estas gráficas con el momento preciso del video, y ver qué hizo el mono que generó ese comportamiento.
emuladores:
Ideal para etapa de desarrollo, demos de funcionalidades, etc.
Primeras pruebas, o para pruebas básicas
Dispositivos con wi-fi:
Ideal para funcionalidades estables.
Pruebas en distintos dispositivos.
Pruebas de experiencia de usuario.
Usando simuladores de red se puede probar qué pasaría con una red de datos, pero sin gastos.
Dispositivo + red de datos
Recomendado sólo para un pequeño conjunto de pruebas que apuntan a aspectos dependientes del operador de telefonía, cambios de red, etc.
Reduce costos de dispositivos:
Hoy:
Pudiendo probar en cualquier tipo de dispositivo.
No requieren mantenimiento.
No se caen al piso, no se rompen.
Mañana:
Cuando cambien los modelos de celulares, simplemente se carga otra imagen de celular al emulador sin tener que cambiar los dispositivos.
Si pruebo en mi celular, luego tenemos el clásico problema de “en mi máquina anda” lo vamos a sustituir por “en mi celular anda”
Variedad de
Sistemas operativos
Versiones
En Android variedad por fabricante
Es fácil actualizar el SO, y el usuario espera que sus apps sigan funcionando igual
Por ahí se cuenta que el número de dispositivos a probar es entre 5 y 10
¿Cuál es la versión más antigua que la aplicación debe soportar?
Cuál es la última?
Cuál es la que viene en el dispositivo más popular?
Armin compartió por twitter esta información actualizada
Las estadísticas sirven para el inicio cuando no sabemos nada de nuestros usuarios.
Entonces: Necesito entre 5 y 10 dispositivos.
Costo no despreciable:
Inversión inicial.
Mantenimiento.
Los subutilizamos.
¿Alternativas?
Contar que nosotros propusimos esto como una solución regional, animar a la gente a que lo haga en sus ciudades, colaborando entre las distintas empresas.
¿Deberían las universidades promover este tipo de espacios?
(si es youtube, el user estará de acuerdo en consumir más datos para ver videos).
(si es youtube, el user estará de acuerdo en consumir más datos para ver videos).
(si es youtube, el user estará de acuerdo en consumir más datos para ver videos).
Qué herramientas hay que usan esta técnica
Qué beneficio tiene
Cuándo tiene sentido usar monkey testing y cuándo no
Todos sabemos que el testing exahustivo es imposible
Dicen que miles de monos escribiendo en forma infinita pueden redactar todas las novelas de Shakespeare… pero no tenemos infinito tiempo
Necesitamos un mono inteligente, sino no nos sirve