Tutorial de teste ETL

O que é o teste ETL?

O teste ETL é feito para garantir que os dados que foram carregados de uma origem para o destino após a transformação do negócio sejam precisos. Também envolve a verificação de dados em vários estágios intermediários que estão sendo usados ​​entre a origem e o destino. ETL significa Extrair-Transformar-Carregar.

Teste ETL

Teste de Data Warehouse

Teste de Data Warehouse é um método de teste no qual os dados dentro de um data warehouse são testados quanto à integridade, confiabilidade, precisão e consistência para estar em conformidade com a estrutura de dados da empresa. O principal objetivo dos testes de data warehouse é garantir que os dados integrados dentro do data warehouse sejam confiáveis ​​o suficiente para que uma empresa possa tomar decisões.

O que é ETL?

ETL significa Extract-Transform-Load e é um processo de como os dados são carregados do sistema de origem para o data warehouse. Os dados são extraídos de um banco de dados OLTP, transformados para corresponder ao esquema do data warehouse e carregados no banco de dados do data warehouse. Muitos data warehouses também incorporam dados de sistemas não OLTP, como arquivos de texto, sistemas legados e planilhas.

Vamos ver como funciona

Por exemplo, existe uma loja de varejo que possui diferentes departamentos como vendas, marketing, logística, etc. Cada um deles lida com as informações do cliente de forma independente e a forma como armazenam esses dados é bem diferente. O departamento de vendas armazenou-o pelo nome do cliente, enquanto o departamento de marketing pelo ID do cliente.

Agora se quiserem verificar o histórico do cliente e saber quais os diferentes produtos que ele comprouwing para diferentes campanhas de marketing; seria muito tedioso.

A solução é usar um datawarehouse armazenar informações de diferentes fontes em uma estrutura uniforme usando ETL. O ETL pode transformar conjuntos de dados diferentes em uma estrutura unificada. Posteriormente, use ferramentas de BI para obter insights e relatórios significativos a partir desses dados.

O seguintewing O diagrama neste tutorial de teste de ETL fornece o ROAD MAP do fluxo do processo de teste de ETL e vários conceitos de teste de ETL:

Extrair-Transformar-Carregar

  1. Extrair
  • Extraia dados relevantes
  1. Transformar
  • Transforme dados para o formato DW (Data Warehouse)
  • Chaves de construção – Uma chave é um ou mais atributos de dados que identificam exclusivamente uma entidade. Vários tipos de chaves são chave primária, chave alternativa, chave estrangeira, chave composta, chave substituta. O datawarehouse possui essas chaves e nunca permite que qualquer outra entidade as atribua.
  • Limpeza de dados: Após a extração dos dados, passará para a próxima fase, de limpeza e conformação de dados. A limpeza faz a omissão dos dados, além de identificar e corrigir os erros. Conformidade significa resolver os conflitos entre os dados que são incompatíveis, para que possam ser usados ​​em um data warehouse corporativo. Além disso, este sistema cria metadados que são usados ​​para diagnosticar problemas do sistema de origem e melhorar a qualidade dos dados.
  1. Ver
  • Carregar dados em DW (Data Warehouse)
  • Construir agregados – Criar um agregado é resumir e armazenar dados que estão disponíveis em tabela de fatos para melhorar o desempenho das consultas do usuário final.

Processo de teste ETL

Semelhante a outros processos de teste, o ETL também passa por diferentes fases. As diferentes fases do processo de teste ETL são as seguintes

Processo de teste ETL

O teste ETL é realizado em cinco etapas

  1. Identificando fontes de dados e requisitos
  2. A aquisição de dados
  3. Implementar lógicas de negócios e modelagem dimensional
  4. Construir e preencher dados
  5. Criar relatórios

Processo de teste ETL

Tipos de teste ETL

Tipos de teste Processo de Teste
Teste de validação de produção “Balanceamento de tabela” ou “reconciliação de produção”, este tipo de teste ETL é feito nos dados à medida que são transferidos para os sistemas de produção. Para apoiar a sua decisão comercial, os dados nos seus sistemas de produção devem estar na ordem correta. informática A opção de validação de dados fornece recursos de automação e gerenciamento de testes ETL para garantir que os sistemas de produção não sejam comprometidos pelos dados.
Teste de origem para destino (teste de validação) Esse tipo de teste é realizado para validar se os valores dos dados transformados são os valores esperados dos dados.
Atualizações de aplicativos Esse tipo de teste ETL pode ser gerado automaticamente, economizando tempo substancial de desenvolvimento de teste. Este tipo de teste verifica se os dados extraídos de um aplicativo ou repositório antigo são exatamente iguais aos dados de um repositório ou aplicativo novo.
Teste de metadados O teste de metadados inclui testes de verificação de tipo de dados, verificação de comprimento de dados e verificação de índice/restrição.
Teste de integridade de dados Para verificar se todos os dados esperados são carregados no destino a partir da origem, é feito um teste de integridade dos dados. Alguns dos testes que podem ser executados são comparar e validar contagens, agregações e dados reais entre a origem e o destino para colunas com transformação simples ou sem transformação.
Teste de precisão de dados Esse teste é feito para garantir que os dados sejam carregados e transformados com precisão conforme o esperado.
Teste de transformação de dados O teste de transformação de dados é feito porque em muitos casos não pode ser alcançado escrevendo uma fonte SQL consulta e comparando a saída com o destino. Pode ser necessário executar diversas consultas SQL para cada linha para verificar as regras de transformação.
Teste de qualidade de dados Os testes de qualidade de dados incluem testes de sintaxe e referência. Para evitar qualquer erro devido à data ou número do pedido durante o processo de negócios, são realizados testes de qualidade de dados.

Testes de sintaxe: relatará dados sujos, com base em caracteres inválidos, padrão de caracteres, ordem incorreta de letras maiúsculas ou minúsculas, etc.

Testes de Referência: Irá verificar os dados de acordo com o modelo de dados. Por exemplo: ID do cliente

O teste de qualidade de dados inclui verificação de número, verificação de data, verificação de precisão, verificação de dados, verificação de nulos, etc.

Teste ETL incremental Este teste é feito para verificar a integridade dos dados antigos e novos com a adição de novos dados. O teste incremental verifica se as inserções e atualizações estão sendo processadas conforme esperado durante o processo ETL incremental.
Teste de GUI/Navegação Este teste é feito para verificar os aspectos de navegação ou GUI dos relatórios de front-end.

Como criar um caso de teste ETL

O teste ETL é um conceito que pode ser aplicado a diferentes ferramentas e bancos de dados na indústria de gerenciamento de informações. O objetivo dos testes ETL é garantir que os dados que foram carregados da origem ao destino após a transformação do negócio sejam precisos. Também envolve a verificação de dados em vários estágios intermediários que estão sendo usados ​​entre a origem e o destino.

Ao realizar testes de ETL, dois documentos que sempre serão usados ​​por um testador de ETL são:

  1. Folhas de mapeamento ETL:Uma planilha de mapeamento ETL contém todas as informações das tabelas de origem e destino, incluindo cada coluna e sua consulta em tabelas de referência. Os testadores de ETL precisam estar confortáveis ​​com consultas SQL, pois os testes de ETL podem envolver a gravação de grandes consultas com múltiplas junções para validar dados em qualquer estágio do ETL. As folhas de mapeamento ETL fornecem uma ajuda significativa ao escrever consultas para verificação de dados.
  2. Esquema de banco de dados de origem, destino: Deve ser mantido à mão para verificar qualquer detalhe nas planilhas de mapeamento.

Cenários e casos de teste de ETL

Cenário de Teste Casos de teste
Mapeamento de validação de documento Verifique o documento de mapeamento se as informações de ETL correspondentes são fornecidas ou não. O log de alterações deve ser mantido em todos os documentos de mapeamento.
Validação
  1. Valide a estrutura da tabela de origem e de destino em relação ao documento de mapeamento correspondente.
  2. O tipo de dados de origem e o tipo de dados de destino devem ser iguais
  3. O comprimento dos tipos de dados na origem e no destino deve ser igual
  4. Verifique se os tipos e formatos de campos de dados estão especificados
  5. O comprimento do tipo de dados de origem não deve ser menor que o comprimento do tipo de dados de destino
  6. Valide o nome das colunas na tabela em relação ao documento de mapeamento.
Validação de restrição Certifique-se de que as restrições sejam definidas para uma tabela específica conforme esperado
Problemas de consistência de dados
  1. O tipo de dados e o comprimento de um atributo específico podem variar em arquivos ou tabelas, embora a definição semântica seja a mesma.
  2. Uso indevido de restrições de integridade
Problemas de integridade
  1. Certifique-se de que todos os dados esperados sejam carregados na tabela de destino.
  2. Compare contagens de registros entre origem e destino.
  3. Verifique se há registros rejeitados
  4. Verifique se os dados não devem ser truncados na coluna das tabelas de destino
  5. Verifique a análise do valor limite
  6. Compares valores exclusivos de campos-chave entre dados carregados no WH e dados de origem
Problemas de correção
  1. Dados digitados incorretamente ou registrados incorretamente
  2. Dados nulos, não exclusivos ou fora do intervalo
Transformação Transformação
Qualidade de dados
  1. Verificação do número: é necessário verificar o número e validá-lo
  2. Verificação de data: eles devem seguir o formato de data e deve ser o mesmo em todos os registros
  3. Verificação de precisão
  4. Verificação de dados
  5. Verificação nula
Validação nula Verifique os valores nulos, onde “Not Null” especificado para uma coluna específica.
Verificação duplicada
  1. Precisa validar a chave exclusiva, a chave primária e qualquer outra coluna deve ser exclusiva de acordo com os requisitos de negócios, pois há linhas duplicadas
  2. Verifique se existe algum valor duplicado em qualquer coluna que esteja extraindo de várias colunas na origem e combinando em uma coluna
  3. De acordo com os requisitos do cliente, é necessário garantir que não haja duplicatas na combinação de múltiplas colunas apenas no destino
Validação de Data Os valores de data estão usando muitas áreas no desenvolvimento de ETL para

  1. Para saber a data de criação da linha
  2. Identifique registros ativos de acordo com a perspectiva de desenvolvimento de ETL
  3. Identifique registros ativos de acordo com a perspectiva dos requisitos de negócios
  4. Às vezes, com base nos valores de data, as atualizações e inserções são geradas.
Validação de dados completa
  1. Para validar o conjunto completo de dados nas tabelas de origem e destino menos uma consulta na melhor solução
  2. Precisamos fonte menos alvo e alvo menos fonte
  3. Se a consulta negativa retornar qualquer valor, elas deverão ser consideradas como linhas incompatíveis
  4. Precisa combinar linhas entre origem e destino usando a instrução intersect
  5. A contagem retornada por intersect deve corresponder às contagens individuais das tabelas de origem e de destino
  6. Se menos os retornos da consulta de linhas e a contagem de interseção forem menores que a contagem de origem ou a tabela de destino, podemos considerar que existem linhas duplicadas.
Limpeza de dados Colunas desnecessárias devem ser excluídas antes de serem carregadas na área de teste.

Tipos de erros de ETL

Tipos de erros de ETL

Tipo de bugs Descrição
Bugs na interface do usuário/bugs cosméticos
  • Relacionado à GUI do aplicativo
  • Estilo da fonte, tamanho da fonte, cores, alinhamento, erros ortográficos, navegação e assim por diante
Bug relacionado à análise de valor limite (BVA)
  • Valores mínimo e máximo
Bug relacionado ao particionamento de classe de equivalência (ECP)
  • Tipo válido e inválido
Bugs de entrada/saída
  • Valores válidos não aceitos
  • Valores inválidos aceitos
Erros de cálculo
  • Erros matemáticos
  • O resultado final está errado
Erros de condição de carga
  • Não permite vários usuários
  • Não permite a carga esperada do cliente
Erros de condição de corrida
  • Falha e travamento do sistema
  • O sistema não pode executar plataformas clientes
Bugs de controle de versão
  • Nenhuma correspondência de logotipo
  • Nenhuma informação de versão disponível
  • Isso ocorre geralmente em Teste de regressão
Erros de hardware
  • O dispositivo não está respondendo ao aplicativo
Bugs na fonte de ajuda
  • Erros em documentos de ajuda

Diferença entre teste de banco de dados e teste ETL

Teste ETL Teste de banco de dados
Verifica se os dados são movidos conforme esperado O objetivo principal é verificar se os dados estão seguindowing as regras/padrões definidos no Modelo de Dados
Verifica se as contagens na origem e no destino são correspondentes

Verifica se os dados transformados estão conforme a expectativa

Verifique se não há registros órfãos e se as relações de chave primária estrangeira são mantidas
Verifica se as relações de chave primária estrangeira são preservadas durante o ETL Verifica se não há tabelas redundantes e se o banco de dados está perfeitamente normalizado
Verifica duplicação nos dados carregados Verifique se os dados estão faltando nas colunas quando necessário

Responsabilidades de um testador ETL

As principais responsabilidades de um testador de ETL são segregadas em três categorias

  • Tabela de palco/SFS ou MFS
  • Lógica de transformação de negócios aplicada
  • Carregamento da tabela de destino do arquivo de teste ou tabela após aplicar uma transformação.

Algumas das responsabilidades de um testador de ETL são

  • Teste o software ETL
  • Componentes de teste do datawarehouse ETL
  • Execute teste orientado a dados de back-end
  • Criar, projetar e executar casos de teste, planos de teste e equipamento de teste
  • Identifique o problema e forneça soluções para possíveis problemas
  • Aprovar requisitos e especificações de projeto
  • Transferências de dados e arquivo simples de teste
  • Escrevendo consultas SQL3 para vários cenários, como teste de contagem

Teste de desempenho em ETL

Teste de desempenho em ETL é uma técnica de teste para garantir que um sistema ETL possa lidar com a carga de vários usuários e transações. O objetivo principal do ETL Teste de Desempenho é otimizar e melhorar o desempenho da sessão através da identificação e eliminação de gargalos de desempenho. Os bancos de dados de origem e destino, os mapeamentos, as sessões e o sistema possivelmente apresentam gargalos de desempenho.

Uma das melhores ferramentas usadas para testes/ajustes de desempenho é a Informatica.

Automação de testes ETL

A metodologia geral de teste ETL é usar scripts SQL ou fazer uma “observação” dos dados. Essas abordagens para testes ETL são demoradas, propensas a erros e raramente fornecem resultados completos. cobertura de teste. Para acelerar, melhorar a cobertura, reduzir custos, melhorar Defeito proporção de detecção de testes ETL em ambientes de produção e desenvolvimento, a automação é a necessidade do momento. Uma dessas ferramentas é a Informatica.

Melhores práticas para testes de ETL

  1. Certifique-se de que os dados sejam transformados corretamente
  2. Sem qualquer perda e truncamento de dados, os dados projetados devem ser carregados no data warehouse
  3. Certifique-se de que o aplicativo ETL rejeite e substitua adequadamente os valores padrão e relate dados inválidos
  4. Necessidade de garantir que os dados sejam carregados no data warehouse dentro dos prazos prescritos e esperados para confirmar a escalabilidade e o desempenho
  5. Todos os métodos devem ter testes unitários apropriados, independentemente da visibilidade
  6. Para medir a sua eficácia, todos os testes unitários devem usar técnicas de cobertura apropriadas.
  7. Esforce-se para obter uma afirmação por caso de teste
  8. Crie testes de unidade que visam exceções

Verificação de saída - Perguntas e respostas da entrevista de teste ETL