Post on 11-Aug-2015
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
Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
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
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
Configuración de la industria
Definición de las reglas de juego: {Decisión-Consecuencias}
Configuración del entorno
Definición empresas, usuarios, etc.
Toma de decisiones
Asignación participación mercado
Simulación
Consolidación
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
Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
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
Estudiante/Empresa
Estudiante/Empresa
Estudiante/Empresa
Estrategia de desarrollo
Separación de las reglas del juego del
procesamiento
Generación de código
Ciclos incrementales y alcance
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
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
Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
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
Carga de datos
Escenario cargado desde archivos Excel a BD
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
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
Reto: Alto volumen de tablas
Reto principal: entender los archivos
Estrategia solución
Una pestaña por tabla
Dividir en varios archivos
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
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
Cambios en el modelo
Cambios en el modelo
Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
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
Validar la Simulación
Estrategia general
Sistema
Oráculo Excel
Def DecisionesInstancias
Decisiones
(ejemplos)
Reportes
EXCEL
Reportes
Sistema
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
Validar la Simulación
Archivo resultados Oráculo
Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
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
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
Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
Pruebas de rendimiento
Pruebas de rendimiento:
A nivel de consulta de EJB (EJB Tests)
Pruebas Web (Web Tests)
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
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
EJB Tests
Vista de Despliegue
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.
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.
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.
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
Material elaborado por:
Rafael Meneses
Nicolás López