Módulo 03: Gestión de Pruebas con TestLink

Objetivos del módulo

  • Comprender qué es TestLink y su rol en la gestión de pruebas
  • Instalar y configurar TestLink
  • Crear proyectos, planes de prueba y casos de prueba
  • Ejecutar pruebas y generar informes
  • Integrar TestLink con Jira

TestLink es una herramienta open source para la gestión de casos de prueba. Permite planificar, organizar y hacer seguimiento de las pruebas.

Característica Descripción
Open source Gratuito (PHP + MySQL)
Gestión centralizada Todos los casos de prueba en un lugar
Planes de prueba Organizar ejecuciones por versión/sprint
Resultados Registrar pass/fail/blocked con evidencia
Reportes Informes de ejecución, métricas de cobertura
Integraciones Jira, Redmine, Mantis para enlazar bugs
Herramienta Tipo Coste
TestLink Open source Gratis
TestRail Comercial De pago
Zephyr Plugin Jira De pago
qTest Comercial De pago
Xray Plugin Jira De pago

2. Instalación

Opción 1: Docker (recomendada)

# Crear red Docker
docker network create testlink-net

# Base de datos MariaDB
docker run -d --name mariadb \
  --network testlink-net \
  -e MARIADB_ROOT_PASSWORD=root123 \
  -e MARIADB_DATABASE=testlink \
  -e MARIADB_USER=testlink \
  -e MARIADB_PASSWORD=testlink123 \
  mariadb:10

# TestLink
docker run -d --name testlink \
  --network testlink-net \
  -p 8080:8080 \
  -e TESTLINK_DATABASE_HOST=mariadb \
  -e TESTLINK_DATABASE_NAME=testlink \
  -e TESTLINK_DATABASE_USER=testlink \
  -e TESTLINK_DATABASE_PASSWORD=testlink123 \
  bitnami/testlink:latest

Accede a http://localhost:8080 → Usuario: user / Contraseña: bitnami

Opción 2: XAMPP (alternativa manual)

  1. Instala XAMPP (Apache + MySQL + PHP)
  2. Descarga TestLink de testlink.org
  3. Extrae en xampp/htdocs/testlink/
  4. Inicia Apache y MySQL desde XAMPP
  5. Accede a http://localhost/testlink/install/
  6. Sigue el asistente de instalación

3. Conceptos clave

graph TD
    P[Proyecto de prueba] --> TP1[Plan de prueba 1<br/>v1.0]
    P --> TP2[Plan de prueba 2<br/>v2.0]
    P --> TS[Test Suite<br/>Carpeta]
    TS --> TC1[Caso de prueba 1]
    TS --> TC2[Caso de prueba 2]
    TS --> TC3[Caso de prueba 3]
    TP1 --> B1[Build 1.0.0]
    TP1 --> B2[Build 1.0.1]
    style P fill:#9C27B0,color:white
    style TP1 fill:#2196F3,color:white
    style TS fill:#FF9800,color:white
    style TC1 fill:#4CAF50,color:white
Concepto Descripción
Test Project El proyecto principal (ej: “Mi Aplicación”)
Test Suite Carpeta para organizar casos (ej: “Login”, “Pagos”)
Test Case Un caso de prueba individual con pasos
Test Plan Plan para una versión/sprint con casos asignados
Build Versión específica que se está probando
Execution La ejecución real de un caso: Pass, Fail, Blocked

4. Crear un proyecto de prueba

Paso 1: Crear el Test Project

  1. Menú Test Project ManagementCreate
  2. Nombre: Tienda Online
  3. Prefijo: TO
  4. Descripción: Pruebas de la aplicación de tienda online
  5. Opciones: ✅ Enable Requirements, ✅ Enable Testing Priority

Paso 2: Crear Test Suites

Organiza los casos por funcionalidad:

Tienda Online (Proyecto)
├── 📁 Autenticación
│   ├── 📁 Login
│   └── 📁 Registro
├── 📁 Catálogo
│   ├── 📁 Búsqueda
│   └── 📁 Filtros
├── 📁 Carrito
│   ├── 📁 Añadir productos
│   └── 📁 Checkout
└── 📁 Administración
    ├── 📁 Gestión de productos
    └── 📁 Gestión de usuarios

5. Escribir casos de prueba

Estructura de un caso de prueba

Campo Descripción
ID Generado automáticamente (TO-1, TO-2…)
Título Nombre descriptivo y único
Resumen Descripción breve del objetivo
Precondiciones Condiciones previas necesarias
Pasos Acciones numeradas
Resultado esperado Qué debe pasar en cada paso
Prioridad Alta, Media, Baja
Tipo de ejecución Manual o Automatizado

Ejemplo: Caso de prueba para Login

ID: TO-1
Título: Login exitoso con credenciales válidas
Suite: Autenticación > Login
Prioridad: Alta
Tipo: Manual

Precondiciones:
  - Usuario registrado: test@mail.com / Password123!
  - Navegador Chrome actualizado
  - Aplicación en http://localhost:3000

Pasos:
┌─────┬──────────────────────────────────────┬──────────────────────────────────────┐
│ # │ Acción                                │ Resultado esperado                    │
├─────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ 1   │ Abrir http://localhost:3000/login    │ Se muestra el formulario de login    │
│ 2   │ Escribir "test@mail.com" en email    │ El campo muestra el email            │
│ 3   │ Escribir "Password123!" en password  │ El campo muestra puntos/asteriscos   │
│ 4   │ Hacer clic en "Iniciar sesión"       │ Redirección al dashboard             │
│ 5   │ Verificar la URL                     │ URL = /dashboard                     │
│ 6   │ Verificar mensaje de bienvenida      │ Se muestra "Bienvenido, test"        │
└─────┴──────────────────────────────────────┴──────────────────────────────────────┘

Ejemplo: Caso negativo

ID: TO-2
Título: Login fallido con contraseña incorrecta
Suite: Autenticación > Login
Prioridad: Alta

Precondiciones:
  - Usuario registrado: test@mail.com / Password123!

Pasos:
┌─────┬──────────────────────────────────────┬──────────────────────────────────────┐
│ #   │ Acción                               │ Resultado esperado                   │
├─────┼──────────────────────────────────────┼──────────────────────────────────────┤
│ 1   │ Abrir /login                         │ Formulario visible                   │
│ 2   │ Escribir "test@mail.com" en email    │ Campo con email                      │
│ 3   │ Escribir "incorrecta" en password    │ Campo con puntos                     │
│ 4   │ Clic en "Iniciar sesión"             │ Mensaje "Credenciales incorrectas"   │
│ 5   │ Verificar que sigue en /login        │ URL = /login                         │
│ 6   │ Verificar intentos restantes         │ "4 intentos restantes"               │
└─────┴──────────────────────────────────────┴──────────────────────────────────────┘

Buenas prácticas para casos de prueba

Práctica Ejemplo
Un caso = un escenario No mezclar login exitoso y fallido
Pasos claros y concretos “Escribir ‘test@mail.com’” no “Escribir un email”
Resultado esperado verificable “URL = /dashboard” no “Funciona bien”
Independientes Cada caso funciona sin depender de otro
Datos concretos Usar valores reales, no “un email válido”
Precondiciones explícitas Qué debe existir antes de empezar

6. Planes de prueba

Crear un plan de prueba

  1. Menú Test Plan ManagementCreate
  2. Nombre: Plan v1.0 — Sprint 1
  3. Descripción: Pruebas de funcionalidad básica: login, registro, catálogo
  4. Activo: ✅

Asignar casos al plan

  1. Ir al plan → Add/Remove Test Cases
  2. Seleccionar las test suites y casos relevantes
  3. Asignar tester a cada caso

Crear builds

Plan: v1.0 — Sprint 1
  Build 1.0.0 (2024-01-15) — Primera versión
  Build 1.0.1 (2024-01-22) — Corrección de bugs login
  Build 1.0.2 (2024-01-29) — Correcciones finales

7. Ejecución de pruebas

Proceso de ejecución

  1. Ir a Execute Tests
  2. Seleccionar el plan y el build
  3. Para cada caso:
    • Leer los pasos
    • Ejecutar en la aplicación
    • Marcar resultado: Pass ✅, Fail ❌, Blocked 🚫
    • Añadir notas o evidencia

Estados de ejecución

Estado Significado Cuándo usar
Passed Funciona correctamente Todos los pasos dan el resultado esperado
Failed Hay un defecto Algún paso no da el resultado esperado
🚫 Blocked No se puede ejecutar Problema de entorno o dependencia
Not Run Sin ejecutar Pendiente de ejecución

Al reportar un Fail

  1. Marcar como Failed
  2. Indicar en qué paso falló
  3. Describir el resultado actual
  4. Adjuntar captura de pantalla
  5. Crear un bug en Jira y enlazarlo

8. Reportes

Reporte Información
Test Report Resumen general de ejecución
Metrics Porcentaje de pass/fail/blocked
Requirements Coverage Cobertura de requisitos por pruebas
Platform Report Resultados por plataforma (Chrome, Firefox)

Ejemplo de métricas

Plan: v1.0 — Sprint 1
Build: 1.0.2

Total de casos: 45
  ✅ Passed:  38 (84.4%)
  ❌ Failed:   4 (8.9%)
  🚫 Blocked:  1 (2.2%)
  ⬜ Not Run:  2 (4.4%)

Bugs encontrados: 4
  Críticos: 1
  Mayores:  2
  Menores:  1

Criterios de salida

Define cuándo considerar que las pruebas están “suficientes”:

Criterios de salida:
  ✅ 100% de casos ejecutados
  ✅ ≥ 95% de casos pasados
  ✅ 0 bugs críticos abiertos
  ✅ ≤ 2 bugs mayores abiertos (con workaround)
  ✅ Pruebas de regresión pasadas

9. Integración con Jira

Configurar la integración

  1. En TestLink: SystemIssue Tracker Management
  2. Tipo: JIRA (REST interface)
  3. Configurar:
    • URL: https://tu-empresa.atlassian.net
    • Credenciales de API (API Token)
    • Proyecto Jira asociado

Flujo integrado

graph LR
    A[Caso falla<br/>en TestLink] --> B[Crear bug<br/>en Jira]
    B --> C[Dev corrige<br/>el bug]
    C --> D[QA re-ejecuta<br/>en TestLink]
    D --> E{¿Pasa?}
    E -->|Sí| F[Cerrar bug<br/>en Jira]
    E -->|No| B
    style A fill:#f44336,color:white
    style F fill:#4CAF50,color:white

10. Ejercicios prácticos

Ejercicio 1: Diseñar test suites

Para una aplicación de gestión de tareas (tipo Trello), diseña la estructura de test suites (carpetas):

  • Al menos 4 suites principales
  • Al menos 2 sub-suites por suite

Ejercicio 2: Escribir casos de prueba

Escribe 5 casos de prueba completos para la funcionalidad de crear una tarea en la app del ejercicio 1. Incluye: positivo, negativo, límites, campos vacíos.

Ejercicio 3: Plan de pruebas

Crea un plan de pruebas (en documento) para el Sprint 1, que incluya:

  • Alcance (qué se prueba y qué no)
  • Criterios de entrada y salida
  • Riesgos
  • Calendario

Instala TestLink con Docker, crea un proyecto y añade los casos del ejercicio 2.


Resumen

Concepto Descripción
TestLink Herramienta open source para gestión de pruebas
Test Suite Carpeta de organización de casos
Test Case Pasos + resultado esperado para verificar un escenario
Test Plan Planificación de ejecución para una versión
Build Versión específica a probar
Ejecución Pass / Fail / Blocked por cada caso
Reportes Métricas de cobertura y resultados