diff --git a/images/05_DiagramaL1.png b/images/05_DiagramaL1.png index e05a8e4b..5f4a5682 100644 Binary files a/images/05_DiagramaL1.png and b/images/05_DiagramaL1.png differ diff --git a/images/05_DiagramaL2.png b/images/05_DiagramaL2.png index 87613db3..59f84497 100644 Binary files a/images/05_DiagramaL2.png and b/images/05_DiagramaL2.png differ diff --git a/images/05_DiagramaL3.png b/images/05_DiagramaL3.png index 14a94b57..a994f010 100644 Binary files a/images/05_DiagramaL3.png and b/images/05_DiagramaL3.png differ diff --git a/images/Sequence diagram.png b/images/Sequence diagram.png index cd514fd0..227dd067 100644 Binary files a/images/Sequence diagram.png and b/images/Sequence diagram.png differ diff --git a/images/Sequence diagram1.png b/images/Sequence diagram1.png index 4d6ea782..169265dc 100644 Binary files a/images/Sequence diagram1.png and b/images/Sequence diagram1.png differ diff --git a/images/Sequence diagram2.png b/images/Sequence diagram2.png index 79c9fc4c..863400df 100644 Binary files a/images/Sequence diagram2.png and b/images/Sequence diagram2.png differ diff --git a/images/coverage1.png b/images/coverage1.png new file mode 100644 index 00000000..1c4208f3 Binary files /dev/null and b/images/coverage1.png differ diff --git a/images/coverage2.png b/images/coverage2.png new file mode 100644 index 00000000..a2961390 Binary files /dev/null and b/images/coverage2.png differ diff --git a/images/coverage3.png b/images/coverage3.png new file mode 100644 index 00000000..3f3c9eef Binary files /dev/null and b/images/coverage3.png differ diff --git a/images/coverage4.png b/images/coverage4.png new file mode 100644 index 00000000..2f7d57c5 Binary files /dev/null and b/images/coverage4.png differ diff --git a/images/coverage5.png b/images/coverage5.png new file mode 100644 index 00000000..8416f5ea Binary files /dev/null and b/images/coverage5.png differ diff --git a/images/coverage6.png b/images/coverage6.png new file mode 100644 index 00000000..f99716c6 Binary files /dev/null and b/images/coverage6.png differ diff --git a/images/coverage7.png b/images/coverage7.png new file mode 100644 index 00000000..fd95ff29 Binary files /dev/null and b/images/coverage7.png differ diff --git a/images/diagramaDespliegue.png b/images/diagramaDespliegue.png index 8f3baadd..985b449b 100644 Binary files a/images/diagramaDespliegue.png and b/images/diagramaDespliegue.png differ diff --git a/images/distribucion.png b/images/distribucion.png new file mode 100644 index 00000000..ba8c4a50 Binary files /dev/null and b/images/distribucion.png differ diff --git a/images/peticiones.png b/images/peticiones.png new file mode 100644 index 00000000..0677f337 Binary files /dev/null and b/images/peticiones.png differ diff --git a/images/pico.png b/images/pico.png new file mode 100644 index 00000000..40cadd43 Binary files /dev/null and b/images/pico.png differ diff --git a/images/respuestas.png b/images/respuestas.png new file mode 100644 index 00000000..c51f3b34 Binary files /dev/null and b/images/respuestas.png differ diff --git a/index.html b/index.html index 1b4b0032..15884e1b 100644 --- a/index.html +++ b/index.html @@ -506,6 +506,14 @@
Pruebas
Deberán ser implementadas pruebas de cobertura, aceptación y carga.
Despliegue
El sistema debe estar desplegado en un servidor, una máquina virtual.
Miembros del grupo
El proyecto se llevará a cabo en un equipo con 6 miembros que trabajarán de forma conjunta.
El proyecto se llevará a cabo en un equipo con 5-6 miembros que trabajarán de forma conjunta.
Entregas
Idioma
La documentación será en español.
Actas
Se rotará el miembro que toma las actas.
Ramas
Cada miembro del equipo trabajará en su rama de GitHub.
Máquina
La máquina será desplegada en Azure.
Actor principal, interatúa con la aplicación y proporciona sus datos.
Aplicación
WIQ
Se trata de nuestra aplicación, explicada en detalle más adelante.
Frontend
Interfaz de usuario.
Webapp
Componente que alberga la interfaz de usuario, con la que interactua el usuario, además de la lógica de la aplicación.
Backend
Lógica de negocio y manejo de datos.
Gateway service
Maneja y dirige peticiones desde la interfaz de usuario hasta los servicios.
Preguntas
Contiene dos servicios relacionados con el juego: generatorService y questionService.
Statistics
Contiene el servicio de las estadísticas.
Users
Contiene dos servicios: autenticación y usuarios.
Raíz del proyecto.
App
Contiene la estructura del proyecto con enrutamiento y proveedor de autenticación.
Inicio
Link a registro e inicio de sesión.
Primera
Pantalla de bienvenida.
Register
Registro de usuarios.
Log in
Permite al usuario registrarte o iniciar sesión.
Permite al usuario iniciar sesión.
Home
Pantalla donde se mostrarán las preguntas y respuestas.
Estadísticas
Pantalla con las estadísticas de los usuarios.
Game modes
Permite seleccionar un modo de juego.
Navbar
Barra de menú.
Categories
Permite seleccionar distintas categorías para jugar.
Primera
Pantalla de bienvenida.
Routes
Proporciona las distintas rutas existentes.
Add user
Registro de usuarios.
Statistics
Pantalla con las estadísticas de los usuarios y su correspondiente lógica.
Ranking
Pantalla con el ranking de los usuarios y su correspondiente lógica.
Gateway service
Mnaneja y dirige peticiones.
Mananeja y dirige peticiones.
User service
Manejo de los datos de registro
Generación preguntas y respuestas
Lógica para la correcta generación de preguntas y respuestas.
Generator service
Servcio para la correcta generación de preguntas y respuestas.
Esquema
Plantilla para la generación de preguntas.
Question service
Servicio para la correcta generación de la api de preguntas.
Cálculo de estadísticas
Lógica para el correcto manejo y cálculo de estadísticas sobre los resultados de los usuarios.
Statistics service
Servicio para el correcto manejo de estadísticas sobre los resultados de los usuarios.
Para este proyecto decidimos hacer pruebas unitarias para cada servicio creado y para cada componente de react del frontend. +Estas pruebas se ejecutan obligatoriamente al realizar un commit en la rama main del repositorio y al hacer una release permitiendo asegurarnos del correcto funcionamiento de la aplicación.
+Este proyecto consta de 6 servicios, Gateway , User , Auth , Generator , Question y Statistics.
+Las pruebas de este servicio constan de probar que las diferentes rutas al resto de servicios estén disponibles y retornen los datos correctos. Ademas también se prueban casos de errores +En total se realizan 46 pruebas.
+Para este servicio se prueba que se registre bien los usuarios almacenando sus datos. También se prueba caso negativo de que no se introduzcan todos los campos. +En total se realizan 3 pruebas.
+Este servicio se prueba que el acceso de usuario sea correcto cuando los credenciales sean correctas. En total se realizan 3 pruebas.
+Las pruebas unitarias de este servicio constan de probar que a partir de las plantillas de preguntas se haga la consulta a la api y se le de el formato correcto al resultado. +En total se realizan 10 pruebas.
+Las pruebas de este servicio nos asegura que sea capaz de retornar las diferentes preguntas generadas. Tiene una única prueba.
+Las pruebas unitarias de este servicio se encargan de probar a obtener las estadísticas del los usuarios con el formato correcto.En total se realizan 7 pruebas.
+En la aplicación se realizó pruebas en cada uno de los componentes de react donde se realizan 12 conjuntos de prueba con un total de 40 pruebas ejecutadas.
+Se han realizado un total de 2 pruebas de aceptación con puppeteer. Las pruebas fueron realizadas para la acción de iniciar sesión y de registro.
+Para probar el registro se rellenan todos los campos del registro y se presiona el botón, posteriormente se comprueba que exista el usuario en la base de datos.
+Para el inicio de sesión se introduce un usuario en la base de datos y posteriormente se prueba el registro introduciendo el usuario y la contraseña.
+Con las pruebas unitarias se puede observar el porcentaje del código se ha cubierto con estas. Para este proyecto decidimos usar el quality gate de aws donde se necesita mas de un 80% de cobertura. Conseguimos una cobertura total del 83,8% y de nuevo código generado 82,2%
+A continuación se mostrara cobertura de los diferentes módulos servicios y de la aplicación.
++
+
+
+
+
+
+
La prueba de carga han sido realizadas con gatlin y esta consta de iniciar sesión y jugar una partida enviando durante 60 segundos 2 usuarios por segundo.
+En los resultados obtenemos que todas las peticiones realizadas al servidor, que son 4270 se realizaron en menos de 800ms con 98% de respuestas correctas y 2% de respuestas que fallan como se muestra en la siguiente imagen. +
+Como pico de usuarios se obtienen 117 usuarios activos y durante 66 segundos hay más de 50 usuarios simultáneos. como se muestra en la siguiente gráfica. +
+En la siguiente gráfica vemos la distribución en el tiempo de respuesta donde observamos que hay dos picos uno en el menor y otro en 252ms por lo que se puede concluir que los tiempos excesivos no es algo común. +
+Finalmente, en las gráficas posteriores se muestra el número de peticiones y respuestas en relación con el tiempo y el número de usuarios en el sistema. Se ve que el número de pericones va en relación con el número de usuarios y en las respuestas los diferentes valles que hay son fallos por lo general. +
+