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.
Mobile testing, ¿cómo enfrentar los nuevos desafíos?Abstracta
El testing de aplicaciones mobile es uno de los grandes desafíos que se presenta hoy en día por la diversidad de dispositivos y configuraciones existentes. Asegurar que la aplicación funcione en todos los dispositivos, que sea rápida cuando la utilizan muchas personas y que sea segura, son las inquietudes e incertidumbres que nos atacan.
¿Qué necesitamos saber? ¿En qué herramientas nos podemos apoyar? ¿Qué hay de nuevo con respecto al testing de los sistemas que venimos probando? ¿Qué pasa con la usabilidad, cómo la probamos? Estas y otras preguntas son las que estaremos abordando en esta charla, compartiendo nuestras experiencias e investigación al respecto.
Esta charla fue expuesta por Federico Toledo de Abstracta (www.abstracta.com.uy) y Guillermo Skrilec de GeneXus Consulting (www.genexusconsulting.com) en el marco del Encuentro Internacional GeneXus 2014 #GX24
Build and test all, lo nuevo de GXtest para DesarrolladoresAbstracta
Presentamos la nueva versión de GXtest, que ayudará al desarrollador en las pruebas que realiza a diario, para optimizar su tiempo y la calidad de sus implementaciones, de forma fácil, gratuita y sin salir de GeneXus. Además, mostraremos algunas nuevas herramientas para seguir potenciando a los testers, cómo realizar pruebas funcionales sobre aplicaciones para Smart Devices, y cómo generar pruebas de performance.
Durante el proceso de desarrollo, continuamente estamos probando lo que implementamos, una y otra vez. Aunque sabemos cuáles son los flujos y juegos de datos más importantes para probar, el repetirlo en forma manual es sumamente tedioso y muchas veces imposible de hacer a conciencia debido a limitaciones de tiempo y otros recursos.
¿No sería bueno...
- que las pruebas se generasen automáticamente a través de un “botón derecho -> Test”?
- que las pruebas se ejecutasen automáticamente mientras pensamos lo próximo que debemos implementar?
- que pudiésemos guardar esas pruebas en nuestra KB, editarlas y mejorarlas, y no tener que repensar todo cada vez?
- que pudiésemos hacer todo esto desde GeneXus y sin instalar otros programas?
Los superpoderes de la interfaz. Cómo el diseño convierte al usuario en Super...Abstracta
Un gran poder conlleva una gran responsabilidad. La interfaz es la cara visible, el punto de acceso, la presentación y la imagen no solo de la aplicación, sino de la empresa que la hizo. Eso es un gran poder, y a su vez tiene una gran responsabilidad.
A su vez, le estamos dando al usuario ese poder, y éste puede ser feliz o puede frustrarse y pasar al lado oscuro.
Está de moda hablar de usabilidad, de que hay que hacer sitios y sistemas y aplicaciones usables, pero ¿cómo lo hacemos?
En esta charla veremos de forma general qué es el diseño, viéndolo como el dominio de la interfaz, para luego ver paradigmas del diseño, aplicado a UI de sistemas. Todo esto lo veremos aplicado a un sistema real para poder ver cómo aplicamos cada uno de los paradigmas que comentaremos, y así a través de ese concepto mostrar buenas y malas prácticas en el diseño de interfaz, a través de ejemplos conocidos, haciendo la charla más dinámica y simpática, llevándola al producto final, contando con usuarios felices y con superpoderes.
Esta charla fue expuesta en marco del Encuentro Internacional GeneXus en 2014, #GX24
Oradores
Federico Toledo (www.abstracta.com.uy)
Sebastián Martínez (www.sintropia.com.uy)
El punto principal transmitido en la charla fue: Al hacer aplicaciones el foco tiene que estar en el usuario, por más que haya otros problemas a resolver. Al usuario no le importa que haya un servidor conectado con no sé qué, que hace no sé qué algoritmo. El usuario está interesado por la tarea que debe hacer y la interaccion con la herramienta realizarlo debe ser lo más cómoda posible.
A modo de validación de la idea, presentamos Monkop (monkop.com), a la cual le estamos poniendo foco en el diseño desde sus inicios. Monkop es una herramienta/servicio que permite mejorar la calidad de las aplicaciones móviles a cero esfuerzo. Se sube un APK (aplicación móvil para instalar) a la página, y con técnicas de monkey testing logra explorarla y capturar métricas de performance, seguridad, robustez, verifica que se sigan las buenas prácticas, etc. Así genera un reporte que envía al usuario interesado, con oportunidades de mejora detectadas.
2 horas de workshop para analizar los problemas fundamentales que atraviezan desarrolladores y testers en los smart devices. Desafíos, foco, checklist y herramientas.
Mobile testing, ¿cómo enfrentar los nuevos desafíos?Abstracta
El testing de aplicaciones mobile es uno de los grandes desafíos que se presenta hoy en día por la diversidad de dispositivos y configuraciones existentes. Asegurar que la aplicación funcione en todos los dispositivos, que sea rápida cuando la utilizan muchas personas y que sea segura, son las inquietudes e incertidumbres que nos atacan.
¿Qué necesitamos saber? ¿En qué herramientas nos podemos apoyar? ¿Qué hay de nuevo con respecto al testing de los sistemas que venimos probando? ¿Qué pasa con la usabilidad, cómo la probamos? Estas y otras preguntas son las que estaremos abordando en esta charla, compartiendo nuestras experiencias e investigación al respecto.
Esta charla fue expuesta por Federico Toledo de Abstracta (www.abstracta.com.uy) y Guillermo Skrilec de GeneXus Consulting (www.genexusconsulting.com) en el marco del Encuentro Internacional GeneXus 2014 #GX24
Build and test all, lo nuevo de GXtest para DesarrolladoresAbstracta
Presentamos la nueva versión de GXtest, que ayudará al desarrollador en las pruebas que realiza a diario, para optimizar su tiempo y la calidad de sus implementaciones, de forma fácil, gratuita y sin salir de GeneXus. Además, mostraremos algunas nuevas herramientas para seguir potenciando a los testers, cómo realizar pruebas funcionales sobre aplicaciones para Smart Devices, y cómo generar pruebas de performance.
Durante el proceso de desarrollo, continuamente estamos probando lo que implementamos, una y otra vez. Aunque sabemos cuáles son los flujos y juegos de datos más importantes para probar, el repetirlo en forma manual es sumamente tedioso y muchas veces imposible de hacer a conciencia debido a limitaciones de tiempo y otros recursos.
¿No sería bueno...
- que las pruebas se generasen automáticamente a través de un “botón derecho -> Test”?
- que las pruebas se ejecutasen automáticamente mientras pensamos lo próximo que debemos implementar?
- que pudiésemos guardar esas pruebas en nuestra KB, editarlas y mejorarlas, y no tener que repensar todo cada vez?
- que pudiésemos hacer todo esto desde GeneXus y sin instalar otros programas?
Los superpoderes de la interfaz. Cómo el diseño convierte al usuario en Super...Abstracta
Un gran poder conlleva una gran responsabilidad. La interfaz es la cara visible, el punto de acceso, la presentación y la imagen no solo de la aplicación, sino de la empresa que la hizo. Eso es un gran poder, y a su vez tiene una gran responsabilidad.
A su vez, le estamos dando al usuario ese poder, y éste puede ser feliz o puede frustrarse y pasar al lado oscuro.
Está de moda hablar de usabilidad, de que hay que hacer sitios y sistemas y aplicaciones usables, pero ¿cómo lo hacemos?
En esta charla veremos de forma general qué es el diseño, viéndolo como el dominio de la interfaz, para luego ver paradigmas del diseño, aplicado a UI de sistemas. Todo esto lo veremos aplicado a un sistema real para poder ver cómo aplicamos cada uno de los paradigmas que comentaremos, y así a través de ese concepto mostrar buenas y malas prácticas en el diseño de interfaz, a través de ejemplos conocidos, haciendo la charla más dinámica y simpática, llevándola al producto final, contando con usuarios felices y con superpoderes.
Esta charla fue expuesta en marco del Encuentro Internacional GeneXus en 2014, #GX24
Oradores
Federico Toledo (www.abstracta.com.uy)
Sebastián Martínez (www.sintropia.com.uy)
El punto principal transmitido en la charla fue: Al hacer aplicaciones el foco tiene que estar en el usuario, por más que haya otros problemas a resolver. Al usuario no le importa que haya un servidor conectado con no sé qué, que hace no sé qué algoritmo. El usuario está interesado por la tarea que debe hacer y la interaccion con la herramienta realizarlo debe ser lo más cómoda posible.
A modo de validación de la idea, presentamos Monkop (monkop.com), a la cual le estamos poniendo foco en el diseño desde sus inicios. Monkop es una herramienta/servicio que permite mejorar la calidad de las aplicaciones móviles a cero esfuerzo. Se sube un APK (aplicación móvil para instalar) a la página, y con técnicas de monkey testing logra explorarla y capturar métricas de performance, seguridad, robustez, verifica que se sigan las buenas prácticas, etc. Así genera un reporte que envía al usuario interesado, con oportunidades de mejora detectadas.
2 horas de workshop para analizar los problemas fundamentales que atraviezan desarrolladores y testers en los smart devices. Desafíos, foco, checklist y herramientas.
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Federico Toledo
Charla sobre testing de performance y testing automatizado, centrado en las herramientas que nos permiten realizar estas tareas, pero sin dejar de lado la importancia de la metodología para aprovechar el máximo provecho que se le pueden sacar a estas herramientas.
Esto fue en el marco del evento organizado por CDA-Perú, en el que se presentó la alianza estratégica entre CDA y Abstracta, a través de la cual se ofrecen servicios especializados de testing automatizado y performance a empresas de Perú.
Jornada de Calidad 2015 (Universidad ORT, Buenos Aires, Argentina) - Mobile t...Federico Toledo
El testing de aplicaciones mobile es uno de los grandes desafíos que se presenta hoy en día por la diversidad de dispositivos y configuraciones existentes. Asegurar que la aplicación funcione en todos los dispositivos, que sea rápida cuando la utilizan muchas personas y que sea segura, son las inquietudes e incertidumbres que nos atacan.
¿Qué necesitamos saber? ¿En qué herramientas nos podemos apoyar? ¿Qué hay de nuevo con respecto al testing de los sistemas que venimos probando? ¿Qué pasa con la usabilidad, cómo la probamos? Estas y otras preguntas son las que estaremos abordando en esta charla, compartiendo nuestras experiencias e investigación al respecto.
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
Introducción a distintos aspectos de calidad y testing de software, enfocando en ciertos puntos desarrollados en Abstracta:
- testing automatizado (Selenium, GXtest, JUnit)
- generación de pruebas con model driven approaches usando UML, UTP, ATL (model to model) y Acceleo (Model to Text)
- smart monkey testing (Monkop - monkop.com) para probar automáticamente aplicaciones Android
- pruebas de performance con OpenSTA
De esta forma mostramos cómo estamos volcando la empresa a la investigación en la industria, investigación en la academia, desarrollo de productos y servicios de alto valor agregado.
NetConfUy 2016 - Cómo asegurar la performance de aplicaciones móviles tanto e...Federico Toledo
Esta charla luego la llamamos "Apps que vuelan" :)
Junto a Fabián Baptista en NetConfUy 2016 - http://netconf.uy/
La performance de aplicaciones mobile es uno de los grandes desafíos que se presenta hoy en día por la diversidad de dispositivos y configuraciones existentes, más ahora que con Xamarin es tan fácil tener nuestras aplicaciones portables. Debemos asegurar que la aplicación funcione en forma eficiente en todas sus versiones (Windows, iOS, Android) en diversos dispositivos, así como del lado del servidor cuando la utilizan muchas personas. Para esto ¿qué necesitamos saber? ¿En qué herramientas nos podemos apoyar? ¿Qué ofrece Microsoft de nuevo para esto? Estas y otras preguntas son las que estaremos abordando en esta charla, compartiendo nuestras experiencias e investigación al respecto.
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
Esta fue una charla dada en la Universidad ORT en el año 2014. Los temas tratados fueron varios, relacionados a la industria y a la academia.
Agenda:
- Test execution automation
- Test design automation
- Monkop (mobile testing, performance and security)
- Performance testing
Testing. La otra cara de la moneda: el desarrollador. Presentación para las jornadas del VLCTesting en Valencia, el 14 de noviembre de 2013. Esta presentación abrió las jornadas sobre testeo y calidad del software.
Explica la visión del equipo de desarrollo respecto a la incorporación del equipo de test en el proyecto.
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...Abstracta
http://www.vlctesting.es/
Es importante que los usuarios confíen en el software que desarrollamos, y no hay mejor camino que probándolo. Para probar software siempre se habla de que el testing automatizado es un camino para acelerar, ser más eficiente, reducir costos, reducir riesgos, aumentar productividad, aumentar la motivación del equipo, etc. Pero ¿todo eso es realmente cierto? En nuestra experiencia podemos decir que no siempre es completamente cierto. Si no enfocamos bien nuestros esfuerzos no lograremos cumplir con esas promesas. Entonces, ¿cómo hacemos testing automatizado en forma efectiva y eficiente? ¿Cómo hacemos que valga la pena? ¿Cómo lo hacemos para obtener el máximo beneficio? ¿No siempre es beneficioso automatizar pruebas? ¿Cómo decido cuándo sí y cuándo no?
Testear efectiva y eficientemente es un gran desafío, que siempre nos lleva a querer ver cómo mejorar la productividad en la búsqueda de la calidad. En esta charla veremos algunas buenas prácticas, lecciones aprendidas, consejos y observaciones que hemos tomado nota en nuestra experiencia dando servicios de pruebas, viendo así cómo enfocar nuestros esfuerzos para tener éxito en nuestras pruebas, haciendo reales, o lo más reales posible, esos beneficios que siempre nos prometen del testing automatizado. También compartiremos los problemas más comunes con los que nos enfrentamos a menudo, y las alternativas que hemos encontrado para solventarlos. Compartiremos la experiencia de proyectos en distintos dominios de aplicación (sector financiero, logística, venta y distribución, etc.), contextos y plataformas, con diversos clientes. Intentaremos mostrar cuándo creemos que sí es factible y beneficioso automatizar, y cuándo rotundamente no.
Encuesta elaborada por AIMC sobre el comportamiento de los internautas durante el año 2013.
Se analiza desde qué dispositivos acceden los usuarios, su comportamiento y frecuencia con la que acceden a internet.
Estudio sobre el software libre en los hogares españoles. 2011CENATIC
El objetivo fundamental de estudio, realizado a partir de los datos de una encuesta en la que han participado más de 3.000 internautas, ha sido conocer conocer el nivel de uso y la valoración del software libre por parte de los internautas españoles.
El “Estudio sobre software libre en los hogares españoles” ha sido elaborado con el apoyo técnico del Instituto Nacional de Tecnologías de la Comunicación (INTECO) a través del Observatorio de la Seguridad de la Información.
Evento CDA Abstracta - Perú 2015 - Testing de performance y testing automátic...Federico Toledo
Charla sobre testing de performance y testing automatizado, centrado en las herramientas que nos permiten realizar estas tareas, pero sin dejar de lado la importancia de la metodología para aprovechar el máximo provecho que se le pueden sacar a estas herramientas.
Esto fue en el marco del evento organizado por CDA-Perú, en el que se presentó la alianza estratégica entre CDA y Abstracta, a través de la cual se ofrecen servicios especializados de testing automatizado y performance a empresas de Perú.
Jornada de Calidad 2015 (Universidad ORT, Buenos Aires, Argentina) - Mobile t...Federico Toledo
El testing de aplicaciones mobile es uno de los grandes desafíos que se presenta hoy en día por la diversidad de dispositivos y configuraciones existentes. Asegurar que la aplicación funcione en todos los dispositivos, que sea rápida cuando la utilizan muchas personas y que sea segura, son las inquietudes e incertidumbres que nos atacan.
¿Qué necesitamos saber? ¿En qué herramientas nos podemos apoyar? ¿Qué hay de nuevo con respecto al testing de los sistemas que venimos probando? ¿Qué pasa con la usabilidad, cómo la probamos? Estas y otras preguntas son las que estaremos abordando en esta charla, compartiendo nuestras experiencias e investigación al respecto.
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
Introducción a distintos aspectos de calidad y testing de software, enfocando en ciertos puntos desarrollados en Abstracta:
- testing automatizado (Selenium, GXtest, JUnit)
- generación de pruebas con model driven approaches usando UML, UTP, ATL (model to model) y Acceleo (Model to Text)
- smart monkey testing (Monkop - monkop.com) para probar automáticamente aplicaciones Android
- pruebas de performance con OpenSTA
De esta forma mostramos cómo estamos volcando la empresa a la investigación en la industria, investigación en la academia, desarrollo de productos y servicios de alto valor agregado.
NetConfUy 2016 - Cómo asegurar la performance de aplicaciones móviles tanto e...Federico Toledo
Esta charla luego la llamamos "Apps que vuelan" :)
Junto a Fabián Baptista en NetConfUy 2016 - http://netconf.uy/
La performance de aplicaciones mobile es uno de los grandes desafíos que se presenta hoy en día por la diversidad de dispositivos y configuraciones existentes, más ahora que con Xamarin es tan fácil tener nuestras aplicaciones portables. Debemos asegurar que la aplicación funcione en forma eficiente en todas sus versiones (Windows, iOS, Android) en diversos dispositivos, así como del lado del servidor cuando la utilizan muchas personas. Para esto ¿qué necesitamos saber? ¿En qué herramientas nos podemos apoyar? ¿Qué ofrece Microsoft de nuevo para esto? Estas y otras preguntas son las que estaremos abordando en esta charla, compartiendo nuestras experiencias e investigación al respecto.
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
Esta fue una charla dada en la Universidad ORT en el año 2014. Los temas tratados fueron varios, relacionados a la industria y a la academia.
Agenda:
- Test execution automation
- Test design automation
- Monkop (mobile testing, performance and security)
- Performance testing
Testing. La otra cara de la moneda: el desarrollador. Presentación para las jornadas del VLCTesting en Valencia, el 14 de noviembre de 2013. Esta presentación abrió las jornadas sobre testeo y calidad del software.
Explica la visión del equipo de desarrollo respecto a la incorporación del equipo de test en el proyecto.
VLCtesting 2013 - Comprobando y refutando las promesas del testing automatiza...Abstracta
http://www.vlctesting.es/
Es importante que los usuarios confíen en el software que desarrollamos, y no hay mejor camino que probándolo. Para probar software siempre se habla de que el testing automatizado es un camino para acelerar, ser más eficiente, reducir costos, reducir riesgos, aumentar productividad, aumentar la motivación del equipo, etc. Pero ¿todo eso es realmente cierto? En nuestra experiencia podemos decir que no siempre es completamente cierto. Si no enfocamos bien nuestros esfuerzos no lograremos cumplir con esas promesas. Entonces, ¿cómo hacemos testing automatizado en forma efectiva y eficiente? ¿Cómo hacemos que valga la pena? ¿Cómo lo hacemos para obtener el máximo beneficio? ¿No siempre es beneficioso automatizar pruebas? ¿Cómo decido cuándo sí y cuándo no?
Testear efectiva y eficientemente es un gran desafío, que siempre nos lleva a querer ver cómo mejorar la productividad en la búsqueda de la calidad. En esta charla veremos algunas buenas prácticas, lecciones aprendidas, consejos y observaciones que hemos tomado nota en nuestra experiencia dando servicios de pruebas, viendo así cómo enfocar nuestros esfuerzos para tener éxito en nuestras pruebas, haciendo reales, o lo más reales posible, esos beneficios que siempre nos prometen del testing automatizado. También compartiremos los problemas más comunes con los que nos enfrentamos a menudo, y las alternativas que hemos encontrado para solventarlos. Compartiremos la experiencia de proyectos en distintos dominios de aplicación (sector financiero, logística, venta y distribución, etc.), contextos y plataformas, con diversos clientes. Intentaremos mostrar cuándo creemos que sí es factible y beneficioso automatizar, y cuándo rotundamente no.
Encuesta elaborada por AIMC sobre el comportamiento de los internautas durante el año 2013.
Se analiza desde qué dispositivos acceden los usuarios, su comportamiento y frecuencia con la que acceden a internet.
Estudio sobre el software libre en los hogares españoles. 2011CENATIC
El objetivo fundamental de estudio, realizado a partir de los datos de una encuesta en la que han participado más de 3.000 internautas, ha sido conocer conocer el nivel de uso y la valoración del software libre por parte de los internautas españoles.
El “Estudio sobre software libre en los hogares españoles” ha sido elaborado con el apoyo técnico del Instituto Nacional de Tecnologías de la Comunicación (INTECO) a través del Observatorio de la Seguridad de la Información.
¿Por qué automatizar? y ¿por qué con GXtest?Abstracta
Sumemos controles de calidad a nuestros sistemas, con menos riesgos y costos, automatizando con GXtest, sin necesidad de contratar habilidades especiales para el equipo.
El objetivo de esta conferencia es exponer y demostrar con claridad las ventajas de automatizar con GXtest, derribando algunas afirmaciones típicas asociadas a la automatización:
“La automatización es costosa”
“Pierdo mucho tiempo”
“Necesito habilidades en programación”
“Es muy alta la curva de aprendizaje”
Además, podremos visualizar cuándo es conveniente y por qué automatizar pruebas funcionales de aplicaciones GeneXus con GXtest, sin exigir conocimientos de programación a los testers y sin largas capacitaciones; obteniendo beneficios adicionales en el proceso, como ser la generación de documentación de los casos de prueba o los scripts para pruebas de performance; tareas que insumen mucho tiempo al realizarlas manualmente.
Esta charla fue expuesta por Gonzalo Brun y Matías Reina en el marco del Encuentro Internacional de GeneXus 2014, #GX24
Herramientas de testing para aplicaciones GeneXusAbstracta
En el mundo GeneXus se sabe bien que una herramienta puede mejorar la productividad en el desarrollo. Sucede lo mismo con el testing de aplicaciones, pero seguramente todos piensan en pruebas automatizadas cuando hablamos de herramientas de testing, pero en realidad hay mucho más!
En esta charla les queremos contar de varias herramientas que nos han sido de utilidad para diversas tareas de gestión, documentación, generación de datos, registro de ideas de testing, ejecución de pruebas, entre otras.
Charla expuesta por Andrés Curcio y Matías Reina de Abstracta, en el marco del Encuentro Internacional de GeneXus 2014, #GX24
Mantenimiento y mejora continua de la performance de las aplicacionesAbstracta
¿Cómo se puede garantizar que la performance de los sistemas no empeore con el transcurso del tiempo? Si un sistema hoy responde rápidamente, ¿eso garantiza que seguirá siendo así en el futuro?
De la misma forma que los sistemas, sus funcionalidades, el hardware, drivers, y sistemas operativos que les dan soporte van cambiando, también lo hace la carga sobre el sistema. La carga, entendida como la cantidad de usuarios que accede al sistema, la forma en que los usuarios ejecutan las funcionalidades, y el volumen de datos que debe ser procesado por las solicitudes del negocio son todos ejemplos de elementos que van cambiando durante la vida de una aplicación informática.
A medida que el contexto va cambiando, el sistema debe adaptarse para mantener la calidad de la performance en las respuestas a sus usuarios.
Luego que un sistema es puesto en producción comienza la etapa de mantenimiento. Para que el mantenimiento sea menor, se pueden realizar pruebas funcionales y no funcionales, con el objetivo de anticiparse a situaciones que ocurrirán en producción. La etapa de mantenimiento se caracteriza por ser tan larga cómo la vida del sistema. En esta etapa es donde ocurren todas esas situaciones inesperadas y todos los cambios en el ambiente a los que debemos adaptarnos.
Es importante entonces mantener una permanente monitorización sobre los componentes del sistema con el objetivo de detectar problemas rápidamente y adaptar lo que sea necesario para solucionarlos.
Monitorización y revisión de los tiempos de respuesta en los access logs de los servidores web y servidores de aplicaciones. Uso de los recursos (CPU, memoria, acceso a disco). Crecimiento de las tablas en la base de datos. Estos son algunos pocos ejemplos de indicadores que pueden ser monitorizados para conocer el sistema e identificar problemas.
En esta charla veremos metodología, buenas prácticas, herramientas útiles y ejemplos para mantener y mejorar la performance durante la vida de los sistemas informáticos.
Esta charla fue expuesta por Simon de Uvarow en el marco del Encuentro Internacional GeneXus 2014, #GX24
GX23 - ¿Por qué correr cuando puedes testear?Abstracta
¿Su organización está dispuesta a pagar el costo de una aplicación que no funciona? Correr ese riesgo ya no es una opción. El testing debe ser considerado en todos los proyectos de desarrollo desde la concepción de los mismos.
GX23 - GXtest 2.0: Automatización de pruebas para la nueva generación de apl...Abstracta
Hoy en día una aplicación de calidad debe ser correcta funcionalmente, performante, y segura. Eso es lo que espera un usuario, y nada menos que eso. Veremos en esta conferencia la versión 2.0 de GXtest, con la que automatizaremos pruebas sobre aplicaciones web y móviles, que cubran los aspectos funcionales, de performance, y de seguridad. Mostraremos cómo GXtest aumenta sensiblemente la productividad del equipo, lo cual conduce a una reducción de los costos, incrementando además su calidad, y controlando los riesgos de las puestas en producción.
Generación de pruebas de performance a partir de pruebas funcionales para sis...Abstracta
Las pruebas de rendimiento consisten en simular carga en el sistema bajo pruebas para analizar el desempeño de la infraestructura durante la ejecución de la prueba, pudiendo encontrar cuellos de botella y oportunidades de mejora. Para la simulación se utilizan herramientas específicas, en las que se debe automatizar las acciones que generarán esa carga, esto es: las interacciones entre el usuario y el servidor. Para poder simular muchos usuarios con poca infraestructura de pruebas, se automatizan las interacciones a nivel de protocolo (en scripts), lo cual hace que la automatización sea más compleja (en cuanto al trabajo necesario para su preparación) que la automatización de pruebas funcionales, que se realiza a nivel de interfaz gráfica. Generalmente la tarea de automatización consume entre el 30% y el 50% del esfuerzo de un proyecto de pruebas de rendimiento. En este artículo presentamos la herramienta desarrollada para seguir un nuevo enfoque para generar scripts para pruebas de rendimiento a partir de scripts de pruebas funcionales. La herramienta implementada ya ha sido puesta en funcionamiento en proyectos reales, de los cuales se muestran los principales resultados que reflejan mayor flexibilidad y menor costo de automatización.
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