Porque criar Testes de Validação de Dados?
- Garantir a confiabilidade no código ou processo
- Garantir que a lógica funciona como o esperado
- Garantir que os usuários finais terão dados precisos para auxiliar a tomada de decisão
- Aumentar as chances de sucesso definidas em conjuntos com a equipe de negócio
- Criar confiança nos tratamentos de dados e nos resultados finais, por parte de toda a equipe
- Auxiliar no processo de documentação de regras de negócio e detalhes importantes para manutenção da lógica
- Reduzir o tempo de investigação de causa raiz de bugs ou erros identificados
- Auditar as alterações
Como criar um bom teste de validação de dados?
De acordo com o dbt, testes de validação de dados devem ser:
- Automatizados, de forma a ser possível repeti-los com pouco esforço
- Rápidos, de forma que o tempo para a sua realização não seja um impedimento
- Confiáveis, de forma que o resultado final confirme se o processo funciona ou não
- Informativos, de forma a oferecer indicações para solucionar o problema de acord com o tipo de erro
- Objetivos, de modo a avaliar apenas uma condição por teste
O que se deve validar com os testes
- Testes na base de dados: o que cada coluna deve conter, granularidade, particularidades de cada tabela
- Testes de como uma base de dados se relaciona com outra: geralmente, se compara uma base de dados modificada com a sua versão mair “crua” possível, de modo a averiguar possíveis problemas de qualidade de dados ou erros em transformações e ligações
- Testes específicos: avaliar condições particulares ao modelo de dados ou ao modelo de negócio
- Testes de atualização dos dados: avaliar a frequência com que os dados são atualizados e se os processos estão a correr com a última versão disponível
Exemplos de Testes para Validação de Dados
- Comparar valores de um modelo em relação a outro modelo de origem
- Comparar a quantidade de linhas entre modelos para garantir que nenhuma linha tenha sido adicionada ou removida
- Avaliar a data/hora de atualização dos dados e, se necessário, notificar o atraso
- Garantir a manutenção de uma lógica particular do negócio. Por exemplo: valor total é a soma de valor do produto e taxas.
- Garantir que determinados pressupostos estão sendo seguidos, aumentando, também, a qualidade de dados. Por exemplo: entradas de dinheiro não podem ter valores negativos; quantidade de artigo em estoque deve ser um número inteiro, etc.
- Avaliar valores nulos e únicos
- Definir valores ou tipos de dados específicos em cada atributo
Quando fazer Testes de Validação de Dados
- Desenvolvimento
Devemos realizar os testes durante o desenvolvimento de um projeto ou alteração de um projeto já existente de modo a garantir que as alterações estão sendo realizadas conforme o esperado. Isso também permite encontrar problemas antes que as alterações estejam no ambiente de produção.
Os testes também são necessários para determinar a causa raiz das falhas existentes. Muitas vezes podemos ir por um caminho que não cobre todas as possibilidade de erro e, com os testes, podemos avistar esses problemas mais facilmente.
- Produção
É possível agendar testes para serem realizados em tempos de espaço determinados ou em momentos específicos, como quando da ingestão de novos dados ou logo após a atualização de processos.
É importante continuar testando os processos para detectar novas falhas que podem ocorrer, seja por erro nos dados, inserção de dados novos ou alteração de alguma lógica. Os testes permitem a equipe detectar problemas de qualidade de dados bem antes que os consumidores finais sejam afetados – ou, pelo menos, alertá-los do problema.
Pingback: Como otimizar a performance de query em banco de dados - Diário de Dados
Pingback: Os melhores memes sobre Qualidade de Dados - Diário de Dados