© SQS, S.A. 2012
SQS Software Quality Systems
Claves de la automatización de
pruebas de software
Jaime Paniagua
Madrid, 26 de Septiembre 2012
Índice
1. Introducción al Proceso de Automatización
2.
Fases en el Proceso de Automatización
3.
Claves de la Automatización de Pruebas
4.
Conclusiones
© SQS, S.A. 2012
COMPONENTES Nº EJEMPLOS
Plataforma HW 1 INTEL
SS.OO 5 Windows XP, Vista, CE, 7, 8
Clientes Front-End 8 IE7, IE8, IE9, Firefox 14, Firefox 15, Chrome 3.9, Chrome 3.10, Chrome 3.11
Procesos Negocio 5 Login, Búsqueda, Entrada Pedido, Confirmación, Rellenar Pedido
Data Sets 15 Usuarios existentes, no existentes, contraseñas, cadenas de búsqueda, etc
Nº TOTAL DE TESTS 1x5x8x5x15 = 3.000 posibles escenarios
A mano? ¡¡¡f#@#!!!
Introducción al Proceso de Automatización
Un Ejercicio de Imaginación
Calidad
Costes
Tiempo
Introducción al Proceso de Automatización Objetivos en Conflicto
© SQS, S.A. 2012
¿Qué es la Automatización de Pruebas?
El uso de
herramientas o técnicas
que permiten realizarCUALQUIER actividad
de pruebade forma
automática.
Introducción al Proceso de Automatización Automatización
Input data
Database Software
Introducción al Proceso de Automatización Ejemplo: Configuración del entorno
© SQS, S.A. 2012
Ejecución
Resultado
Introducción al Proceso de Automatización Ejemplo: Ejecución
Resultado Diferente
El entorno de prueba ha de ser reseteado antes de repetir el test para asegurar resultados limpios.
Introducción al Proceso de Automatización Ejemplo: Ejecución manual de la misma prueba
© SQS, S.A. 2012
Input data
Diferente
Database
Introducción al Proceso de Automatización Ejemplo: Repetición de prueba con datos diferentes
Resultado Inesperado
BD y software también han de ser reseteados!!!
Introducción al Proceso de Automatización Ejemplo: Repetición de prueba con datos diferentes
© SQS, S.A. 2012
Introducción al Proceso de Automatización Ejemplo: Preparación correcta de Prueba
Así, sí aseguramos la
repetibilidad
Introducción al Proceso de Automatización Ejemplo: … y ahora con datos diferentes
© SQS, S.A. 2012
Salvar resultados relevantes
Actualizar el entorno para nuevas pruebas
Introducción al Proceso de Automatización Ejemplo: Salvar los resultados de Pruebas
Almacenar DATOS DE ENTRADA
• Se guardan RESULTADOS
• ... Y DATOS DE ENTRADA Repositorio de
Resultados
Introducción al Proceso de Automatización Ejemplo: Almacenamiento
© SQS, S.A. 2012
Archivo de Resultados Esperados Los resultados
correctos se salvan como resultados esperados
Introducción al Proceso de Automatización Ejemplo: Resultados esperados
No hay Diferencias
Resultado Actual de un Nuevo Test
Resultado Esperado
Contrastamos los Resultados!!!
Introducción al Proceso de Automatización Ejemplo: Comparación de resultados
© SQS, S.A. 2012 Índice
1.
Introducción al Proceso de Automatización
2. Fases en el Proceso de Automatización
3.
Claves de la Automatización de Pruebas
4.
Conclusiones
Un número limitado de pasos
Cada paso parece simple
Todo el proceso puede ser complejo
Entorno Hardware heterogéneo Número de pasos
Factor humano
Estandarizar procedimientos
Parametrizar los Scripts
Usos múltiples
STEP STEP STEP STEP STEP STEP STEP STEP STEPFases en el Proceso de Automatización Visión general
© SQS, S.A. 2012
Salvar los Resultados obtenidos Evaluación de los resultados de Test
Proporcionar los Test Data Inicializar el Entorno de Test
Setup los Ficheros de Test Setup del Entorno de Test
Definición de resultados esperados
Ejecución
Comparación
Fases en el Proceso de Automatización Visión general
Establecer la arquitectura del Sistema
¿Qué elementos corresponden a TE? Hardware (ordenadores, ...)
Software (programas, BD, ...)
¿Qué dependencia existe entre los elementos?
Organización de la Estructura
¿Cómo se encuentra organizada?
Fases en el Proceso de Automatización Setup del Entorno
© SQS, S.A. 2012
Estructura de Datos
Diferenciación entre los tipos de datos
Estructurados por: producto / release / proyecto / Test item Convención de nombres
Importante para el Backup No importante para el Backup
Fases en el Proceso de Automatización Setup de los ficheros de Pruebas
Métodos alternativos
Utilizando aplicaciones Utilizando BD existentes Utilizando otras utilidades
Mediante una combinación de métodos
Application reload Test DB initialize backup backup Editing / selecting online or with tools unload Productive DB reload dump /
unload load Test DB
backup
backup
Test data utility generate test data
load
files load into DB Test DB
Fases en el Proceso de Automatización Proporcionar los Test Data
© SQS, S.A. 2012
Reset del Entorno de Test
Parada de procesos / servidores
Borrado y creación de ficheros / tablas de BD
Carga de la Configuración
Ficheros .ini, registro
Carga de los Test Data
Iniciar los procesos
Servidor BD
Servidor de Aplicaciones Servidor de Licencias
Fases en el Proceso de Automatización Inicializar el Entorno
Ejecución del Test
En ocasiones se confunde con todo el proceso
Start depends on the test item:
Batch
Ejecución en batch de la aplicación Online
Iniciar la aplicación desde el menú
Iniciar el programa mediante una herramienta de C/R
Fases en el Proceso de Automatización Ejecución
© SQS, S.A. 2012
Test execution
Las herramientas de C/R manejan los diferentes
componentes de la aplicación
Capturan acciones del ratón y de teclado Grabación de Scripts para la reutilización
Actividades adicionales
Inicialización de BD
Inicialización del entorno de la aplicación
Backup de los Resultados de Test / gestión de los Test Data
Fases en el Proceso de Automatización Ejecución: Mediante herramientas de C/R
Reglas
Solamente salvar los resultados necesarios para la
verificación de la aplicación
Los datos deben de tener un formato que sea posible su comparación
Solo salvar ficheros planos
Salvar ficheros de BD
Completamente o selectivamente
Copiar ficheros
Fases en el Proceso de Automatización Salvar Resultados Obtenidos
© SQS, S.A. 2012
Evaluación basada en:
Resultados Actuales Resultados Esperados
Origen de los resultados esperados
Resultados de un Test de Referencia (proyectos de migración)
Resultados calculados: calculados en base a los datos de entrada
Fases en el Proceso de Automatización Evaluación de los Resultados
Objetivos
Comparación automática de los resultados Comparaciónque ahorra tiempo
Ciclos rápidos de retest
Fases en el Proceso de Automatización Comparación de resultados actuales y esperados
© SQS, S.A. 2012 Índice
1.
Introducción al Proceso de Automatización
2.
Fases en el Proceso de Automatización
3. Claves de la Automatización de Pruebas
4.
Conclusiones
¿Por qué medir la Automatización de las pruebas?
Para decidir si la Automatización ha sido una buena inversión Especialmente indicada para tareas repetitivas
Para evaluar opciones, comparar alternativas, y monitorizar las mejoras
Para tener avisos al principio, y para realizar predicciones Para realizar una comparativa (benchmark)
Claves de la Automatización de Pruebas Tomar medidas
© SQS, S.A. 2012 1er Ciclo Mantenimiento Ejecución 2º Ciclo 3er Ciclo Manual Tester Tiempo Costes
Distribución del esfuerzo en un entorno manual:
Claves de la Automatización de Pruebas Entorno Manual 1er Ciclo 2o Ciclo 3 er Ciclo
Instalación
Mtto
Entrenamiento
Implantación Tiempo Costes Mantenimiento ImplantaciónImplantando la automatización:
Claves de la Automatización de Pruebas Entorno Automatizado
© SQS, S.A. 2012 Posibles beneficios: Ejecución más rápida Ejecución desatendida Pruebas repetibles Más pruebas Mejores pruebas Más barato Menos esfuerzo
Acabar con el aburrimiento
Posibles problemas:
Ejecución más lenta Ejecución poco fiable Menos pruebas Peores pruebas Más caro Más esfuerzo
Necesidad de aprendizaje
¿Automatización es la solución a todos los
problemas?
Claves de la Automatización de Pruebas Beneficios/Problemas
Rapidez en la ejecución
Ciclo de Pruebas de Regresión más corto=>Menos tiempo para paso a producción.
o
Ejecución de MÁS pruebas en el mismo periodo de tiempo = Mayor cobertura.
Puede agilizar la ejecución manual (p.e. carga de datos)
Menor coste
Claves de la Automatización de Pruebas Características
© SQS, S.A. 2012
Ejecución de Pruebas desatendida
En paralelo a las pruebas manuales Ejecución en fuera del horario de trabajo
Durante la noche Fines de semana 24h/día
De nuevo, menor tiempo para producción y mejor cobertura
Menor coste
Claves de la Automatización de Pruebas Características
Reducción de errores en la ejecución
Script Automático VS. Guión Manual: Script ejecuta siempre la prueba de la misma manera.
No es necesario re-ejecutar pruebas ambiguas. Se reducen los test-run.
Se reduce el tiempo de ejecución Aumenta la calidad final
Menor coste
Claves de la Automatización de Pruebas Características
© SQS, S.A. 2012
Permite repetición de tareas (variando datos, etc…)
El testing manual incluye tareas repetitivas y aburridas Especialmente indicada para tareas repetitivas
Formalizar procesos de pruebas
Menos aburrimiento => Menor probabilidad de Fallo => Podemos Fijarnos en Pruebas Importantes => Mejor calidad en las pruebas.
Menor coste
Claves de la Automatización de Pruebas Características
Algunas ideas erróneas:
1a - Costes
La mayor parte del coste en la implantación de la automatización es la
licencia de la herramienta
2a - Experiencia
Las herramientas son tan intuitivas que será necesario ninguna
experiencia técnica para diseñar y ejecutar pruebas
3a - Cobertura
Todo se puede automatizar
Claves de la Automatización de Pruebas Ideas Erróneas
© SQS, S.A. 2012
Dónde están los costes de la automatización?
Licencias y entrenamiento.
Subcontratación a terceros?
Mantenimiento: scripts, test data, entorno…
Claves de la Automatización de Pruebas Costes
Es importante recordar
No todo se puede automatizar
Un objetivo realista podría ser 30-50%
Un máximo podría ser un 70%
Claves de la Automatización de Pruebas Objetivo
© SQS, S.A. 2012
Pero …
OJO!
También podemos conseguir todo lo contrario: que sea
más caro, menos fiable, con menos y peores
pruebas…
¿Cómo evitarlo…? PLANIFICANDO!!!
Claves de la Automatización de Pruebas Planificar
¿Cómo decidir qué se debe automatizar?
Aplicaciones...
... con frecuentes actualizaciones ... que son críticas para el negocio. ... que son complejas.
... que deben ser probadas en múltiples plataformas o entornos. ... que deben soportar usuarios concurrentes.
... módulos que son utilizados por varias aplicaciones. ... en las que el coste de corregir errores es muy alto.
También podemos empezar con un proyecto piloto
Claves de la Automatización de Pruebas Candidatas para Automatizar
© SQS, S.A. 2012
Factores que precondicionan el éxito de un Proceso de
Pruebas:
Control de Versiones Integración Continua Gestión de Incidencias
Gestión de Entornos Controlados Documentación del Código
Claves de la Automatización de Pruebas Factores
Algunas reglas básicas:
Todo no se puede automatizar.
Comienza Paso-a-Paso, céntrese primero en las tareas repetitivas que consumen tiempo.
La automatización se basa en la reutilización, si una prueba no va a ser re-ejecutada no la automatice.
Compare el esfuerzo de automatizar y su utilización con el esfuerzo de hacerlo manualmente.
Tenga en cuenta el Mantenimiento. Compare el esfuero de mantener el entorno de pruebas con el esfuerzo de hacerlo manualmente.
Claves de la Automatización de Pruebas Reglas
© SQS, S.A. 2012 Índice
1.
Introducción al Proceso de Automatización
2.
Fases en el Proceso de Automatización
3.
Claves de la Automatización de Pruebas
4. Conclusiones
Tests que necesitan ejecutarse para cada
compilación de la aplicación
(sanity check, test de
regression)
Tests que utilizan múltiples valores para las mismas
tareas
(data-driven tests)
Stress/load testing
¿Ejecución repetitiva?
la mejor candidata para Automatizar.
Conclusiones
© SQS, S.A. 2012
¿Improvisación?
-
la peor candidata para Automatizar.
Testing de Usabilidad
Testing que se realiza una sola vez
"
ASAP" testing
– “Necesitamos testear ya!“
Testing sin resultados predecibles
Conclusiones
¿Qué hace que sea malo un Test de Automatización?
Definir el propósito de llevar a cabo la Automatización.
Desarrollar una estrategia de Automatización
Las herramientas son muy complicadas.
Tratar el proceso de Automatización de las pruebas como un proceso de desarrollo de Software
El esfuerzo en Automatización es una inversión
Tener un equipo con buenas cualidades
© SQS, S.A. 2012
SQS Software Quality Systems
Av. Zugazarte 8, 1º - dpto 6 48930 Las Arenas (Bizkaia) Tel : +34 94 480 46 17 E-Mail: [email protected] Internet: www.sqs.es