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
| Campo | Valor Válido | Descrição |
|---|---|---|
| Nome | Usuário Teste | Nome completo |
novo.usuario.{timestamp}@test.com | Email único | |
| Senha | Test@123 | Senha válida |
| Confirmação | Test@123 | Igual à 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
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /cadastro | Formulário de cadastro é exibido |
| 2 | Preencher nome com Usuário Teste | Campo aceita o valor |
| 3 | Preencher email com email único | Campo aceita o valor |
| 4 | Preencher senha com Test@123 | Campo aceita (com indicador de força) |
| 5 | Preencher confirmação de senha | Campo aceita o valor |
| 6 | Marcar checkbox de termos de uso | Checkbox marcado |
| 7 | Clicar em "Cadastrar" | Loading é exibido |
| 8 | Aguardar processamento | Mensagem 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
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /cadastro | Formulário exibido |
| 2 | Preencher com email já cadastrado (user@test.com) | Campo aceita |
| 3 | Preencher demais campos corretamente | Campos aceitos |
| 4 | Clicar 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
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /cadastro | Formulário exibido |
| 2 | Preencher senha com 123456 | Indicador de força: fraca |
| 3 | Tentar submeter | Validaçã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
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Preencher senha com Test@123 | Campo aceita |
| 2 | Preencher confirmação com Test@456 | Campo aceita |
| 3 | Clicar fora ou submeter | Validaçã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
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Preencher todos os campos corretamente | Campos preenchidos |
| 2 | Não marcar checkbox de termos | Checkbox desmarcado |
| 3 | Clicar em "Cadastrar" | Validação impede |
Resultado Esperado Final: Mensagem "Você deve aceitar os termos de uso" exibida.
Informações para Automação
Seletores
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
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
| Data | Versão | Autor | Descrição |
|---|---|---|---|
| 2025-01-29 | 1.0 | QA Team | Versão inicial |