Consistência de campos de identidade é a propriedade que faz um registro de teste valer alguma coisa: os campos precisam combinar entre si e com o país de origem. Um conjunto bonito, com nomes e documentos bem formados, pode estar inteiramente incoerente, e nesse caso ele não testa nada — ele apenas ocupa espaço e produz aprovações falsas. Neste texto, mostramos quais pares de campos costumam se desencontrar e como organizar a conferência.
O que significa um registro coerente
Um registro coerente descreve uma única pessoa plausível. Se o país é o Japão, o nome está na ordem japonesa, o documento segue a estrutura daquele país e o endereço pertence a uma de suas divisões administrativas. O telefone carrega o código do país correspondente. A data de nascimento é compatível com a idade declarada em qualquer outro campo.
Nada disso exige que o dado seja verdadeiro. Um registro sintético é coerente quando as partes do conjunto apontam para o mesmo lugar, mesmo que nenhuma delas corresponda a alguém. A coerência é uma propriedade interna, e é exatamente por isso que ela pode ser verificada por programa.
Quais campos precisam combinar entre si?
Alguns pares se desencontram com tanta frequência que merecem uma lista própria. Em quase toda base de teste desorganizada, pelo menos um destes aparece:
- País e documento. Um número no formato de um país exibido ao lado de outro país é o erro mais comum de todos.
- País e telefone. O código internacional do telefone precisa pertencer ao país do registro, ou a validação do campo passa a mentir.
- País e endereço. A divisão administrativa, o formato do código postal e a estrutura da via dependem do país escolhido.
- Data de nascimento e idade. Se a idade é armazenada, ela precisa ser coerente com a data; se é calculada, precisa ser calculada sempre do mesmo jeito.
- Gênero e nome. Em alguns idiomas, o nome próprio tem forma masculina e feminina, e a combinação precisa fazer sentido.
- Cidade e código postal. O código precisa pertencer à região da cidade informada.
Cada par desses tem uma regra simples por trás. O trabalho está em decidir quem aplica a regra e o que acontece quando ela é violada.
Como dados incoerentes produzem testes que passam por engano?
Esse é o ponto que dá sentido ao assunto. Um teste automatizado verifica se o sistema aceita uma entrada; se a entrada é impossível, o sistema pode aceitá-la por um caminho que nunca existiria com dados reais. O resultado é verde, e a falha permanece escondida até aparecer com um usuário de verdade.
Três exemplos concretos:
- Um formulário valida o telefone apenas pelo comprimento. Com um número de outro país no conjunto, o teste passa sem nunca exercitar a regra de código internacional.
- Uma rotina de cálculo de idade usa a data de nascimento e ignora o campo de idade. Com valores incoerentes, a diferença nunca aparece, porque ninguém compara os dois.
- Um sistema verifica se o código postal pertence ao estado informado, mas o conjunto de teste só tem pares que combinam. A regra existe, funciona e nunca é exercitada.
Em todos os casos, a correção não está no sistema, e sim no conjunto. Um dado de teste incoerente não é um dado mais difícil: é um dado que não corresponde a nenhuma situação possível, e portanto não prova nada.
Tabela de regras por par de campos
| Par de campos | Regra esperada | Efeito de ignorá-la |
|---|---|---|
| País e documento | formato do documento segue o país | validação de formato deixa de ser testada |
| País e telefone | código internacional do país | campo aceita número impossível |
| País e endereço | divisão e código postal do país | formulário passa com endereço inválido |
| Nascimento e idade | idade derivada da data | inconsistência nunca detectada |
| Cidade e código postal | código pertence à região | busca por região retorna lixo |
| Gênero e nome | concordância no idioma local | exibição inadequada em documentos |
Vale notar que as duas primeiras linhas são verificáveis sem consultar nenhuma base externa: basta uma tabela de países com os formatos aceitos. Já as duas últimas exigem dados de referência mais ricos, e é justamente aí que muitos conjuntos param de ser conferidos.
Um registro completo no gerador
No gerador de identidade desta página, os campos de um registro são construídos a partir do mesmo país escolhido, o que resolve a coerência por construção: o documento, o telefone, o endereço e o nome seguem todos a mesma origem. Você escolhe o país, opcionalmente a divisão administrativa, e o conjunto sai com as partes alinhadas.
Isso é útil para montar casos que exercitam a coerência em vez de evitá-la. Vale gerar registros de ao menos dois países diferentes no mesmo conjunto, porque é a mistura que expõe formulários que assumem um formato único. Os dados gerados servem apenas para testes e não podem ser usados para se passar por outra pessoa.
Para quem desenvolve: onde colocar a regra
A pergunta prática não é se a regra de coerência existe, e sim onde ela roda e o que ela faz quando falha.
- Na geração, quando possível. Um gerador que produz registros coerentes elimina a classe inteira de problemas sem escrever nenhuma validação.
- Na validação de entrada, com força graduada. Algumas incoerências merecem bloqueio, como o formato do documento incompatível com o país declarado. Outras merecem apenas aviso, porque existem exceções legítimas, como alguém que mora em um país e mantém telefone de outro.
- Em uma verificação de conjunto, fora do fluxo do usuário. Uma rotina que percorre toda a massa de teste e relata pares incoerentes encontra problemas que ninguém procura caso a caso.
Sobre a ordem das verificações, vale o mesmo princípio da validação de campos isolados: primeiro o formato, depois a coerência. Um documento com letras onde só cabem algarismos não precisa passar pela checagem de país, porque o defeito já foi identificado no passo anterior.
Por fim, um alerta sobre o gerador aleatório. Ele é excelente para variar dados e péssimo para manter relações entre campos, porque cada campo é sorteado de forma independente. Se o seu conjunto é montado assim, a coerência precisa ser conferida depois, com uma rotina própria. O texto sobre dados de identidade em dados fixos de teste mostra como guardar os pares que precisam se manter estáveis.
Próximos passos
Escolha hoje dois pares de campos do seu cadastro e escreva um caso de teste com o par coerente e outro com o par incoerente; o segundo é o que revela se a regra existe de verdade. Para montar os registros, use o gerador de identidade e confira em seguida como dados sintéticos e dados anonimizados se diferenciam quando o assunto é rastrear a origem de cada valor.