BACKEND · API TESTING

La lógica también debe demostrar su calidad.

Una API conecta las interfaces con las reglas de negocio, los datos y los servicios externos. Verificar su comportamiento permite detectar errores, validar respuestas y reducir riesgos antes de que impacten en la experiencia del usuario.

REFERENCIA INTERACTIVA

Guía de códigos de estado HTTP

Las respuestas HTTP indican cómo procesó el servidor una solicitud. Seleccioná una familia para conocer su significado, sus códigos más habituales y su relación con las pruebas de API.

Perspectiva QA: un código HTTP no determina por sí solo si una prueba fue aprobada. La evaluación depende del resultado esperado. Por ejemplo, HTTP 400 puede ser correcto cuando se verifica el rechazo de datos inválidos.

01. Arquitectura de la API

El backend del portfolio está desarrollado con Node.js y Express. Expone endpoints para comprobar el estado del servicio, registrar visitantes y procesar mensajes de contacto.

Objetivo de QA: comprobar que cada endpoint responda de acuerdo con su propósito y gestione correctamente las solicitudes recibidas.

Explorador de endpoints

Seleccioná un endpoint para ejecutar una prueba real y consultar su respuesta HTTP.

GET /api/health Disponibilidad Estado del servicio
POST /api/visitors Visitantes Validación del registro
POST /api/contact Contacto Validación del mensaje
QA API + Validaciones Integración Rechazo de datos inválidos

Seleccioná una tarjeta y ejecutá la prueba.

02. Validaciones y reglas de negocio

Las validaciones verifican que los datos recibidos cumplan las reglas de negocio antes de procesar una solicitud.

02.1. Registro de visitantes

Comprobá cómo responde la API ante datos obligatorios vacíos, formatos incorrectos y falta de consentimiento.

Seleccioná un caso y ejecutá la prueba.

02.2. Formulario de contacto

Verificá el rechazo de mensajes vacíos, textos que superan el límite permitido y datos de contacto inválidos. Estos casos no deben enviar correos.

Seleccioná un caso y ejecutá la prueba.

Objetivo de QA: confirmar que la API rechace las solicitudes inválidas con respuestas HTTP coherentes y mensajes de error controlados.

03. Persistencia de datos

SQLite almacena los registros de visitantes. Estas pruebas comprueban que los datos válidos se acepten y que las restricciones de integridad impidan registros no autorizados.

03.1. Registro válido

Comprueba que la API acepte un visitante válido y lo almacene en SQLite, devolviendo su identificador.

Resultado esperado: HTTP 201 y un ID entero.

Efecto: crea un registro real en la base de datos.

Esperando ejecución de la prueba.

03.2. Sin consentimiento

Comprueba que la API rechace el registro cuando el visitante no ha otorgado el consentimiento obligatorio.

Resultado esperado: HTTP 400 y errores de validación.

Efecto: no debe crear un registro.

Esperando ejecución de la prueba.

Objetivo de QA: verificar la aceptación de registros válidos y el rechazo de datos que incumplan las reglas de integridad.

04. Pruebas automatizadas

La suite automatizada verifica el comportamiento del backend mediante pruebas de API, validaciones unitarias y operaciones sobre SQLite. Su ejecución permite detectar regresiones y comprobar que los resultados obtenidos coincidan con los esperados.

Objetivo de QA: obtener resultados reproducibles y detectar regresiones durante los cambios del backend.

Resultados de la suite automatizada

Última ejecución verificada: 23/10/2026, mediante npm.cmd test. Se ejecutaron 15 pruebas automatizadas, sin fallos ni omisiones.

Pruebas aprobadas 15 PASS
Pruebas fallidas 0 FAIL
Pruebas omitidas 0 SKIP

Estado de ejecución

15/15 PASS
PASS — 15 aprobadas
FAIL — 0 fallidas
SKIP — 0 omitidas

Distribución por categoría

API e integración 9 · 60 %
Persistencia SQLite 2 · 13,3 %
Validaciones unitarias 4 · 26,7 %

Total: 15 pruebas distribuidas en tres categorías.

Consultar pruebas automatizadas

01. API e integración

backend/tests/api.test.js

Nueve pruebas que verifican las respuestas HTTP, las validaciones de visitantes y el tratamiento de mensajes de contacto.

  1. Disponibilidad de la API.
  2. Registro válido de visitantes.
  3. Rechazo de correo inválido.
  4. Rechazo de teléfono inválido.
  5. Rechazo por falta de consentimiento.
  6. Servicio de correo no configurado.
  7. Envío correcto mediante el servicio de correo.
  8. Rechazo de mensaje vacío.
  9. Gestión de fallos del proveedor SMTP.

02. Persistencia SQLite

backend/tests/database.test.js

Dos pruebas independientes sobre una base de datos temporal en memoria.

  1. Inserción y recuperación de un visitante.
  2. Rechazo de inserción sin consentimiento.

03. Validaciones unitarias

backend/tests/visitor.validator.test.js

Cuatro pruebas que comprueban las reglas de validación de los datos del visitante.

  1. Aceptación de un visitante válido.
  2. Rechazo de correo inválido.
  3. Rechazo de teléfono inválido.
  4. Rechazo por falta de consentimiento.

Resultado: suite completada con 15 pruebas aprobadas, 0 fallidas y 0 omitidas.

Estos datos corresponden a la última ejecución verificada manualmente. Los gráficos son representaciones estáticas: no ejecutan ni actualizan las pruebas automáticamente.