Qué estás probando en realidad
Un flujo de verificación tiene varias piezas móviles, y cada una puede romperse por separado. Las buenas pruebas cubren el camino feliz y los caminos de fallo, porque el manejo del fallo es donde se gana o se pierde la confianza del usuario.
- Envío: se genera y despacha un código para un número válido.
- Recepción y verificación: el código correcto se acepta y la sesión se eleva.
- Rechazo: los códigos erróneos, caducados y reutilizados se rechazan.
- Límites: la limitación de tasa y los tiempos de espera de reenvío se comportan según lo diseñado.
- Respaldo: la escalada de canal y los estados de error se renderizan correctamente.
Usa credenciales de prueba y códigos mágicos del proveedor
Cada proveedor importante te da una forma de ejercitar el flujo sin enviar mensajes reales. Twilio tiene credenciales de prueba y números mágicos que simulan éxito y respuestas de fallo específicas; Vonage, Sinch y MessageBird ofrecen modos sandbox y números de prueba. Úsalos en ejecuciones locales y de CI para que tu suite de pruebas nunca toque una operadora real.
- Twilio: credenciales de prueba + números mágicos que fuerzan resultados de éxito/inválido/fallido.
- Otros: claves API de sandbox y números de prueba designados.
- Mantén las credenciales de prueba y de producción en configuraciones de entorno separadas y con nombres claros.
Nunca ejecutes pruebas contra credenciales de producción en CI: un fallo de bucle puede enviar miles de mensajes de pago y hacer que marquen a tu remitente.
Aprovisiona números de prueba que controles
Para pruebas de extremo a extremo que de verdad entreguen un mensaje, aprovisiona números programables que tú poseas como destinatarios de prueba, luego lee de vuelta el código entregado a través de la API de mensajería del proveedor y aliméntalo a tu paso de verificación. Como posees los números y la app, es una prueba de bucle cerrado limpia de tu propio sistema.
- 1
Aprovisiona un número de prueba
Crea un número programable en tu cuenta de proveedor dedicado al entorno de pruebas.
- 2
Dispara tu envío
Llama a tu propio endpoint de registro/verificación para que tu app envíe un código real al número de prueba.
- 3
Lee el código por API
Obtén el mensaje entrante a través de la API del proveedor y extrae el código por programación.
- 4
Completa y verifica la aserción
Envía el código a tu endpoint de verificación y comprueba que la sesión se eleva; luego libera el número.
Automatízalo en CI
Conecta lo anterior a tu pipeline para que la verificación se compruebe en cada build. Usa la vía mock/sandbox para pruebas unitarias y de integración rápidas que corren en cada commit, y reserva la prueba real de bucle cerrado (con números propios) para una etapa nocturna o previa al lanzamiento para controlar el coste.
- Vía rápida: simula el proveedor o usa credenciales de prueba en cada commit.
- Vía lenta: prueba real de envío a número propio de forma nocturna o antes del lanzamiento.
- Verifica también los caminos de fallo: códigos caducados, códigos erróneos y respuestas de límite de tasa.
- Alerta sobre regresiones de latencia de entrega, no solo aprobado/fallido.
Prueba la entregabilidad, no solo la lógica
Las pruebas de lógica demuestran que tu código es correcto; no demuestran que los mensajes lleguen en el mundo real. Envía periódicamente tráfico de prueba real a números en tus operadoras y países clave y mide la tasa de entrega y la latencia reales, para detectar una regresión de enrutamiento o filtrado antes que tus usuarios.
Los problemas de entrega suelen aparecer por país o por operadora. Rota tu monitorización por tu combinación real de destinos; la guía de entregabilidad explica por qué.