Comece desenhando o ciclo de vida do código
Quando o usuário clica em enviar, o sistema cria o código, registra o prazo de validade, coloca a mensagem na fila e aguarda a validação. Ver apenas a chegada do e-mail prova que uma etapa funcionou, mas não que o código esteja corretamente associado à conta, ao prazo de validade e às regras de uso único.
O registro do teste deve conter pelo menos o e-mail de destino, o horário do disparo, o ID da tarefa, o horário de chegada e o resultado da verificação. Use um endereço de teste isolado; não misture as mensagens com uma caixa de entrada pessoal usada no dia a dia.
Confira a consistência do caminho de sucesso
O código de seis dígitos do e-mail deve corresponder à sessão atual, e o texto sobre o prazo de validade deve seguir as regras do servidor. Depois de copiar e colar, aceite apenas números, sem interpretações incorretas causadas por espaços ou pela formatação da interface.
Após uma verificação bem-sucedida, o fluxo deve abrir a página correta, e o aviso persistente não deve continuar dizendo “código de verificação enviado”. Se o mesmo código for usado novamente, o sistema deve rejeitá-lo ou manter o estado concluído, conforme o contrato do produto; não deve criar uma segunda sessão.
Reenviar não é simplesmente mandar outra mensagem
O botão de reenvio deve compartilhar o mesmo período de espera do primeiro envio, permanecer desativado durante a contagem regressiva e exibir os segundos restantes. Se o usuário voltar para alterar o e-mail, os códigos do endereço antigo e do novo não podem ser usados de forma cruzada.
Defina claramente se o código antigo perde a validade assim que um novo é emitido. Durante o teste, registre a ordem de chegada e o valor do código de cada mensagem para evitar que atrasos de rede façam o e-mail enviado depois chegar primeiro.
Como testar os limites de expiração
A expiração deve ser determinada pelo horário do servidor, não pela alteração do relógio do dispositivo. Envie o código no meio do período de validade, perto do limite e depois dele; verifique se o retorno diferencia claramente código inválido, expirado e limite de tentativas.
Se o e-mail chegar quase no momento da expiração, compare os horários do disparo, da entrada na fila, do envio e do recebimento. Só assim será possível saber se o prazo é curto demais ou se houve um atraso anormal na fila de envio.
Limite de tentativas e e-mail vazio
Um e-mail vazio ou em formato inválido deve interromper o fluxo na primeira etapa, sem enviar o código ao back-end. Ao atingir o limite de solicitações consecutivas, a interface deve informar o problema no idioma do usuário e oferecer uma espera fácil de entender.
Depois que o limite for liberado, um novo envio não pode carregar um token de login antigo nem pular diretamente para a etapa do código por causa de dados deixados por uma sessão anterior. O e-mail pode ser restaurado da sessão, mas o fluxo deve recomeçar no ponto público de autenticação.
Guarde apenas as evidências essenciais do teste
Para registrar um defeito, basta manter a versão do modelo, o ID da tarefa, o horário, o endereço mascarado e a mensagem de erro. Códigos válidos, links completos de login e dados de identidade real não devem permanecer em capturas de tela ou documentos compartilhados.
Após a correção, faça um novo teste usando outro endereço, outro identificador e outro código, para não abrir uma mensagem antiga por engano. Confirme os quatro resultados — sucesso, código antigo, expiração e limite de tentativas — antes de fechar a entrada de teste.
Continue o teste prático
Crie um endereço isolado na página inicial e inclua o identificador exclusivo do caso no assunto do e-mail.