Esta es una aplicación web CRUD (Create, Read, Update, Delete) funcional que permite a los usuarios gestionar tareas. La aplicación incluye:
- Autenticación: Sistema de login y registro de usuarios
- CRUD Completo: Crear, leer, actualizar y eliminar tareas
- Funcionalidades Adicionales:
- Marcar tareas como completadas
- Buscar tareas
- Cambiar prioridad
- Cambiar estado de tareas
- Camino Feliz: Login exitoso con credenciales válidas
- Prueba Negativa: Error con credenciales incorrectas o campos vacíos
- Prueba de Límites: Validación de formato de email
- Camino Feliz: Registro exitoso de nuevo usuario
- Prueba Negativa: Rechazo con datos inválidos o email duplicado
- Prueba de Límites: Validación de longitud de contraseña (6-20 caracteres)
- Camino Feliz: Creación exitosa con datos válidos
- Prueba Negativa: Rechazo con título vacío o descripción muy larga
- Prueba de Límites: Validación de caracteres (mín 3 para título, máx 100; máx 500 para descripción)
- Camino Feliz: Listar tareas con todos sus atributos
- Prueba Negativa: Mostrar mensaje cuando no hay tareas
- Prueba de Búsqueda: Filtrar tareas por término
- Camino Feliz: Actualizar título, descripción, prioridad o estado
- Prueba Negativa: Validación de datos al editar
- Prueba de Límites: Restricciones de caracteres durante edición
- Camino Feliz: Eliminación exitosa con confirmación
- Prueba Negativa: Cancelación de eliminación
- Prueba de Límites: Eliminación múltiple
- Camino Feliz: Marcar y desmarcar tareas como completadas
- Prueba Negativa: Comportamiento con múltiples tareas
- Prueba de Límites: Ciclo completo de estados de tarea
Gitflow/
├── public/ # Archivos de la aplicación web
│ ├── index.html # Página principal
│ ├── css/
│ │ └── style.css # Estilos
│ └── js/
│ └── app.js # Lógica de la aplicación
├── tests/
│ ├── specs/ # Tests automatizados
│ │ ├── 01-login.spec.js
│ │ ├── 02-registro.spec.js
│ │ ├── 03-crear-tarea.spec.js
│ │ ├── 04-leer-tareas.spec.js
│ │ ├── 05-actualizar-tarea.spec.js
│ │ ├── 06-eliminar-tarea.spec.js
│ │ └── 07-completar-tarea.spec.js
│ └── reports/ # Reportes de pruebas
├── wdio.conf.js # Configuración de WebdriverIO
└── package.json # Dependencias del proyecto
-
Requisitos previos:
- Node.js (versión 14 o superior)
- npm o yarn
- Chrome o Chromium instalado
-
Instalación de dependencias:
npm install
npm test# Solo Login
npm run test:login
# Solo Registro
npm run test:registro
# Solo Crear Tarea
npm run test:crear
# Solo Leer Tareas
npm run test:leer
# Solo Actualizar Tarea
npm run test:actualizar
# Solo Eliminar Tarea
npm run test:eliminar
# Solo Completar Tarea
npm run test:completarPara acceder a la aplicación, utiliza estos usuarios:
-
Usuario Principal
- Email:
usuario@example.com - Contraseña:
Paso1234
- Email:
-
Usuario Secundario
- Email:
test@test.com - Contraseña:
Test1234
- Email:
También puedes registrar nuevos usuarios durante las pruebas.
- Email debe ser válido (formato: usuario@dominio.com)
- Contraseña es obligatoria
- Validación de credenciales
- Email válido requerido
- Contraseña entre 6 y 20 caracteres
- Email no puede estar duplicado
- Título: obligatorio, 3-100 caracteres
- Descripción: opcional, máximo 500 caracteres
- Prioridad: Alta, Media, Baja (por defecto)
- Estado: Pendiente, En Progreso, Completada
Verifica que la funcionalidad funcione correctamente con datos válidos.
Verifica que la aplicación rechace datos inválidos correctamente.
Verifica los límites de validación (caracteres mínimos, máximos, límites exactos).
- ✅ Persistencia de datos con localStorage
- ✅ Autenticación básica
- ✅ CRUD completo
- ✅ Búsqueda y filtrado
- ✅ Cambio de estados
- ✅ Interfaz responsiva
- ✅ Validación de formularios
- ✅ Modal para edición
- ✅ Confirmación antes de eliminar
- Los datos se almacenan localmente usando localStorage
- Cada usuario tiene su propio conjunto de tareas
- Las pruebas pueden ejecutarse de forma independiente
- Los reportes se generan en la carpeta
tests/reports/
- WebdriverIO: Framework de pruebas para Selenium
- Mocha: Framework de testing
- Chai: Librería de assertions
- Chromedriver: Driver para Chrome
Estudiante de Programación III
ISC
npm installnpm test- Consola: Muestra resumen de pruebas
- Reporte:
tests/reports/results.xml
Gitflow/
│
├── public/ # 🌐 Aplicación Web
│ ├── index.html # Página principal
│ ├── css/style.css # Estilos
│ └── js/app.js # Lógica
│
├── tests/ # 🧪 Pruebas Selenium
│ ├── specs/
│ │ ├── 01-login.spec.js # H1: Login
│ │ ├── 02-registro.spec.js # H2: Registro
│ │ ├── 03-crear-tarea.spec.js # H3: Create
│ │ ├── 04-leer-tareas.spec.js # H4: Read
│ │ ├── 05-actualizar-tarea.spec.js # H5: Update
│ │ ├── 06-eliminar-tarea.spec.js # H6: Delete
│ │ └── 07-completar-tarea.spec.js # H7: Complete
│ └── reports/
│ └── results.xml # 📊 Reporte
│
├── node_modules/ # 📦 Dependencias
├── package.json # Configuración npm
├── wdio.conf.js # ⚙️ Config WebdriverIO
├── server.js # 🔧 Servidor HTTP
├── README.md # 📖 Documentación completa
├── HISTORIAS_USUARIO.md # 📋 Criterios de aceptación
└── GUIA_EJECUCION.md # 📚 Guía detallada
| Contraseña | Uso | |
|---|---|---|
| usuario@example.com | Paso1234 | Principal |
| test@test.com | Test1234 | Secundario |
O puedes registrar nuevos usuarios durante las pruebas.
npm run test:login # Pruebas de autenticación
npm run test:registro # Pruebas de registro
npm run test:crear # Pruebas de crear tareas
npm run test:leer # Pruebas de listar tareas
npm run test:actualizar # Pruebas de editar tareas
npm run test:eliminar # Pruebas de eliminar tareas
npm run test:completar # Pruebas de marcar completada| Historia | Casos | Tipos |
|---|---|---|
| Login | 8 | Feliz, Negativa, Límites |
| Registro | 8 | Feliz, Negativa, Límites |
| Crear Tarea | 9 | Feliz, Negativa, Límites |
| Leer Tareas | 9 | Feliz, Negativa, Búsqueda |
| Actualizar | 9 | Feliz, Negativa, Límites |
| Eliminar | 9 | Feliz, Negativa, Límites |
| Completar | 10 | Feliz, Negativa, Límites |
| TOTAL | 62 | Cobertura completa |
- ✅ WebdriverIO - Selenium automation framework
- ✅ Mocha - Test framework
- ✅ Chai - Assertion library
- ✅ Chrome Driver - Browser automation
- ✅ Node.js - Runtime environment
# Actualiza chromedriver
npm install --save-dev chromedriver@latest# En Windows:
netstat -ano | findstr :5000
taskkill /PID [PID] /F- Aumenta timeout en
wdio.conf.jsde 60000 a 90000 - Cierra otras aplicaciones
- Reinicia Chrome
✅ Login/Registro de usuarios
✅ CRUD completo de tareas
✅ Búsqueda y filtrado
✅ Cambio de estados
✅ Persistencia con localStorage
✅ Validaciones exhaustivas
✅ Interfaz responsiva
✅ Pruebas de 7 historias
✅ 62 casos de prueba
✅ Cobertura feliz + negativa + límites
- README.md - Descripción general del proyecto
- HISTORIAS_USUARIO.md - Criterios de aceptación por historia
- GUIA_EJECUCION.md - Instrucciones detalladas y troubleshooting
- QUICK_START.md - Este archivo (inicio rápido)
-
Necesitas depurar un test?
await browser.pause(3000); // Pausa de 3 segundos await browser.debug(); // REPL interactivo
-
Ver capturas de pantalla:
await browser.saveScreenshot('./debug.png');
-
Ejecutar un único test:
npx wdio run wdio.conf.js --spec tests/specs/01-login.spec.js
-
Ver logs detallados:
- Edita
wdio.conf.js→ cambiarlogLevela'debug'
- Edita