El documento describe la estrategia de pruebas para un proyecto de construcción de software para apoyar un juego gerencial. La estrategia incluye: 1) carga de datos para probar el sistema, 2) validación de simulaciones usando un oráculo de Excel, y 3) pilotos con estudiantes para probar usabilidad. También incluye pruebas de rendimiento a nivel de consultas y de la capa web para evaluar el desempeño bajo carga.
1. 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
2. Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
3. 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
4. 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
5.
6. Configuración de la industria
Definición de las reglas de juego:
{Decisión-Consecuencias}
Configuración del entorno
Definición empresas, usuarios, etc.
9. 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
10. Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
11. 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
13. Estrategia de desarrollo
Separación de las reglas del juego del
procesamiento
Generación de código
Ciclos incrementales y alcance
14. 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
15. 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
16. Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
17. 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
19. 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
20. 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
21. Reto: Alto volumen de tablas
Reto principal: entender los archivos
Estrategia solución
Una pestaña por tabla
Dividir en varios archivos
22. 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
23. 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
26. Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
27. 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
28. Validar la Simulación
Estrategia general
Sistema
Oráculo Excel
Def Decisiones
Instancias
Decisiones
(ejemplos)
Reportes
EXCEL
Reportes
Sistema
29. 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
31. Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
32. 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
33. 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
34. Agenda
Contexto Proyecto
Estrategia desarrollo
Estrategia Pruebas
Carga de Datos
Validación de simulaciones
Pilotos pruebas
Pruebas de rendimiento
35. Pruebas de rendimiento
Pruebas de rendimiento:
A nivel de consulta de EJB (EJB Tests)
Pruebas Web (Web Tests)
36. 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
37. 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
39. 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.
40. 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.
41. 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.
42. 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