Saltar al contenido principal

RF56: Usuario contesta preguntas del curso

Descripción

Como usuario que está tomando un curso, quiero responder las preguntas de evaluación para demostrar lo aprendido y poder finalizar el curso.

El backend evalúa las respuestas (la clave correcta nunca se expone al cliente) y registra el puntaje. Aprobar la evaluación es condición para finalizar el curso (RF57).

CampoValor
MóduloCourses Module
ActorUsuario autenticado
EndpointPOST /courses/:id/quiz ({ answers })
PrecondicionesSesión activa; acceso al curso; lecciones requeridas vistas
PrioridadMedia (MVP)
EtapaMBI 1
Requisitos relacionadosRF52, RF57, RF59

Reglas de negocio

  • RN-56.1 — La evaluación se realiza en el backend; las respuestas correctas no se envían al cliente.
  • RN-56.2 — Se define un puntaje mínimo de aprobación (p. ej. 70%).
  • RN-56.3 — Se permite reintentar la evaluación si no se aprueba (con límite configurable).
  • RN-56.4 — Se registra el intento, puntaje y fecha.

Validaciones de entrada

CampoReglasMensaje de error
answersObligatorio. Una respuesta por pregunta del cuestionario."Responde todas las preguntas."
Cada respuestaOpción válida de la pregunta."Respuesta no válida."
AuthorizationBearer válido."Sesión no válida." (401)

El payload se valida (estructura y opciones válidas) con consultas parametrizadas; no se aceptan inyecciones SQL.

Criterios de aceptación

Escenario 1: Evaluación aprobada

Dado que respondo todas las preguntas y alcanzo el puntaje mínimo, Cuando envío mis respuestas, Entonces el sistema calcula el puntaje en el backend, Y registra el intento como aprobado, Y habilita la finalización del curso (RF57).

Escenario 2: Evaluación reprobada

Dado que no alcanzo el puntaje mínimo, Cuando envío mis respuestas, Entonces el sistema registra el intento como no aprobado, Y me indica el puntaje y que puedo reintentar.

Escenario 3: Respuestas incompletas o inválidas

Dado que dejo preguntas sin responder o envío una opción inexistente, Cuando envío, Entonces el sistema responde 400 con el mensaje correspondiente.

Escenario 4: No exposición de la clave (seguridad)

Dado que inspecciono las respuestas de la red, Cuando cargo el cuestionario, Entonces nunca recibo cuáles son las respuestas correctas.

Criterios no funcionales

  • Evaluación en backend; respuesta < 1 s.
  • Comunicación TLS 1.2+.

Diagrama de secuencia