Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y...

86
PhD. Federico Toledo [email protected] @fltoledo Ing. Matías Reina [email protected] @mellimatias TESTING Automatización y Performance Herramientas para optimizar tiempos y garantizar calidad.

Transcript of Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y...

Page 1: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

PhD. Federico Toledo

[email protected]

@fltoledo

Ing. Matías Reina

[email protected]

@mellimatias

TESTING

Automatización y PerformanceHerramientas para optimizar tiempos y

garantizar calidad.

Page 2: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Comprarían?

Page 3: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Calidad?

Page 4: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Es un proceso empírico, se basa en la

experimentación, en donde se le brinda

información sobre la calidad de un

producto o servicio a alguien que está

interesado en el mismo.

¿Qué es el testing?

Page 5: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué puede hacer el testing?

• Proveer información con la que reducir

riesgos.

– Un tester siempre debe ser escéptico y ilusiones sobre el software.

• Este proceso cognitivo proporcionará con la que se tomarán decisiones software.

Page 6: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

El testing es caro

Page 7: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Cómo optimizar el testing?

• Testing automático

• Testing de performance

• Testing basado en modelos

Page 8: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

TESTING AUTOMÁTICO

Page 9: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Discusión de “salados”

• “Test automation is simply an automatic way of doing what testers were doing before”– Steve Rowe (Tester at Microsoft)

• “Test automation means extending the reach of testers”– James Batch (Tester Consultant at Satisfice)

Page 10: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Definición

“La automatización del testing es testing

asistido por computadoras (computer-assisted

testing).”

–Cem Kaner

Page 11: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Automatización

• Adquirir tecnología para automatizar procesos manuales

• Mejora:

– calidad

– performance en la producción

– rendimiento de los recursos humanos

• Uso de cualquier herramienta, que apoye a

Page 12: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué se puede automatizar?

• La ejecución de las pruebas.

• La gestión de los incidentes.

• La gestión de los casos de prueba.

• La generación de datos de prueba.

• La combinación de datos de prueba.

• …

Page 13: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Combinación de datos

• Criterios:– Producto cartesiano

– Each use o 1-wise

– Pairwise

– N-wise

• Con los criterios de cobertura para valores intentamos conocer cuantitativamente el grado en que estamos utilizando los valores de prueba.

• ctweb.abstracta.com.uy

Page 14: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Registro de Casos de Prueba

• Típicamente en planillas de cálculo

– Formato tabular

– Registrando pasos, datos, resultados esperados

• Herramientas de gestión

Page 15: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Registro de Incidentes

• ¿Qué hago cuando encuentro un bug o una

oportunidad de mejora?

– ¿e-mail, teléfono, comunicación directa?

• Difícil seguimiento

• Cero trazabilidad

– Herramientas de gestión y seguimiento de incidentes

Page 16: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Automatizar ejecución de pruebas

Lograr que los casos de prueba sean ejecutados por

una máquina

Page 17: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

• Aumentar la cobertura de pruebas y calidad del

producto

• Reducir tiempos de ejecución y salida al mercado

• Ejecución en distintos ambientes

• El trabajo queda documentado en los scripts de

prueba

Beneficios

Page 18: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

• Los resultados quedan registrados y nos sirven

para tomar decisiones

• Detección temprana de errores

• Reducir el costo total de la aplicación

• Apoyo y motivación al equipo manual para pensar

en pruebas alternativas

Beneficios

Page 19: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Cómo automatizar?

• Se debe utilizar una herramienta

• Algunos conceptos importantes

– Record & Playback

– Data-Driven Testing

– Model-Based Testing

Page 20: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

• Distintas dimensiones para aprovechar:

Tiempo

Plataformas

Datos

¿Beneficios solo a largo plazo?

Page 21: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

• Automatizar el caos, solo traerá más caos más rápido.

• Las herramientas NO piensan.

– Lo bueno es que siempre ejecutan lo mismo.

– Lo malo es que siempre ejecutan lo mismo.

• Priorizar, seleccionar y diseñar las pruebas pensando en automatizarlas.

¡Cuidado!

Page 22: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Definir objetivo de pruebas

Ejemplos

1. Testing consistente y repetible

2. Correr casos de prueba desatendidos

3. Encontrar errores de regresión

8. Correr casos de prueba más seguido

9. Incrementar la cobertura

10.Probar en distintas plataformas

11.Reducir el costo del testing

Page 23: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Definir objetivo de pruebas

Ejemplos EQUIVOCADOS

1. Sustituir el testing manual

2. Automatizar el 100% de los casos

La automatización NO reemplaza al Testing Manual

– Agrega un tester virtual al equipo:

• Trabaja de noche,

• De forma desatendida,

• No piensa, hace y verifica lo que se le haya

pedido en el script

Page 24: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Desafío: Elegir la herramienta

correcta

Page 25: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué pasa en Mobile?

• Varias preguntas

– ¿Hay herramientas?

• Las hay y siguen los mismos conceptos

• También tenemos que decidir si automatizar a nivel de UI, API

o cómo

– ¿Probamos en emuladores o en dispositivos?

Page 26: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Emuladores o dispositivos?

Page 27: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Entonces, ¿qué dispositivos elijo?

• Entre 5 y 10 dispositivos.

• Selección basada en riesgo.

? ? ???

Page 28: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Ok, ya sé qué dispositivos elijo

¿Todos vamos a comprar un set?

Page 29: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.
Page 30: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Compartir:

OpenDeviceLab.com

Page 31: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Open Device Lab - Uruguay

@OpenDeviceLabUY

• Donaciones de particulares:

– 4 Android gama baja

– 1 Android gama alta

– 1 iPhone

– 1 FirefoxOS

– 1 Tablet Android

• Convenios con proveedores:

– Movistar - 23 dispositivos

– Intel

• Reservas y donaciones

[email protected]

Page 32: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

TESTING DE PERFORMANCE

Page 33: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Performance

• Computer performance is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.

• Requisito “no funcional” del sistema

Page 34: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Y si no hay performance,

¿qué pasa?

Page 35: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

El trabajo equivocado…

Page 36: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Las soluciones equivocadas

• ¡¡Más fierro!!

Page 37: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Si no hay performance?

Dependemos de los sistemas para trabajar

• Se pierde productividad

• Se pierden clientes

• Se pierden oportunidades de venta

Los sistemas son controlados por personas

• Mayor costo de soporte

La imagen de la empresa es el sistema que le da a sus usuarios

• Costos indirectos

• Pérdida de imagen y confianza

Page 38: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Acotaciones sobre Testing

• Controlar las expectativas

• Testing no es el responsable de la • Simplemente colabora en el objetivo

debería tener todo el equipo

• Con las pruebas de performance ocurre intentaremos colaborar a obtener un rendimiento, pero se logra sólo con la todos

Page 39: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Pruebas de performance

Cómo ayudamos:

– Simular situaciones de carga para conocer el desempeño del sistema

Para qué:

– Verificar si el sistema soporta la carga esperada

– Verificar si se cumplen acuerdos de nivel de servicio (SLA)

– Detectar errores u oportunidades de mejora, que solamente son observables

ante la concurrencia

– Detectar bottle-necks

Objetivo:

– Asegurar satisfacción de los usuarios

Page 40: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Cómo hacerlo?

Page 41: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Tipos de pruebas de performance

• Pruebas de carga (load test)

• Pruebas de estrés (stress test)

• Pruebas de resistencia (endurance test)

• Otras

– Pruebas de escalabilidad

– Pruebas de picos

Page 42: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Load test

Page 43: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Stress test

Page 44: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Endurance

Page 45: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Scalability

Page 46: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Software Load test

¿Cómo simulamos el uso real del sistema?

– Manualmente

– Usando herramientas

Page 47: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.
Page 48: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.
Page 49: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.
Page 50: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Ventajas

Manual Automático

Page 51: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Desventajas

Manual Automático

Page 52: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Costo vs Beneficio

• Costos

– Infraestructura dedicada a pruebas

– Horas-persona

• Testers

• Desarrolladores

• Analistas

• Expertos en infraestructuras

– Herramientas

Page 53: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Objetivo

• Apuntar siempre a mejorar la relación costo /

beneficio

• Si nos centramos sólo en mejorar la prueba, nos

costará muy cara, y los beneficios serán menos

redituables

• Incluso pueden llegar tan tarde, ¡que no nos sirva

para nada!

Page 54: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

EJECUCIÓN

• LÍNEA BASE

• EJECUCIÓN DE ESCENARIOS

• REPORTE DE RESULTADOS

IMPLEMENTACIÓN

• AUTOMATIZACIÓN

• MONITORIZACIÓN

DISEÑO•CASOS DE PRUEBA

•ESCENARIOS DE CARGA

•INFRAESTRUCTURA DE PRUEBAS

•INDICADORES DE PERFORMANCE

Page 55: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Diseño de pruebas

Definir objetivos del proyecto

Diseñar casos de prueba

Diseñar escenarios de carga

Criterios de aceptación

Determinar Infraestructura

Datos de prueba

Page 56: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Must read

• Scott Barber

– “User experience, not metrics”

– 13 capítulos dedicados a entender cómo simular la

realidad lo más fielmente posible

Page 57: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Servidor Web

ModellerModeller

Usuario Virtual

Http - RequestHttp - Responsegrabar

1

Se a

bre

1.1

Se abre

1.2

Acciones2

Terminar d

e grabar3

3.1

Tenemos el script

Gateway

(Proxy)Browser

Http - Request

Http - Response

Http - Request

Http - Response

Page 58: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Herramientas de

Generación de carga

• “La herramienta no hace al tester”

“Enterprise grade load generation tools are designed to look easy in to look easy in sales demos. Don’t be fooled.”

Scott Barber

Page 59: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Pasos para automatizar

1. Preparar guion detallado

2. Grabación inicial del script

3. Validaciones / captura de errores

4. Parametrización y correlación de variables

5. Ajustar comportamiento de usuarios– Think times

– Login section

6. Probar los scripts

Page 60: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué monitorizar?

• Hardware

• Software de base

• Herramientas para el test

– Generación de carga

– La misma monitorización

• ¡Toda la infraestructura!

Page 61: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Herramientas

• Las herramientas a usar depende de:– El sistema operativo

– La base de datos

– El servidor de aplicaciones

– Etc.

• Hay que conocer un poco de todo, y muchas veces

aprender en el momento

Page 62: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Ejecución – Plan de Pruebas

• BaseLine– Mejor tiempo posible

– Iterativo para tener datos estadísticos

• Escenario– Incremental

– Comenzar con un 20% de la carga

– Escalar hasta llegar al 100%

Servidor WebServidor Web

Servidor WebServidor Web

Page 63: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué buscamos?

• El objetivo de la ejecución en

gran parte es buscar los bottlenecks para mejorar el

mejorar el sistema

• Se pueden encontrar en

distintos niveles

Page 64: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué pasa en Mobile?

• Server side

– Más de lo mismo

– También son invocaciones http

– Las capturamos con Fiddler (proxy http)

– Las reproducimos con cualquier herramienta de pruebas

http

• Client side

– Más complejo, hay opciones pero menos

– Nosotros creamos nuestra propia herramienta

Page 65: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

www.monkop.com

Page 66: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

1. monkop.com

2. Subir APP

3. Ver reporte

Rápido y sin esfuerzo

Page 67: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

La magia

• Performance

• Seguridad

• Robustez

• Buenas prácticas

Page 68: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Oportunidades de mejora detectadas

Page 69: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Oportunidades de mejora detectadas

Page 70: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Oportunidades de mejora detectadas

Page 71: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

TESTING BASADO EN

MODELOS

Page 72: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

MBT – Model based testing

• Usar modelos para test

• Similar a nuestro proceso mental

• ¿Por qué modelos?

– Mayor grado de abstracción

• Mayor productividad

• Mayor legilibilidad

• No hay necesidad de manejar código

Page 73: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Framework Xtest

Xtest

GXtest ASPXtest BTtest …

Page 74: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Por qué Xtest?

• Alto nivel – más fácil de aprender

• Generación inicial de pruebas (OneClickStartup)

• Cross–platform (browsers, dispositivos)

• Adaptable (absorbe cambios)

• Reportes automáticos (doc, web)

Page 75: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Por qué Xtest?

• Record and playback

• Data driven testing

• Gestión centralizada, ejecución distribuida

• Pruebas de performance

• Comparador de ejecuciones

Page 76: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

ManagerRepositorio de pruebasAcceso WebAgenda de ejecuciones

TesterDiseñador de pruebas

Ejecución Distribuida

Componentes de Xtest

Page 77: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Framework Xtest

Xtest

GXtest ASPXtest BTtest …

Page 78: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Qué es ?

• Herramienta de testing específica para aplicaciones

Web GeneXus

Model-Based Testing

Record & Playback

Data-DrivenTesting

Page 79: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

¿Cómo se logra?

GXtest asocia Artefactos de Prueba a la KB

Casos de Prueba Ejecutables

Capa de Adaptación

Casos de Prueba

Page 80: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Ejemplo

• Transacción

Clientes

• Herramientas

tradicionales:

• GXtest:

Page 81: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Casos de Prueba

DatapoolsComandos

Page 82: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Casos de Prueba

Decisiones

Page 83: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Manager

Page 84: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.
Page 85: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.
Page 86: Abstracta-CDA - TESTING: Automatización y Performance - Herramientas para optimizar tiempos y garantizar calidad.

Introducción a las

Pruebas de Sistemas

de Información

http://blog.abstracta.com.uy/