abstracta-cda - testing: automatización y performance - herramientas para optimizar tiempos y...

Post on 07-Jul-2015

226 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PhD. Federico Toledo

federico.toledo@abstracta.com.uy

@fltoledo

Ing. Matías Reina

matias.reina@abstracta.com.uy

@mellimatias

TESTING

Automatización y PerformanceHerramientas para optimizar tiempos y

garantizar calidad.

¿Comprarían?

¿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?

¿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.

El testing es caro

¿Cómo optimizar el testing?

• Testing automático

• Testing de performance

• Testing basado en modelos

TESTING AUTOMÁTICO

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)

Definición

“La automatización del testing es testing

asistido por computadoras (computer-assisted

testing).”

–Cem Kaner

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

¿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.

• …

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

Registro de Casos de Prueba

• Típicamente en planillas de cálculo

– Formato tabular

– Registrando pasos, datos, resultados esperados

• Herramientas de gestión

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

Automatizar ejecución de pruebas

Lograr que los casos de prueba sean ejecutados por

una máquina

• 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

• 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

¿Cómo automatizar?

• Se debe utilizar una herramienta

• Algunos conceptos importantes

– Record & Playback

– Data-Driven Testing

– Model-Based Testing

• Distintas dimensiones para aprovechar:

Tiempo

Plataformas

Datos

¿Beneficios solo a largo plazo?

• 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!

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

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

Desafío: Elegir la herramienta

correcta

¿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?

¿Emuladores o dispositivos?

Entonces, ¿qué dispositivos elijo?

• Entre 5 y 10 dispositivos.

• Selección basada en riesgo.

? ? ???

Ok, ya sé qué dispositivos elijo

¿Todos vamos a comprar un set?

Compartir:

OpenDeviceLab.com

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

ODL@abstracta.com.uy

TESTING DE PERFORMANCE

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

Y si no hay performance,

¿qué pasa?

El trabajo equivocado…

Las soluciones equivocadas

• ¡¡Más fierro!!

¿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

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

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

¿Cómo hacerlo?

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

Load test

Stress test

Endurance

Scalability

Software Load test

¿Cómo simulamos el uso real del sistema?

– Manualmente

– Usando herramientas

Ventajas

Manual Automático

Desventajas

Manual Automático

Costo vs Beneficio

• Costos

– Infraestructura dedicada a pruebas

– Horas-persona

• Testers

• Desarrolladores

• Analistas

• Expertos en infraestructuras

– Herramientas

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!

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

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

Must read

• Scott Barber

– “User experience, not metrics”

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

realidad lo más fielmente posible

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

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

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

¿Qué monitorizar?

• Hardware

• Software de base

• Herramientas para el test

– Generación de carga

– La misma monitorización

• ¡Toda la infraestructura!

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

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

¿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

¿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

www.monkop.com

1. monkop.com

2. Subir APP

3. Ver reporte

Rápido y sin esfuerzo

La magia

• Performance

• Seguridad

• Robustez

• Buenas prácticas

Oportunidades de mejora detectadas

Oportunidades de mejora detectadas

Oportunidades de mejora detectadas

TESTING BASADO EN

MODELOS

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

Framework Xtest

Xtest

GXtest ASPXtest BTtest …

¿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)

¿Por qué Xtest?

• Record and playback

• Data driven testing

• Gestión centralizada, ejecución distribuida

• Pruebas de performance

• Comparador de ejecuciones

ManagerRepositorio de pruebasAcceso WebAgenda de ejecuciones

TesterDiseñador de pruebas

Ejecución Distribuida

Componentes de Xtest

Framework Xtest

Xtest

GXtest ASPXtest BTtest …

¿Qué es ?

• Herramienta de testing específica para aplicaciones

Web GeneXus

Model-Based Testing

Record & Playback

Data-DrivenTesting

¿Cómo se logra?

GXtest asocia Artefactos de Prueba a la KB

Casos de Prueba Ejecutables

Capa de Adaptación

Casos de Prueba

Ejemplo

• Transacción

Clientes

• Herramientas

tradicionales:

• GXtest:

Casos de Prueba

DatapoolsComandos

Casos de Prueba

Decisiones

Manager

Introducción a las

Pruebas de Sistemas

de Información

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

top related