PhD. Federico Toledo
@fltoledo
Ing. Matías Reina
@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
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/