4. ¿Qué es el testing?
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.
5. ¿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.
9. 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)
10. Definición
“La automatización del testing es testing
asistido por computadoras (computer-assisted
testing).”
–Cem Kaner
11. 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
12. ¿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.
• …
13. 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
14. Registro de Casos de Prueba
• Típicamente en planillas de cálculo
– Formato tabular
– Registrando pasos, datos, resultados esperados
• Herramientas de gestión
15. 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
17. Beneficios
• 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
18. 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
19. ¿Cómo automatizar?
• Se debe utilizar una herramienta
• Algunos conceptos importantes
– Record & Playback
– Data-Driven Testing
– Model-Based Testing
20. ¿Beneficios solo a largo plazo?
• Distintas dimensiones para aprovechar:
Plataformas
Tiempo
Datos
21. ¡Cuidado!
• 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.
22. 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
23. 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
25. ¿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?
33. 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
37. ¿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
38. 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
39. 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
41. 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
52. Costo vs Beneficio
• Costos
– Infraestructura dedicada a pruebas
– Horas-persona
• Testers
• Desarrolladores
• Analistas
• Expertos en infraestructuras
– Herramientas
53. 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!
54. EJECUCIÓN
IMPLEMENTACIÓN
• LÍNEA BASE
• EJECUCIÓN DE ESCENARIOS
• REPORTE DE RESULTADOS
• AUTOMATIZACIÓN
• MONITORIZACIÓN
DISEÑO
•CASOS DE PRUEBA
•ESCENARIOS DE CARGA
•INFRAESTRUCTURA DE PRUEBAS
•INDICADORES DE PERFORMANCE
55. 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
56. Must read
• Scott Barber
– “User experience, not metrics”
– 13 capítulos dedicados a entender cómo simular la
realidad lo más fielmente posible
57. Servidor Web
Usuario Virtual
Mooddeelllleerr
Http - Request
Http - Response
1
grabar
Se abre
1.1
Se abre
1.2
Terminar de grabar3
Acciones
2
3.1
Tenemos el script
Gateway
(Proxy)
Browser
Http - Request
Http - Response
Http - Request
Http - Response
58. 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
59. 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
60. ¿Qué monitorizar?
• Hardware
• Software de base
• Herramientas para el test
– Generación de carga
– La misma monitorización
• ¡Toda la infraestructura!
61. 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
62. 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 Web
Servidor Web
63. ¿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
64. ¿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
72. 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
74. ¿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)
75. ¿Por qué Xtest?
• Record and playback
• Data driven testing
• Gestión centralizada, ejecución distribuida
• Pruebas de performance
• Comparador de ejecuciones
76. Componentes de Xtest
Manager
Repositorio de pruebas
Acceso Web
Agenda de ejecuciones
Tester
Diseñador de
pruebas
Ejecución
Distribuida