Ejemplo pruebas de software

43
EJEMPLO PRUEBAS: Proyecto de construcción de software para apoyo al Juego Gerencial Rubby Casallas Nicolás López Rafael Meneses Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes

Transcript of Ejemplo pruebas de software

Page 1: Ejemplo pruebas de software

EJEMPLO PRUEBAS:Proyecto de construcción de software para apoyo al

Juego Gerencial

Rubby Casallas – Nicolás López – Rafael Meneses

Departamento de Sistemas y Computación

Facultad de Ingeniería

Universidad de los Andes

Page 2: Ejemplo pruebas de software

Agenda

Contexto Proyecto

Estrategia desarrollo

Estrategia Pruebas

Carga de Datos

Validación de simulaciones

Pilotos pruebas

Page 3: Ejemplo pruebas de software

Proyecto Juego Gerencial

Simular una situación de mercado

Grupos corporativos toman decisiones de negocio

Efecto en la participación de mercado

Las decisiones son simuladas de acuerdo con un

entorno de negocio

Page 4: Ejemplo pruebas de software

Proyecto Juego Gerencial

Ciclo 1: Junio - Julio Equipo mixto Lidie-Qualdev: Análisis y estrategia global

Diagrama de procesos

Glosario

Descripciones de requerimientos

Propuesta de arquitectura global

Estudio de tecnologías

Prototipos: de análisis y de tecnologías

Identificación de riesgos

Estrategia de desarrollo

Page 5: Ejemplo pruebas de software
Page 6: Ejemplo pruebas de software

Configuración de la industria

Definición de las reglas de juego: {Decisión-Consecuencias}

Configuración del entorno

Definición empresas, usuarios, etc.

Page 7: Ejemplo pruebas de software

Toma de decisiones

Page 8: Ejemplo pruebas de software

Asignación participación mercado

Simulación

Consolidación

Page 9: Ejemplo pruebas de software

Requerimientos y Restricciones

Volumen de estudiantes

Acceso Internet

Desarrollo incremental – versiones funcionales y

utilizables en el contexto del curso

Lo más importante:

Separación del conocimiento (las reglas del juego)

del procesamiento

Page 10: Ejemplo pruebas de software

Agenda

Contexto Proyecto

Estrategia desarrollo

Estrategia Pruebas

Carga de Datos

Validación de simulaciones

Pilotos pruebas

Page 11: Ejemplo pruebas de software

Administrador/Profesor

- Crear la industria

- Crear las reglas del juego

- Configurar el entorno

- Administrar las empresas,

- los estudiantes

- Participar en el Juego:

- Resolver peticiones

- Hacer anuncios

- Ver avances

- Repartir el mercado

- simular

- Ver info consolidada

Page 12: Ejemplo pruebas de software

Estudiante/Empresa

Estudiante/Empresa

Estudiante/Empresa

Page 13: Ejemplo pruebas de software

Estrategia de desarrollo

Separación de las reglas del juego del

procesamiento

Generación de código

Ciclos incrementales y alcance

Page 14: Ejemplo pruebas de software

Lenguaje de definición de decisiones

- Información de entrada:

-Valores ingresados por

quien toma la decisión

-Selecciones

-Cálculos (fórmulas)

-Transacciones Financieras

-Transacciones Operativas

Experto en

Producción

Experto en

Finanzas

Experto en

Mercadeo

Separación de las reglas del juego del

procesamiento

Page 15: Ejemplo pruebas de software

Separación de las reglas del juego del

procesamiento

Reglas del juego

Empresa

Estados Financieros

Estados Operativos

Decisiones tomadas

durante el período

Estados Financieros

Estados Operativos

Motor de

simulación

Page 16: Ejemplo pruebas de software

Agenda

Contexto Proyecto

Estrategia desarrollo

Estrategia Pruebas

Carga de Datos

Validación de simulaciones

Pilotos pruebas

Pruebas de rendimiento

Page 17: Ejemplo pruebas de software

Estrategia de Pruebas

Facilitar la carga de datos para probar el sistema

en un estado no inicial

Ofrecer un mecanismo para validar la simulación

Poder ejecutar varios pilotos antes de poner en

producción

Page 18: Ejemplo pruebas de software

Carga de datos

Escenario cargado desde archivos Excel a BD

Page 19: Ejemplo pruebas de software

Carga de datos

Simular la configuración del profesor de TODA la industria para poder probar:

Capa web

Decisiones

Simulación

1 a 1.5 personas dedicadas completamente a estas tareas

Desarrollo de una Infraestructura completa para soportar la carga de datos

Page 20: Ejemplo pruebas de software

Carga de datos

Retos:

Alto volumen de tablas

Mas de 250 entidades, con muchas relaciones

Validar que datos son correctos antes de cargar

Validar completitud de datos al cargar

Cambios en el modelo y su impacto en la BD

Page 21: Ejemplo pruebas de software

Reto: Alto volumen de tablas

Reto principal: entender los archivos

Estrategia solución

Una pestaña por tabla

Dividir en varios archivos

Page 22: Ejemplo pruebas de software

Reto: Validar

Validar que datos son correctos antes de cargar

Validador revisa que las pestañas estén correctas antes

de cargar

Validar completitud de datos al cargar

Después de cargar, mensajes de warning indican que

tablas no tienen datos creados

Page 23: Ejemplo pruebas de software

Cambios en el modelo

Como mantener la validez del escenario

Generador de pestañas genera esqueletos de Excel a

partir de la BD

Definición de proceso de cambios en modelo que

incluye mantenimiento de pruebas

Page 24: Ejemplo pruebas de software

Cambios en el modelo

Page 25: Ejemplo pruebas de software

Cambios en el modelo

Page 26: Ejemplo pruebas de software

Agenda

Contexto Proyecto

Estrategia desarrollo

Estrategia Pruebas

Carga de Datos

Validación de simulaciones

Pilotos pruebas

Pruebas de rendimiento

Page 27: Ejemplo pruebas de software

Validar la Simulación

Cómo facilitar a los profesores validar que las

decisiones SI tienen el efecto esperado?

El mecanismo además debe poder ser útil para los

USUARIOS finales

Page 28: Ejemplo pruebas de software

Validar la Simulación

Estrategia general

Sistema

Oráculo Excel

Def DecisionesInstancias

Decisiones

(ejemplos)

Reportes

EXCEL

Reportes

Sistema

Page 29: Ejemplo pruebas de software

Validar la Simulación

Restricciones: No atar el oráculo a las instancias

particulares de las decisiones

Oráculo:

Lee el mismo archivo de instancias de decisiones que se

cargan al sistema

Procesa las decisiones en archivos con fórmulas

Saca los resultados en otro archivo de Excel

Page 30: Ejemplo pruebas de software

Validar la Simulación

Archivo resultados Oráculo

Page 31: Ejemplo pruebas de software

Agenda

Contexto Proyecto

Estrategia desarrollo

Estrategia Pruebas

Carga de Datos

Validación de simulaciones

Pilotos pruebas

Pruebas de rendimiento

Page 32: Ejemplo pruebas de software

Pilotos

Probar escenarios completos de ejecución

Varios pilotos:

1. Recolectar datos de los profesores y poblamos

escenarios para ejecución

– Comparar ejecución con el oráculo a partir de reportes

– Ajustar lógica de negocio

2. Definir con profesores un grupo piloto de estudiantes

– Ejecutar el juego de manera controlada con los estudiantes

– Ajustar aspectos de usabilidad

Page 33: Ejemplo pruebas de software

Piloto 1

6 semanas recolectando datos de industria con los

profesores

2 semanas definiendo empresa y decisiones a

ejecutar

1 semana en ejecución

4 semanas de ajustes con respecto a la ejecución

Page 34: Ejemplo pruebas de software

Agenda

Contexto Proyecto

Estrategia desarrollo

Estrategia Pruebas

Carga de Datos

Validación de simulaciones

Pilotos pruebas

Pruebas de rendimiento

Page 35: Ejemplo pruebas de software

Pruebas de rendimiento

Pruebas de rendimiento:

A nivel de consulta de EJB (EJB Tests)

Pruebas Web (Web Tests)

Page 36: Ejemplo pruebas de software

EJB Tests

Consiste en acceder directamente a los Entity y

Session beans para ver cómo reacciona glassfish

al ser consultado por varios clientes

simultáneamente

Se usó el framework Grinder, que funciona con un

nodo principal al que se conectan workers y a cada

uno se le envían las instrucciones a ejecutar

Hyperic HQ es una plataforma basada en Java

para monitorear y administrar recursos de software

Page 37: Ejemplo pruebas de software

EJB Tests

Topología

Variables a Evaluar

Glassfish

Uso de CPU

Uso de memoria RAM

Uso de disco I/O

Mysql

Uso de cpu

Uso de memoria ram

Uso de disco I/O

Page 38: Ejemplo pruebas de software

EJB Tests

Vista de Despliegue

Page 39: Ejemplo pruebas de software

EJB Tests

Los resultados de estas pruebas nos permitieron:

Ajustar los valores de la configuración de glassfish. Por

ejemplo: Pool Settings (Maximum Pool Size, Pool Idle

Timeout, etc.), Cache Settings (Max Cache Size, Cache

Resize Quantity, etc.)

Especificar una configuración hardware adecuada para los

requerimientos actuales de desempeño. Esta configuración

soporta escalabilidad en cuanto al número de usuarios

concurrentes.

Page 40: Ejemplo pruebas de software

Web Tests

Consisten en que cada cliente hace login y luego

crea una serie de instancias de una decisión

Permiten verificar el desempeño de la capa Web

al ser utilizada por varios usuarios

concurrentemente

Se utilizó el framework de pruebas de aplicaciones

Web SeleniumHQ. Utilizado para automatizar

aplicaciones Web utilizando múltiples navegadores

y plataformas.

Page 41: Ejemplo pruebas de software

Web Tests

Estas pruebas permitieron identificar pantallas

ineficientes con un nivel muy alto de información

(i.e. muchas instancias de decisión).

Con esta información optimizamos el despliegue

Web (jsf) de dichas pantallas e identificamos

algunos algoritmos de la capa Web que deberían

ser trasladados a la capa de sesión.

Page 42: Ejemplo pruebas de software

Preguntas

Clasifique los 4 tipos de pruebas del juego

gerencial (Carga de Datos, Validación de

simulaciones, Pilotos pruebas, Desempeño) en las

categorías clásicas de pruebas:

Unitarias

Integración

Sistema

Usuario

Page 43: Ejemplo pruebas de software

Material elaborado por:

Rafael Meneses

Nicolás López