8.2 KiB
Reporte de Defectos - Pruebas Manuales QA
Fecha: 2026-01-07 Tester: QA Automation con Playwright Ambiente: k3s (academia.ingeniumcodex.com) Estado: Completado
Resumen Ejecutivo
| Severidad | Cantidad | Corregidos |
|---|---|---|
| Critica | 1 | 1 |
| Alta | 1 | 1 |
| Media | 1 | 1 |
| Baja | 1 | 1 |
Todos los defectos han sido corregidos y validados.
DEF-001: SQL Server OOMKilled - Memoria Insuficiente
Clasificacion
- ID: DEF-001
- Severidad: CRITICA
- Componente: Infraestructura / SQL Server
- Estado: CORREGIDO
Descripcion
SQL Server se reinicia continuamente debido a falta de memoria (OOMKilled). El pod entra en CrashLoopBackOff impidiendo el funcionamiento de la aplicacion.
Pasos para Reproducir
- Desplegar la aplicacion en k3s con los manifiestos originales
- Esperar 2-3 minutos
- Observar que SQL Server se reinicia repetidamente
Resultado Esperado
SQL Server debe iniciar y permanecer estable sin reinicios.
Resultado Actual
- Exit Code: 137 (SIGKILL - OOMKilled)
- SQL Server se reinicia cada ~2 minutos
- Errores en logs: 17300, 17312, 28709 (recursos insuficientes)
Evidencia
Solucion Implementada
Se modifico deploy/k3s/sqlserver.yaml:
- Aumentar memoria limite a 1.5Gi
- Aumentar MSSQL_MEMORY_LIMIT_MB a 1024
- Aumentar initialDelaySeconds del liveness probe a 120
- Aumentar failureThreshold a 5
Resultado post-correccion: SQL Server estable con 691Mi de RAM y 0 reinicios.
DEF-002: Mensajes de Restriccion en Ingles
Clasificacion
- ID: DEF-002
- Severidad: ALTA
- Componente: Frontend / Localizacion
- Estado: CORREGIDO
Descripcion
Los mensajes de restriccion en la pagina de inscripcion se muestran en ingles en lugar de espanol, rompiendo la consistencia del idioma de la aplicacion.
Pasos para Reproducir
- Navegar a la pagina de inscripcion de un estudiante
- Inscribir al estudiante en una materia
- Observar los mensajes de restriccion en las otras materias
Resultado Esperado
Los mensajes deben mostrarse en espanol:
- "Ya inscrito"
- "Ya tienes una materia con este profesor"
- "Maximo 3 materias alcanzado"
Resultado Actual
Los mensajes se muestran en ingles:
- "Already enrolled"
- "Already have a subject with this professor"
- "Maximum 3 subjects reached"
Evidencia
Soluciones Propuestas
Solucion A: Traducir en el frontend (servicio)
- Descripcion: Crear un diccionario de traducciones en el EnrollmentService
- Pros: Cambio localizado, rapido de implementar
- Contras: Duplica logica de traduccion
Solucion B: Traducir en el backend (GraphQL)
- Descripcion: Retornar mensajes en espanol desde la API
- Pros: Fuente unica de verdad
- Contras: Requiere cambios en backend
Solucion C: Usar i18n en Angular
- Descripcion: Implementar sistema de internacionalizacion completo
- Pros: Escalable para multiples idiomas
- Contras: Mayor complejidad, over-engineering para este caso
Solucion Unificada Recomendada
Implementar Solucion A: traducir los mensajes en el frontend ya que la API retorna codigos/mensajes en ingles y el frontend es responsable de la presentacion.
Archivo a modificar: src/frontend/src/app/features/enrollment/pages/enrollment-page/enrollment-page.component.ts
private readonly translations: Record<string, string> = {
'Already enrolled': 'Ya inscrito',
'Already have a subject with this professor': 'Ya tienes una materia con este profesor',
'Maximum 3 subjects reached': 'Maximo 3 materias alcanzado'
};
translateMessage(message: string): string {
return this.translations[message] || message;
}
DEF-003: Error Gramatical en Pluralizacion
Clasificacion
- ID: DEF-003
- Severidad: MEDIA
- Componente: Frontend / Pagina Companeros
- Estado: CORREGIDO
Descripcion
En la pagina de companeros de clase, cuando hay exactamente 1 companero, el texto muestra "1 companeros" (plural) en lugar de "1 companero" (singular).
Pasos para Reproducir
- Crear dos estudiantes
- Inscribir ambos en la misma materia
- Ver la pagina de companeros de cualquiera de los dos
- Observar el contador junto al nombre de la materia
Resultado Esperado
- 0 companeros
- 1 companero (singular)
- 2 companeros (plural)
Resultado Actual
- 1 companeros (incorrecto)
Evidencia
Soluciones Propuestas
Solucion A: Condicional simple en template
{{ count }} {{ count === 1 ? 'companero' : 'companeros' }}
Solucion B: Pipe de pluralizacion
@Pipe({ name: 'pluralize' })
export class PluralizePipe {
transform(count: number, singular: string, plural: string): string {
return count === 1 ? singular : plural;
}
}
Solucion C: Usar Angular i18n con ICU
{count, plural, =1 {companero} other {companeros}}
Solucion Unificada Recomendada
Implementar Solucion A (condicional simple) por ser la mas directa y no requerir cambios estructurales.
Archivo a modificar: src/frontend/src/app/features/classmates/pages/classmates-page/classmates-page.component.html
DEF-004: Favicon No Encontrado (404)
Clasificacion
- ID: DEF-004
- Severidad: BAJA
- Componente: Frontend / Assets
- Estado: CORREGIDO
Descripcion
El navegador intenta cargar /favicon.ico pero recibe un error 404. Esto genera errores en la consola del navegador.
Pasos para Reproducir
- Abrir la aplicacion en el navegador
- Abrir las herramientas de desarrollador (F12)
- Observar la pestana de red o consola
Resultado Esperado
El favicon debe cargarse correctamente o no debe haber referencia al mismo.
Resultado Actual
Failed to load resource: the server responded with a status of 404 ()
@ https://academia.ingeniumcodex.com/favicon.ico
Evidencia
Error visible en consola del navegador durante las pruebas.
Soluciones Propuestas
Solucion A: Agregar favicon
- Descripcion: Crear y agregar un favicon.ico al proyecto
- Pros: Mejora UX, profesionalismo
- Contras: Requiere crear el asset
Solucion B: Remover referencia
- Descripcion: Quitar la referencia al favicon en index.html
- Pros: Elimina el error
- Contras: Sin icono en pestanas del navegador
Solucion Unificada Recomendada
Implementar Solucion A: crear un favicon simple basado en el logo "S" de la aplicacion.
Archivos a modificar:
- Crear
src/frontend/src/favicon.ico - Verificar referencia en
src/frontend/src/index.html
Capturas de Pantalla
| Archivo | Descripcion |
|---|---|
| 01-error-inicial-carga.png | Error de conexion al servidor (DEF-001) |
| 02-listado-estudiantes.png | Listado de estudiantes funcionando |
| 03-formulario-nuevo-estudiante.png | Formulario de creacion |
| 04-validacion-email-invalido.png | Validacion de email funcionando |
| 05-estudiante-creado.png | Confirmacion de creacion exitosa |
| 06-pagina-inscripcion.png | Pagina de inscripcion |
| 07-mensajes-en-ingles-defecto.png | Mensajes en ingles (DEF-002) |
| 08-maximo-materias-ingles.png | Mensaje maximo materias en ingles |
| 09-error-gramatical-companeros.png | Error "1 companeros" (DEF-003) |
| 10-dialogo-confirmacion-eliminar.png | Dialogo de confirmacion correcto |
| 11-validacion-mensajes-espanol.png | Mensajes traducidos a espanol (DEF-002 VALIDADO) |
| 12-validacion-pluralizacion.png | Pluralizacion corregida (DEF-003 VALIDADO) |
Historial de Cambios
| Fecha | Cambio |
|---|---|
| 2026-01-07 | Creacion del documento |
| 2026-01-07 | DEF-001 identificado y corregido (SQL Server OOM) |
| 2026-01-07 | DEF-002, DEF-003, DEF-004 identificados |
| 2026-01-07 | Soluciones propuestas para todos los defectos |
| 2026-01-08 | DEF-002 corregido (mensajes traducidos a espanol) |
| 2026-01-08 | DEF-003 corregido (pluralizacion "companero/companeros") |
| 2026-01-08 | DEF-004 corregido (favicon SVG agregado) |
| 2026-01-08 | Todas las correcciones validadas con Playwright |



