Skip to content

RT002 - Cadastro de Usuário

Contexto

Validar o fluxo de registro de novos usuários, incluindo validações de campos, confirmação de email e criação bem-sucedida da conta.

Pré-condições

  • [ ] Ambiente de teste disponível
  • [ ] Serviço de email mockado ou acessível
  • [ ] Nenhum usuário cadastrado com os emails de teste

Dados de Teste

CampoValor VálidoDescrição
NomeUsuário TesteNome completo
Emailnovo.usuario.{timestamp}@test.comEmail único
SenhaTest@123Senha válida
ConfirmaçãoTest@123Igual à senha

Casos de Teste

CT001 - Cadastro com dados válidos

Objetivo: Verificar que um novo usuário consegue se cadastrar com sucesso.

Prioridade: Alta | Tipo: Positivo | Smoke: Sim

PassoAçãoResultado Esperado
1Acessar a página /cadastroFormulário de cadastro é exibido
2Preencher nome com Usuário TesteCampo aceita o valor
3Preencher email com email únicoCampo aceita o valor
4Preencher senha com Test@123Campo aceita (com indicador de força)
5Preencher confirmação de senhaCampo aceita o valor
6Marcar checkbox de termos de usoCheckbox marcado
7Clicar em "Cadastrar"Loading é exibido
8Aguardar processamentoMensagem de sucesso

Resultado Esperado Final: Mensagem "Cadastro realizado! Verifique seu email." exibida.


CT002 - Cadastro com email já existente

Objetivo: Verificar tratamento para email duplicado.

Prioridade: Alta | Tipo: Negativo

PassoAçãoResultado Esperado
1Acessar a página /cadastroFormulário exibido
2Preencher com email já cadastrado (user@test.com)Campo aceita
3Preencher demais campos corretamenteCampos aceitos
4Clicar em "Cadastrar"Erro exibido

Resultado Esperado Final: Mensagem "Este email já está cadastrado" exibida.


CT003 - Validação de senha fraca

Objetivo: Verificar que senhas fracas são rejeitadas.

Prioridade: Alta | Tipo: Negativo

PassoAçãoResultado Esperado
1Acessar a página /cadastroFormulário exibido
2Preencher senha com 123456Indicador de força: fraca
3Tentar submeterValidação impede

Resultado Esperado Final: Mensagem indicando requisitos de senha (mínimo 8 caracteres, letra maiúscula, número, caractere especial).


CT004 - Senhas não coincidem

Objetivo: Verificar validação de confirmação de senha.

Prioridade: Média | Tipo: Negativo

PassoAçãoResultado Esperado
1Preencher senha com Test@123Campo aceita
2Preencher confirmação com Test@456Campo aceita
3Clicar fora ou submeterValidação executada

Resultado Esperado Final: Mensagem "As senhas não coincidem" exibida.


CT005 - Termos de uso não aceitos

Objetivo: Verificar obrigatoriedade de aceitar termos.

Prioridade: Média | Tipo: Negativo

PassoAçãoResultado Esperado
1Preencher todos os campos corretamenteCampos preenchidos
2Não marcar checkbox de termosCheckbox desmarcado
3Clicar em "Cadastrar"Validação impede

Resultado Esperado Final: Mensagem "Você deve aceitar os termos de uso" exibida.

Informações para Automação

Seletores

typescript
const selectors = {
  nameInput: '[data-testid="name-input"]',
  emailInput: '[data-testid="email-input"]',
  passwordInput: '[data-testid="password-input"]',
  confirmPasswordInput: '[data-testid="confirm-password-input"]',
  termsCheckbox: '[data-testid="terms-checkbox"]',
  submitButton: '[data-testid="register-button"]',
  successMessage: '[data-testid="success-message"]',
  errorMessage: '[data-testid="error-message"]',
  passwordStrength: '[data-testid="password-strength"]'
}

API Relacionada

POST /api/auth/register
Content-Type: application/json

{
  "name": "Usuário Teste",
  "email": "novo@test.com",
  "password": "Test@123",
  "acceptedTerms": true
}

Response 201:
{
  "message": "Usuário criado com sucesso",
  "userId": 123
}

Response 409:
{
  "error": "EMAIL_EXISTS",
  "message": "Este email já está cadastrado"
}

Exemplo de Código Cypress

typescript
describe('Cadastro', () => {
  beforeEach(() => {
    cy.visit('/cadastro')
  })

  it('CT001 - deve cadastrar novo usuário com sucesso', () => {
    const email = `user.${Date.now()}@test.com`

    cy.get('[data-testid="name-input"]').type('Usuário Teste')
    cy.get('[data-testid="email-input"]').type(email)
    cy.get('[data-testid="password-input"]').type('Test@123')
    cy.get('[data-testid="confirm-password-input"]').type('Test@123')
    cy.get('[data-testid="terms-checkbox"]').check()
    cy.get('[data-testid="register-button"]').click()

    cy.get('[data-testid="success-message"]')
      .should('be.visible')
      .and('contain', 'Cadastro realizado')
  })
})

Referências

  • Requisitos: REQ-REG-001, REQ-REG-002
  • Design: [Link do Figma]

Histórico de Alterações

DataVersãoAutorDescrição
2025-01-291.0QA TeamVersão inicial

Documentação de Testes