Home Módulos Validação de Dados: Além do "Campo Obrigatório"
🎯 Técnicas de Teste ⭐ Iniciante 35 minutos

Validação de Dados: Além do "Campo Obrigatório"

Validar se um campo é obrigatório é o básico do básico. Aprenda TODAS as validações que você deveria fazer em cada tipo de campo: texto, número, data, email, telefone e mais.

Introdução

"Validar se o campo é obrigatório? Já fiz."

Se você acha que isso é validação completa, este artigo é para você. Porque validar obrigatoriedade é apenas 5% do trabalho.

Neste artigo, você vai aprender TODAS as validações que deveria fazer em cada tipo de campo. É o guia de referência completo que você vai consultar em todo projeto.

---

1. Campos de Texto

1.1 Limite de Caracteres

Teste:

☐ Mínimo - 1 caractere
☐ Exatamente o mínimo
☐ Meio do intervalo
☐ Exatamente o máximo
☐ Máximo + 1 caractere

Exemplo: Campo aceita 10-100 caracteres

Teste com: 9, 10, 50, 100, 101 caracteres

1.2 Caracteres Especiais

Teste:

☐ Letras (a-z, A-Z)
☐ Números (0-9)
☐ Espaços
☐ Acentos (á, é, í, ó, ú)
☐ Símbolos (@, #, $, %, &)
☐ Emojis (😀, 🚀, ❤️)

Pergunte: Quais são permitidos?

1.3 Espaços

Teste:

☐ Espaço no início: " texto"
☐ Espaço no fim: "texto "
☐ Múltiplos espaços: "texto    texto"
☐ Apenas espaços: "     "

Sistema deve: Trim (remover) ou rejeitar?

1.4 Case Sensitivity

Teste:

☐ MAIÚSCULAS
☐ minúsculas
☐ MiStUrAdO

Pergunte: Faz diferença? Converte automaticamente?

1.5 Encoding

Teste:

☐ UTF-8: áéíóú, ñ, ç
☐ Caracteres especiais: ™, ®, ©
☐ Outros idiomas: 中文, العربية, עברית

---

2. Campos Numéricos

2.1 Tipo de Número

Teste:

☐ Inteiro: 10
☐ Decimal: 10.5
☐ Negativo: -10
☐ Zero: 0
☐ Muito grande: 999999999999

2.2 Casas Decimais

Teste:

☐ 1 casa: 10.5
☐ 2 casas: 10.55
☐ 3 casas: 10.555
☐ 10 casas: 10.5555555555

Sistema deve: Arredondar ou truncar?

2.3 Separadores

Teste:

☐ Vírgula: 1,5
☐ Ponto: 1.5
☐ Ambos: 1.000,50
☐ Nenhum: 1000

Pergunte: Qual formato aceita?

2.4 Notação Científica

Teste:

☐ 1E18
☐ 1e-5
☐ 1.5E10

Sistema aceita?

2.5 Números Especiais

Teste:

☐ Infinity
☐ -Infinity
☐ NaN (Not a Number)

---

3. Campos Monetários

3.1 Formato

Teste:

☐ R$ 1.000,00
☐ 1000.00
☐ 1000
☐ $ 1,000.00

3.2 Casas Decimais

Teste:

☐ Sem decimais: 1000
☐ 1 casa: 1000.5
☐ 2 casas: 1000.50
☐ 3 casas: 1000.555

Esperado: Sempre 2 casas decimais

3.3 Símbolos

Teste:

☐ Cifrão antes: $ 100
☐ Cifrão depois: 100 $
☐ Sem cifrão: 100
☐ Porcentagem: 10%

3.4 Valores Extremos

Teste:

☐ R$ 0,00 (zero)
☐ R$ 0,01 (mínimo)
☐ R$ 999.999.999,99 (muito grande)
☐ R$ -100,00 (negativo - permitido?)

---

4. Campos de Data

4.1 Formato

Teste:

☐ dd/mm/yyyy: 31/12/2024
☐ mm/dd/yyyy: 12/31/2024
☐ yyyy-mm-dd: 2024-12-31
☐ dd-mm-yyyy: 31-12-2024

4.2 Datas Inválidas

Teste:

☐ 31/02/2024 (fevereiro não tem 31)
☐ 32/01/2024 (dia não existe)
☐ 00/00/0000 (zeros)
☐ 99/99/9999 (valores absurdos)

4.3 Anos Bissextos

Teste:

☐ 29/02/2024 (bissexto - válido)
☐ 29/02/2023 (não bissexto - inválido)

4.4 Datas Especiais

Teste:

☐ Data futura (se não permitido)
☐ Data passada (se não permitido)
☐ Data de hoje
☐ 01/01/1900 (data muito antiga)
☐ 31/12/2099 (data muito futura)

4.5 Máscaras

Teste:

☐ Digitar letras (deve bloquear)
☐ Colar texto
☐ Ultrapassar limite

4.6 Copy & Paste

Teste:

☐ Copiar de Excel
☐ Copiar de Word
☐ Copiar de outro sistema

4.7 UTC e Fusos Horários

Teste (se aplicável):

☐ Salvar às 23:59
☐ Salvar às 00:00
☐ Mudar fuso horário

4.8 Calendário (Se houver)

Teste:

☐ Seleção por clique
☐ Navegação entre meses
☐ Navegação entre anos
☐ Atalhos de teclado

4.9 Intervalos

Teste:

☐ Data Início > Data Fim
☐ Data Início = Data Fim
☐ Intervalo muito grande

---

5. Campos de Email

5.1 Formato Válido

Teste:

✅ usuario@dominio.com
✅ usuario.nome@dominio.com
✅ usuario+tag@dominio.com
✅ usuario@subdominio.dominio.com

5.2 Formato Inválido

Teste:

❌ usuario (sem @)
❌ @dominio.com (sem usuário)
❌ usuario@ (sem domínio)
❌ usuario @dominio.com (espaço)
❌ usuario@dominio (sem TLD)

5.3 Caracteres Especiais

Teste:

☐ usuario_nome@dominio.com
☐ usuario-nome@dominio.com
☐ usuario.nome@dominio.com
☐ usuario+tag@dominio.com

5.4 Case Sensitivity

Teste:

☐ USUARIO@DOMINIO.COM
☐ usuario@dominio.com
☐ Usuario@Dominio.Com

Esperado: Email não é case-sensitive

5.5 Espaços

Teste:

❌ " usuario@dominio.com" (espaço antes)
❌ "usuario@dominio.com " (espaço depois)
❌ "usuario @dominio.com" (espaço no meio)

5.6 Domínios Válidos

Teste (opcional):

☐ Verificar se domínio existe (DNS lookup)
☐ usuario@dominioqueexiste.com ✅
☐ usuario@dominioqueNAOexiste.xyz ❌

---

6. Campos de Telefone

6.1 Formato

Teste:

☐ (11) 98765-4321
☐ 11987654321
☐ +55 11 98765-4321
☐ +5511987654321

6.2 Máscaras

Teste:

☐ Digitar letras (deve bloquear)
☐ Colar texto
☐ Formato internacional

6.3 DDI/DDD

Teste:

☐ Com DDI: +55
☐ Sem DDI
☐ DDD válido: 11, 21, 47
☐ DDD inválido: 00, 99

6.4 Quantidade de Dígitos

Teste:

☐ Fixo: (11) 3333-4444 (8 dígitos)
☐ Celular: (11) 98765-4321 (9 dígitos)
☐ Menos dígitos: (11) 9876-432 ❌
☐ Mais dígitos: (11) 98765-43210 ❌

---

7. Campos de CPF/CNPJ

7.1 Formato

Teste:

☐ 123.456.789-00 (com máscara)
☐ 12345678900 (sem máscara)

7.2 Validação de Dígitos Verificadores

Teste:

✅ 123.456.789-09 (válido)
❌ 123.456.789-00 (inválido)

IMPORTANTE: Sistema DEVE validar dígitos!

7.3 CPFs Conhecidos

Teste:

❌ 111.111.111-11
❌ 222.222.222-22
❌ 000.000.000-00
❌ 123.456.789-00

Esperado: Rejeitar CPFs óbvios

7.4 Formatação

Teste:

☐ Sistema aceita sem máscara?
☐ Sistema formata automaticamente?
☐ Sistema salva com ou sem máscara?

---

8. Campos de CEP

8.1 Formato

Teste:

☐ 12345-678 (com hífen)
☐ 12345678 (sem hífen)

8.2 Busca Automática

Teste (se houver):

☐ CEP válido: Preenche endereço
☐ CEP inválido: Mensagem de erro
☐ CEP inexistente: Como trata?

8.3 Validação

Teste:

☐ 00000-000 (zeros)
☐ 99999-999 (noves)
☐ 12345-67 (menos dígitos)
☐ 12345-6789 (mais dígitos)

---

9. Campos de Senha

9.1 Requisitos Mínimos

Teste:

☐ Tamanho mínimo (ex: 8 caracteres)
☐ Letra maiúscula
☐ Letra minúscula
☐ Número
☐ Caractere especial

9.2 Caracteres Especiais

Teste:

☐ @, #, $, %, &
☐ Espaços (permitido?)
☐ Emojis (permitido?)

9.3 Visibilidade

Teste:

☐ Botão mostrar/ocultar funciona
☐ Senha oculta por padrão
☐ Copy/paste funciona

9.4 Confirmação

Teste:

☐ Senhas iguais: Aceita
☐ Senhas diferentes: Rejeita
☐ Mensagem de erro clara

9.5 Senhas Fracas

Teste (se houver validação):

❌ 12345678
❌ password
❌ qwerty
❌ 11111111

---

10. Campos de URL

10.1 Formato

Teste:

✅ https://exemplo.com
✅ http://exemplo.com
✅ https://www.exemplo.com
✅ https://exemplo.com/pagina

10.2 Protocolo

Teste:

☐ Com https://
☐ Com http://
☐ Sem protocolo: exemplo.com
☐ Protocolo inválido: ftp://

10.3 Domínio

Teste:

✅ exemplo.com
✅ sub.exemplo.com
❌ exemplo (sem TLD)
❌ .com (sem domínio)

---

Checklist Universal de Validação

PARA TODOS OS CAMPOS:
☐ Obrigatório vs Opcional
☐ Limite mínimo/máximo
☐ Caracteres permitidos
☐ Formato esperado
☐ Valores padrão
☐ Mensagens de erro claras

TEXTO:
☐ Limites de caracteres
☐ Caracteres especiais
☐ Espaços
☐ Case sensitivity
☐ Encoding (UTF-8)

NUMÉRICO:
☐ Inteiro vs decimal
☐ Casas decimais
☐ Separadores
☐ Negativos
☐ Zero

MONETÁRIO:
☐ Formato
☐ Casas decimais (sempre 2)
☐ Símbolos
☐ Valores extremos

DATA:
☐ Formato
☐ Datas inválidas
☐ Anos bissextos
☐ Fusos horários
☐ Intervalos

EMAIL:
☐ Formato válido
☐ Caracteres especiais
☐ Domínio válido

TELEFONE:
☐ Formato
☐ Máscaras
☐ DDI/DDD
☐ Quantidade de dígitos

CPF/CNPJ:
☐ Formato
☐ Dígitos verificadores
☐ CPFs conhecidos

SENHA:
☐ Requisitos mínimos
☐ Caracteres especiais
☐ Visibilidade
☐ Confirmação

---

Conclusão

Validação de dados não é "marcar checkbox de obrigatório". É garantir que apenas dados válidos entrem no sistema.

Use este guia como referência em TODOS os seus projetos. Imprima. Cole na parede. Consulte sempre.

Lembre-se: Dados inválidos no banco = bugs em produção = problemas sérios.

---

Quer aprender mais sobre testes práticos?

Inscreva-se no canal LiraQuality no YouTube

Tem validações específicas do seu projeto?

Compartilhe no fórum da comunidade

🧪 Exercícios Práticos

Agora é hora de colocar em prática o que você aprendeu!