Skip to content

Repository files navigation

Gestor de Tareas - Pruebas Automatizadas con Selenium

Descripción del Proyecto

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

Historias de Usuario

1. H1: Autenticación de Usuario (Login)

  • 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

2. H2: Registro de Usuario

  • 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)

3. H3: Crear Tarea (CREATE)

  • 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)

4. H4: Leer y Listar Tareas (READ)

  • 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

5. H5: Actualizar Tarea (UPDATE)

  • 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

6. H6: Eliminar Tarea (DELETE)

  • Camino Feliz: Eliminación exitosa con confirmación
  • Prueba Negativa: Cancelación de eliminación
  • Prueba de Límites: Eliminación múltiple

7. H7: Marcar Tarea como Completada

  • 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

Estructura del Proyecto

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

Instalación

  1. Requisitos previos:

    • Node.js (versión 14 o superior)
    • npm o yarn
    • Chrome o Chromium instalado
  2. Instalación de dependencias:

    npm install

Ejecución de Pruebas

Ejecutar todas las pruebas

npm test

Ejecutar pruebas específicas

# 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:completar

Usuarios de Prueba

Para acceder a la aplicación, utiliza estos usuarios:

  1. Usuario Principal

    • Email: usuario@example.com
    • Contraseña: Paso1234
  2. Usuario Secundario

    • Email: test@test.com
    • Contraseña: Test1234

También puedes registrar nuevos usuarios durante las pruebas.

Validaciones Implementadas

Login

  • Email debe ser válido (formato: usuario@dominio.com)
  • Contraseña es obligatoria
  • Validación de credenciales

Registro

  • Email válido requerido
  • Contraseña entre 6 y 20 caracteres
  • Email no puede estar duplicado

Crear/Actualizar Tarea

  • Título: obligatorio, 3-100 caracteres
  • Descripción: opcional, máximo 500 caracteres
  • Prioridad: Alta, Media, Baja (por defecto)
  • Estado: Pendiente, En Progreso, Completada

Tipos de Pruebas Implementadas

Camino Feliz (Happy Path)

Verifica que la funcionalidad funcione correctamente con datos válidos.

Pruebas Negativas

Verifica que la aplicación rechace datos inválidos correctamente.

Pruebas de Límites (Boundary Tests)

Verifica los límites de validación (caracteres mínimos, máximos, límites exactos).

Características de la Aplicación

  • ✅ 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

Notas Importantes

  1. Los datos se almacenan localmente usando localStorage
  2. Cada usuario tiene su propio conjunto de tareas
  3. Las pruebas pueden ejecutarse de forma independiente
  4. Los reportes se generan en la carpeta tests/reports/

Herramientas Utilizadas

  • WebdriverIO: Framework de pruebas para Selenium
  • Mocha: Framework de testing
  • Chai: Librería de assertions
  • Chromedriver: Driver para Chrome

Autor

Estudiante de Programación III

Licencia

ISC

🚀 Quick Start - Gestor de Tareas con Selenium

Inicio Rápido (5 minutos)

1️⃣ Instalación

npm install

2️⃣ Ejecutar las pruebas

npm test

3️⃣ Ver resultados

  • Consola: Muestra resumen de pruebas
  • Reporte: tests/reports/results.xml

📁 Estructura del Proyecto

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

🎯 Usuarios de Prueba

Email Contraseña Uso
usuario@example.com Paso1234 Principal
test@test.com Test1234 Secundario

O puedes registrar nuevos usuarios durante las pruebas.


🧪 Ejecutar Pruebas Específicas

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

📊 Cobertura de Pruebas

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

🔧 Herramientas

  • WebdriverIO - Selenium automation framework
  • Mocha - Test framework
  • Chai - Assertion library
  • Chrome Driver - Browser automation
  • Node.js - Runtime environment

🚨 Troubleshooting

Chrome no se abre

# Actualiza chromedriver
npm install --save-dev chromedriver@latest

Puerto 5000 ocupado

# En Windows:
netstat -ano | findstr :5000
taskkill /PID [PID] /F

Tests se cuelgan

  • Aumenta timeout en wdio.conf.js de 60000 a 90000
  • Cierra otras aplicaciones
  • Reinicia Chrome

📋 Funcionalidades Implementadas

✅ 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


📖 Documentación

  • 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)

💡 Tips

  1. Necesitas depurar un test?

    await browser.pause(3000); // Pausa de 3 segundos
    await browser.debug();      // REPL interactivo
  2. Ver capturas de pantalla:

    await browser.saveScreenshot('./debug.png');
  3. Ejecutar un único test:

    npx wdio run wdio.conf.js --spec tests/specs/01-login.spec.js
  4. Ver logs detallados:

    • Edita wdio.conf.js → cambiar logLevel a 'debug'

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages