From 2d73e033ae0df0c7bbfd0ef5ea56c48eb100129f Mon Sep 17 00:00:00 2001 From: jpulex Date: Wed, 2 Oct 2024 00:49:21 -0600 Subject: [PATCH 1/2] Correcciones MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se realizaron correcciones para el correcto funcionamiento del juego (Adivina tu número) --- README.md | 6 ++++++ index.html | 40 +++++++++++++++++++++++------------ test-strategy.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8c1e452..b6142a0 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,14 @@ Esta prueba evalúa conocimientos de programación en base a una situación que ## Software necesarios * [GIT](https://git-scm.com/downloads) * Cualquier navegador WEB + ## Instrucciones antes de empezar 1. Crear una cuenta en [Github](https://git-scm.com/book/es/v2/GitHub-Creaci%C3%B3n-y-configuraci%C3%B3n-de-la-cuenta). 2. Crear un [fork](https://docs.github.com/es/get-started/quickstart/fork-a-repo) a este repositorio. 3. Clonar el repositorio forkeado en tu computadora. 4. Úbicate en el repositorio raíz del proyecto (Ubicación del proyecto forkeado en tu computadora). 5. Abrir desde del navegador el archivo index.html de este proyecto. + ## Casos de usos Un banco financiero implementó el juego, Adivina tu número, la cual consiste en adivinar un número entre 1 al 100 durante 10 intentos. Así mismo para facilitar dicho juego se debe cumplir los siguientes requisitos: * El número a adivinar debe pertenecer al conjunto de los enteros (e.g. 1, 2, 3...) @@ -16,14 +18,18 @@ Un banco financiero implementó el juego, Adivina tu número, la cual consiste e * Sí el número que ingresó el jugador es mayor al número a adivinar, se debe mostrar el siguiente mensaje en color negro: "Incorrecto! El número es mayor!", en caso que sea menor, se debe mostrar: "Incorrecto! El número es menor!". * Si después de 10 intentos, el usuario no adivina el número, se debe mostrarse el mensaje de color rojo: "!!!Pérdistes!!!" * Si el usuario adivina el número antes de los 10 intentos, se debe mostrar el mensaje de color verde: "Felicitaciones! adivinaste el número!". + ## Situación del proyecto. El desarrollador implementó toda la interfaz gráfica, y así mismo la lógica del juego en el archivo index.html (Con HTML, Javascript y CSS), sin embargo el equipo de desarrollo cometió el error de no testear dicho proyecto, y lo colocaron en los servidores de producción. Para su sorpresa, al momento de que el cliente lo vió... ¡NO FUNCIONABA NADA! Dado a esta experiencia, el banco financiero contrató a un tester para realizar las pruebas respectivas con la finalidad de que el proyecto funcione correctamente de acuerdo a los requerimientos dados. + ## Plan de ataque Como tester debes solucionar este problema en tu repositorio de github, así mismo debe presentarle al equipo de desarrollo todos los errores que fuiste encontrando y corregiendo (i.e. Una breve descripción del error y su solución respectiva). Dentro del archivo test-strategy.md, igualmente el lider del equipo recomendó a cada tester, ver la consola del navegador de web para identificar más rápido los errores del proyecto. + ## Entregables Como entregables debe presentar lo siguiente: * El archivo index.html corregido de acuerdo a las observaciones de testeo, cabe mencionar que este archivo debe ser funcional (Al momento de abrir el proyecto, debe funcionar de acuerdo a la lógica de negocio planteado en este ejercicio). * El plan de ataque test-strategy.md + ## Recursos: * Event Target: https://developer.mozilla.org/es/docs/Web/API/EventTarget diff --git a/index.html b/index.html index 7b1b8a2..58debae 100644 --- a/index.html +++ b/index.html @@ -41,12 +41,19 @@

Juego Adivina tu número

diff --git a/test-strategy.md b/test-strategy.md index e69de29..450bbcd 100644 --- a/test-strategy.md +++ b/test-strategy.md @@ -0,0 +1,55 @@ +# Plan de ataque para testeo del Juego "Adivina tu Número" + +## Objetivo +En el siguiente documento se documentan los errores encontrados, con su respectiva solución y o sugerencias de cambios. + +## Bugs y Soluciones + +1. **Error en la generación del número aleatorio** + - **Descripción**: El número aleatorio se generaba incorrectamente, resultando en un rango de 0 a 10. + - **Solución**: Se modificó la línea de código para generar un número entre 1 y 100: + ```javascript + let randomNumber = Math.floor(Math.random() * 100) + 1; + ``` + +2. **Error en el selector de clase** + - **Descripción**: Se utilizó un selector incorrecto para la clase `lowOrHi`, este no permitía mostrar mensajes. + - **Solución**: Se corrigió el selector a: + ```javascript + const lowOrHi = document.querySelector('.lowOrHi'); + ``` + +3. **Error en la función de escucha de eventos** + - **Descripción**: No se escribió correctamente `addeventListener`, esto causa que la función no se ejecute al hacer click en el botón. + - **Solución**: Se corrigió a: `addEventListener`: + ```javascript + guessSubmit.addEventListener('click', checkGuess); + ``` + +4. **Lógica incorrecta al ganar el juego** + - **Descripción**: El mensaje de victoria se mostraba cuando se agotaban los intentos en lugar de cuando el usuario adivinaba el número correcto. + - **Solución**: Se reformuló la condición en el `if`: + ```javascript + if(userGuess === randomNumber) { + lastResult.textContent = '¡Felicitaciones! adivinaste el número!'; + } + ``` + +5. **Uso incorrecto de `Math.random()` para reiniciar el juego** + - **Descripción**: Al reiniciar, el número aleatorio no se generaba correctamente, manteniendo el mismo número. + - **Solución**: Se corrigió la línea de código en la función, al cual se le dió lógica `resetGame`: + ```javascript + randomNumber = Math.floor(Math.random() * 100) + 1; + ``` + +6. **El mensaje de "PERDER EL JUEGO"** + - **Descripción**: El mensaje tenía errores ortográficos, también era confuso se cambió el: "!!!Pérdistes!!!" por un texto más comprensible. + - **Solución**: Se modificó el mensaje obtenido al perder el juego: + ```javascript + lastResult.textContent = '¡Perdiste! El número era ' + randomNumber; + ``` +## Sugerencias: +1. + +## Conclusión +Se realizaron pruebas exhaustivas desde el punto de vista desarrollador y también desde el punto de vista usuario, puesto que hay muchos usuarios que son atentos al detalle y el simple hecho de no empezar con mayúsculas, una palabra mal escrita o un botón que no funciona, hace desagradable su experiencia con la interacción del software. From 1e3d0fa1acb6254a1a618592145d72a9ab8b40e1 Mon Sep 17 00:00:00 2001 From: jpulex Date: Wed, 2 Oct 2024 09:55:54 -0600 Subject: [PATCH 2/2] Update1.2Comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se agregan observaciones en cuanto a las implementaciones futuras según el testeo en el desarrollo --- test-strategy.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/test-strategy.md b/test-strategy.md index 450bbcd..c9dce73 100644 --- a/test-strategy.md +++ b/test-strategy.md @@ -49,7 +49,15 @@ En el siguiente documento se documentan los errores encontrados, con su respecti lastResult.textContent = '¡Perdiste! El número era ' + randomNumber; ``` ## Sugerencias: -1. +1. Según mi experiencia de trabajo en Banco Industrial y acostumbrado a las metodologías, como Project Manager y QA, solo hacía sugerencias de cambios con las funciones a implementar si era necesario, es decir en el desarrollo presentado se observa que: + +(Siguiendo las instrucciones no agregaré desarrollo nuevo, en el ámbito real por temas de roles no era una buena práctica) + +a. Se evalúa que ingresan números negativos y positivos sin un límite de caracteres. +b. Se evalúa que se ingresan caracteres especiales, estos mismos si se reconocen como string pero en un futuro podría ser una vulnerabilidad para el desarrollo. +c. Se intentó ingresar una cadena

123

y esta misma la reconoce como string, en el desarrollo se sugiere que el campo se reconozca unicamente como numérico y que no acepte caracteres diferentes. +d. Si se realiza una operación matemática por ejemplo usar una practica de manejo de errores. + ## Conclusión Se realizaron pruebas exhaustivas desde el punto de vista desarrollador y también desde el punto de vista usuario, puesto que hay muchos usuarios que son atentos al detalle y el simple hecho de no empezar con mayúsculas, una palabra mal escrita o un botón que no funciona, hace desagradable su experiencia con la interacción del software.