04_Unidad4_Pruebas - vhcontre/inventario-2025 GitHub Wiki

✅ Pruebas y Calidad del Software

🎯 Objetivos

  • Comprender la importancia de las pruebas en el desarrollo de software.
  • Conocer los distintos tipos y niveles de pruebas.
  • Aplicar estrategias de testing desde etapas tempranas del proyecto.

🔍 ¿Por qué probar?

El testing permite detectar errores, verificar funcionalidades, y aumentar la confianza en el sistema. Además, mejora la mantenibilidad del código y reduce costos a largo plazo.

🛠️ "No probar es asumir que todo funcionará bien en el primer intento."


🧪 Tipos de pruebas

Tipo Propósito En tu proyecto
Pruebas unitarias Verificar funciones/clases aisladas Métodos del dominio, servicios
Pruebas de integración Verificar interacción entre componentes API + base de datos
Pruebas funcionales Validar requisitos funcionales CRUD, reglas de stock
Pruebas manuales Verificación visual y uso por usuario Vistas web, formularios
Pruebas automatizadas Validación continua sin intervención CI con GitHub Actions

🧬 Estrategia general

La pirámide de testing propone enfocar el esfuerzo así:
🔼 UI Tests (pocos, costosos)
⬆️ Integración (moderado)
⬆️ Unitarios (muchos, rápidos)


🔧 Herramientas

  • pytest — Framework principal para pruebas en Python.
  • httpx y TestClient — Pruebas de endpoints FastAPI.
  • coverage — Medición de cobertura de pruebas.
  • GitHub Actions — Corre pruebas automáticamente en cada push.

📌 Ejemplo simple

def sumar(a, b):
    return a + b

def test_sumar():
    assert sumar(2, 3) == 5

Y para pruebas de API:

from fastapi.testclient import TestClient
from app.main import app

client = TestClient(app)

def test_crear_producto():
    response = client.post("/productos/", json={"nombre": "Mouse", "stock": 10})
    assert response.status_code == 201

🔗 Relación con la planificación

Semana Aplicación concreta
2 Primeras pruebas unitarias en lógica de dominio
3–4 Pruebas sobre CRUD, validaciones y reglas de negocio
5 Endpoints protegidos: pruebas con autenticación
6 Pruebas de integración y cobertura automatizada
9 Pruebas combinadas web + backend

📘 Recursos recomendados


📝 Actividades sugeridas

  • Crear pruebas unitarias para métodos clave del dominio.
  • Agregar al menos un test por endpoint.
  • Configurar GitHub Actions para correr pytest automáticamente.

🧠 Cierre

“No es sólo cuestión de probar si el software funciona, sino si funciona correctamente en todos los casos previstos y ante errores.”