claves de la automatización de pruebas de softwarecomienza paso-a-paso, céntrese primero en las...

25
© SQS, S.A. 2012 SQS Software Quality Systems Claves de la automatización de pruebas de software Jaime Paniagua Madrid, 26 de Septiembre 2012 © 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

Upload: others

Post on 10-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

© SQS, S.A. 2012

SQS Software Quality Systems

Claves de la automatización de

pruebas de software

Jaime Paniagua

Madrid, 26 de Septiembre 2012

© 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

© 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

© SQS, S.A. 2012

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 realizar

CUALQUIER actividad de prueba de forma

automática.

Introducción al Proceso de Automatización Automatización

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

STEP

Fases 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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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 Test DB

load

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

Objetivos

Comparación automática de los resultados

Comparación que 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

© SQS, S.A. 2012

¿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

© SQS, S.A. 2012

1er

Ciclo

2o

Ciclo 3er

Ciclo

Instalación

Mtto

Entrenamiento

Implantación

Tiempo

Costes

Mantenimiento

Ejecución

Implantación

Implantando 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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

¿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

© SQS, S.A. 2012

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

© SQS, S.A. 2012

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 ¿Qué hace que sea bueno un Test de Automatización?

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

© SQS, S.A. 2012

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

Conclusiones

© 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