// QA e testes

Como testar seu próprio fluxo de verificação SMS de ponta a ponta

Antes de cada lançamento você precisa da prova de que seu cadastro e fluxo de OTP continua funcionando: que os códigos são enviados, chegam, verificam e rejeitam corretamente. Este guia mostra como testar seu próprio fluxo de verificação usando credenciais de teste de provedores, códigos mágicos, sandboxes e verificações automatizadas em CI, sem enviar spam a telefones reais nem gastar com SMS ao vivo.

O que você está testando de verdade

Um fluxo de verificação tem várias peças móveis, e cada uma pode quebrar separadamente. Bons testes cobrem o caminho feliz e os caminhos de falha, porque o tratamento da falha é onde se ganha ou se perde a confiança do usuário.

  • Envio: um código é gerado e despachado para um número válido.
  • Recepção e verificação: o código correto é aceito e a sessão é elevada.
  • Rejeição: códigos errados, expirados e reutilizados são rejeitados.
  • Limites: a limitação de taxa e os tempos de espera de reenvio se comportam como projetado.
  • Reserva: a escalada de canal e os estados de erro são renderizados corretamente.

Use credenciais de teste e códigos mágicos do provedor

Cada provedor importante te dá uma forma de exercitar o fluxo sem enviar mensagens reais. A Twilio tem credenciais de teste e números mágicos que simulam sucesso e respostas de falha específicas; Vonage, Sinch e MessageBird oferecem modos sandbox e números de teste. Use-os em execuções locais e de CI para que sua suíte de testes nunca toque uma operadora real.

  • Twilio: credenciais de teste + números mágicos que forçam resultados de sucesso/inválido/falho.
  • Outros: chaves de API de sandbox e números de teste designados.
  • Mantenha as credenciais de teste e de produção em configurações de ambiente separadas e com nomes claros.
!

Nunca rode testes contra credenciais de produção em CI: um loop com falha pode enviar milhares de mensagens pagas e fazer marcarem o seu sender.

Provisione números de teste que você controla

Para testes de ponta a ponta que de fato entregam uma mensagem, provisione números programáveis que você possui como destinatários de teste, depois leia de volta o código entregue pela API de mensageria do provedor e alimente-o no seu passo de verificação. Como você possui os números e o app, é um teste de loop fechado limpo do seu próprio sistema.

  1. 1

    Provisione um número de teste

    Crie um número programável na sua conta de provedor dedicado ao ambiente de testes.

  2. 2

    Dispare seu envio

    Chame o seu próprio endpoint de cadastro/verificação para que seu app envie um código real ao número de teste.

  3. 3

    Leia o código por API

    Obtenha a mensagem de entrada pela API do provedor e extraia o código por programação.

  4. 4

    Complete e verifique a asserção

    Envie o código ao seu endpoint de verificação e confira que a sessão é elevada; depois libere o número.

Automatize em CI

Conecte o acima ao seu pipeline para que a verificação seja checada a cada build. Use a via mock/sandbox para testes unitários e de integração rápidos que rodam a cada commit, e reserve o teste real de loop fechado (com números próprios) para uma etapa noturna ou pré-lançamento para controlar o custo.

  • Via rápida: mock do provedor ou credenciais de teste a cada commit.
  • Via lenta: teste real de envio a número próprio de forma noturna ou antes do lançamento.
  • Verifique também os caminhos de falha: códigos expirados, códigos errados e respostas de limite de taxa.
  • Alerte sobre regressões de latência de entrega, não só passou/falhou.

Teste a entregabilidade, não só a lógica

Testes de lógica provam que seu código está correto; não provam que as mensagens chegam no mundo real. Envie periodicamente tráfego de teste real para números nas suas operadoras e países-chave e meça a taxa de entrega e a latência reais, para pegar uma regressão de roteamento ou filtragem antes dos seus usuários.

!

Problemas de entrega costumam aparecer por país ou por operadora. Gire seu monitoramento pela sua combinação real de destinos; o guia de entregabilidade explica por quê.

Perguntas frequentes

Como testo OTP sem enviar SMS reais?+

Use as credenciais de teste e os números mágicos do seu provedor, que simulam respostas de sucesso e falha sem tocar uma operadora. Reserve os envios de mensagens reais para um pequeno teste noturno ou pré-lançamento contra números que você possui, para manter sob controle o custo e a reputação do sender.

Como leio o código OTP em um teste automatizado?+

Provisione um número programável que você possui como destinatário de teste, depois obtenha a mensagem de entrada pela API de mensageria do provedor e extraia o código no seu teste. Como você possui o número e o app, é um teste de loop fechado limpo do seu próprio fluxo.

O que meus testes de verificação devem cobrir?+

Tanto o caminho feliz (o código é enviado, chega, verifica) quanto os caminhos de falha (código errado, código expirado, código reutilizado, limites de taxa e reserva de canal). O tratamento da falha é onde se escondem a maioria dos bugs reais e os riscos de roubo de conta.

A verificação deve rodar em cada build de CI?+

Rode testes rápidos mock/sandbox a cada commit, e programe o teste de entrega real mais lento de forma noturna ou antes do lançamento. Isso te dá cobertura de lógica constante sem pagar por SMS a cada push.

EdgeGigs

Quer testar seu cadastro e fluxo de OTP de ponta a ponta?

Contrate no EdgeGigs um desenvolvedor com mentalidade de QA para criar testes automatizados sobre o seu próprio fluxo de verificação: números de teste, ambientes de sandbox e CI incluídos.

Encontre um desenvolvedor no EdgeGigs