O teste de extração e transformação de carga – mais comumente referido como teste ETL – é uma ferramenta crítica no mundo do business intelligence moderno e da análise de dados.
As equipas têm de recolher dados de fontes diferentes para os poderem armazenar em armazéns de dados ou prepará-los para as suas ferramentas de business intelligence, a fim de ajudar a tomar decisões de qualidade ou a obter informações. Os testes ETL ajudam a garantir que os processos, os dados e as informações estão actualizados e prontos para apoiar a empresa.
Vamos explorar o que é o teste de carga de extração-transformação e como funciona, antes de partilhar algumas das diferentes abordagens e ferramentas que pode utilizar para o teste ETL.
O que é Extract-Transform-Load,
e como é que funciona?
Extract-Transform-Load (ETL) é um conceito crucial no armazenamento e análise de dados. De facto, o ETL descreve o processo de recolha de dados de várias fontes e a sua centralização num armazém de dados ou num lago de dados.
Vamos decompor o processo ETL nas suas partes constituintes para que o possa compreender melhor.
1. Extrato:
Os dados são extraídos de várias fontes. Estas fontes podem ser uma base de dados existente, uma aplicação ERP ou CRM, folhas de cálculo, serviços Web ou diferentes ficheiros.
2. Transformar:
Uma vez extraídos os dados, é necessário transformá-los para que sejam adequados para armazenamento ou análise. O processo pode envolver a limpeza e normalização dos dados e a sua conversão para um formato adequado.
3. Carga:
A última parte do processo consiste em carregar os dados para o sistema de destino. Este sistema de destino pode ser um armazém de dados, um lago de dados ou outro repositório.
Embora o ETL exista desde a década de 1970, assumiu uma importância crescente recentemente devido à maior dependência das comunidades empresariais de sistemas baseados na nuvem, dados em tempo real, análises e ferramentas de ML/AI.
O que é o teste ETL?
O teste ETL é um tipo de teste de processamento de dados que verifica se os dados recolhidos de uma fonte foram transmitidos com exatidão para o seu destino. Como se pode ler acima, uma vez extraídos os dados, estes devem ser transformados de acordo com os requisitos da empresa. Esta transformação pode ocasionalmente dar origem a problemas com os dados. Uma abordagem de teste ETL ajuda a garantir que os dados são fiáveis e exactos.
Os testes ETL são uma espécie de testes de caixa negra, porque validam o processo de troca, transformação e carregamento, comparando as entradas com as saídas. De facto, centra-se no que o sistema faz em resposta a diferentes entradas e não na forma como alcança esses resultados. No entanto, em determinadas situações, os testadores analisarão o que está a acontecer no interior da caixa, especialmente quando ocorrem cenários inesperados.
Como é que o extrato se transforma
testes de carga funcionam?
A forma mais fácil de explicar como funcionam os testes ETL é dividi-los nas suas partes constituintes: extrair, transformar e carregar. A partir daí, pode compreender os diferentes elementos da validação ETL antes de analisarmos as fases de forma mais pormenorizada.
1. Extrato
Os testes ETL validam se os dados extraídos da fonte são exactos e não contêm erros. Este processo envolve a verificação da exatidão dos valores de base e a garantia de que os dados estão completos.
Outra parte do processo envolve a definição de perfis de dados. Este processo consiste efetivamente em compreender a estrutura, o conteúdo e a qualidade dos dados de origem. A ideia aqui é descobrir quaisquer anomalias, inconsistências ou potenciais problemas de mapeamento.
2. Transformar
A parte seguinte do processo explora o cumprimento rigoroso das regras de transformação de dados. Uma das principais abordagens neste domínio envolve o teste da lógica de transformação em relação a regulamentos, leis e outras regras comerciais.
Alguns dos testes típicos aqui envolvem verificar se os dados são convertidos nos formatos esperados, se os cálculos são exactos e verificar se as pesquisas ligam elementos entre conjuntos de dados.
A qualidade dos dados também é tida em consideração. Os testadores devem encontrar e remover inconsistências de formatação e duplicados e resolver quaisquer dados conflituosos enquanto aplicam processos de limpeza de dados.
Por fim, o desempenho global também é testado para descobrir como o processo ETL é afetado por grandes volumes de dados.
3. Carga
Finalmente, quando os dados são carregados para o armazém de dados, lago de dados ou outro destino final, os testadores devem verificar se estão completos, exactos e apresentados no formato correto.
As comparações são executadas para verificar se nenhum dado foi perdido ou corrompido no caminho entre a fonte, a área de preparação e os alvos.
Por fim, as pistas de auditoria são examinadas para verificar se o processo está a seguir quaisquer alterações que ocorram durante o processo ETL e verificar se o histórico e os metadados estão presentes.
Esta secção deve dar-lhe uma visão geral básica de como são efectuadas as verificações da qualidade dos dados ETL. Verificará que os testes ocorrem em cada fase da transmissão de dados porque é a melhor forma de identificar e resolver problemas específicos.
No entanto, para uma compreensão mais profunda dos conceitos de teste ETL, é necessário explorar os diferentes tipos de teste ETL e as fases em que são aplicados. As duas secções seguintes fornecem essas informações e ajudam-no a ter uma visão completa do que precisa.
Diferentes tipos de testes ETL
Existem muitos tipos diferentes de validação nos testes ETL. São utilizados em diferentes cenários e para uma vasta gama de objectivos. Vamos explorar os tipos de testes ETL e onde e quando os deve utilizar.
1. Teste de validação dos dados de origem
Importância:
Os testes de validação de dados de origem garantem que os dados de origem são de alta qualidade e consistentes antes de serem extraídos para transformação.
O que verifica:
- Os dados cumprem as regras da empresa?
- Os tipos e formatos de dados correspondem às expectativas?
- Os dados estão dentro de intervalos válidos?
- Existem valores nulos ou em falta em locais inesperados?
2. Teste de reconciliação de dados entre a fonte e o objetivo
Importância:
Este tipo de teste valida se todos os dados de uma determinada fonte são extraídos, transformados e carregados no sistema de destino.
O que verifica:
- Houve perda de dados durante o processo de ETL?
- Houve duplicação de dados durante o processo de ETL?
3. Teste de transformação de dados
Importância:
As transformações de dados podem envolver muitas coisas diferentes, como alterações de formato, cálculos, agregações, etc. Os testes de transformação de dados verificam se as transformações ocorreram como previsto.
O que verifica:
- Os dados são os esperados após as transformações?
- A lógica empresarial foi implementada corretamente durante as transformações?
- Os cálculos efectuados durante a transformação produziram o resultado correto?
4. Teste de validação de dados
Importância:
Verifica se os dados finais, depois de transformados, estão em conformidade com os requisitos comerciais.
O que verifica:
- As normas de qualidade dos dados (ou seja, exatidão, exaustividade) estão a ser cumpridas?
- As regras comerciais estão a ser seguidas?
5. Teste de integridade referencial ETL
Importância:
Valida que as relações entre tabelas nos dados de origem foram fielmente reproduzidas nos dados de destino.
O que verifica:
- As chaves externas nos dados correspondem às chaves primárias correspondentes?
- As relações entre as tabelas filho e pai são mantidas após o ETL?
6. Ensaios de integração
Importância:
Os testes de integração validam se o processo ETL se integra e funciona no ecossistema de dados mais alargado.
O que verifica:
- Os fluxos de dados de ponta a ponta funcionam corretamente?
- Em que medida é que o processo ETL interage com outros sistemas, como a fonte, o destino ou outras aplicações a jusante que dependem dos dados?
7. Testes de desempenho
Importância:
Os testes de desempenho ETL avaliam a eficiência do processo ETL quando sujeito a pressões, como uma carga pesada.
O que verifica:
- O tempo de processamento do ETL cumpre os requisitos comerciais ou os valores de referência?
- O processo ETL pode ser dimensionado em resposta ao aumento do volume de dados?
- O processo de ETL tem algum constrangimento de recursos ou estrangulamento que deva ser resolvido?
8. Ensaios funcionais
Importância:
Os testes funcionais validam se o processo ETL cumpre os requisitos do projeto na perspetiva do utilizador.
O que verifica:
- Os resultados estão em conformidade com os requisitos comerciais declarados?
- Os relatórios geram resultados exactos?
- Os painéis de controlo mostram os dados esperados?
9. Testes de regressão
Importância:
Os processos ETL são altamente complexos, com muitos dados inter-relacionados. Mesmo pequenas alterações no processo podem afetar os resultados na fonte. Os testes de regressão são vitais para identificar estes resultados inesperados.
O que verifica:
- As alterações no código ou nos dados subjacentes estão subitamente a causar efeitos adversos?
- As alterações tiveram o efeito desejado na melhoria do processo ETL?
Vale a pena notar que poderíamos incluir os testes unitários nesta lista. No entanto, em vez disso, incluímos as partes constituintes que os testes unitários abrangeriam, como o teste de validação da fonte, o teste de reconciliação de dados entre a fonte e o destino, etc.
8 fases do teste ETL com
8 dicas de especialistas para o sucesso
Agora que já conhece os diferentes tipos de validação nos testes ETL, é altura de juntar tudo. O teste ETL é normalmente efectuado com uma abordagem em várias fases, que apresentaremos em seguida.
#1. Recolha de requisitos comerciais
A primeira fase de qualquer processo de teste envolve a recolha de requisitos. Os testadores devem chegar a um consenso sobre o objetivo do processo ETL. Algumas perguntas que devem ser respondidas nesta fase inicial são coisas como:
- Como é que os dados serão utilizados?
- Que formatos de saída são necessários?
- Quais são as expectativas de desempenho?
- Que regulamentos, leis ou políticas da empresa regem a utilização dos dados?
Dica de especialista:
Embora o cumprimento dos requisitos seja obrigatório, os testadores ETL devem utilizar os seus conhecimentos e experiência para procurar proactivamente potenciais problemas, inconsistências ou erros no início do processo. É muito mais fácil e muito menos moroso identificar e eliminar os problemas numa fase inicial.
#2. Identificação e validação de fontes de dados
A ETL consiste em extrair dados de fontes de dados díspares, como ferramentas ERP ou CRM, aplicações, outras bases de dados, folhas de cálculo, etc. Os testadores devem confirmar que os dados necessários são acessíveis, estão estruturados corretamente e têm qualidade suficiente para serem utilizados como pretendido.
Dica de especialista:
Os dados de origem nos sistemas do mundo real são normalmente confusos. A produção de relatórios completos de caraterização de dados é fundamental nesta fase para garantir a identificação de valores em falta, problemas de formato, anomalias e outras inconsistências que se pretende manter fora da lógica de transformação.
#3. Escrever casos de teste
Com os requisitos comerciais e os relatórios de criação de perfis de dados em mãos, é altura de criar os casos de teste necessários para verificar o processo ETL. Os casos de teste devem incluir testes funcionais, bem como casos extremos e quaisquer áreas que tenha identificado como tendo um elevado risco de fracasso.
Dica de especialista:
Testar transformações individuais é bom, mas criar casos de teste que compreendam como os dados são afectados à medida que são transmitidos através de todo o pipeline ETL é melhor.
#4. Execução de casos de teste
Agora é altura de aplicar os seus casos de teste. Os testadores devem fazer o seu melhor para simular condições reais ou, sempre que possível, utilizar condições reais.
Dica de especialista:
As ferramentas de teste de automatização ETL são essenciais neste caso. Ser capaz de produzir testes consistentes e reproduzíveis poupa imenso tempo e esforço. Além disso, os testes ETL são um requisito constante, uma vez que as fontes de dados são actualizadas ou são feitas alterações ao próprio processo ETL.
#5. Gerar relatórios
Depois de executar os seus testes, deve documentar fielmente as suas descobertas. Anote os seus resultados e inclua-os:
- Sucessos
- Falhas
- Desvios em relação às expectativas
- Que correcções ou alterações devem ser feitas
Estes relatórios farão muito mais do que apenas confirmar a saúde do seu sistema. Fornecerão também o calendário para quaisquer correcções que seja necessário fazer, ao mesmo tempo que fornecem informações vitais necessárias para otimizar o processo ETL.
Dica de especialista:
Os relatórios destinam-se a todos, incluindo as partes interessadas não técnicas. Esforce-se por reduzir o jargão e os conceitos demasiado técnicos e utilize resumos visuais, como gráficos, quadros e outros, para explicar o processo.
#6. Repetição de testes para detetar erros e defeitos
Em seguida, é necessário verificar se os erros e defeitos detectados durante a execução do teste foram resolvidos. Além disso, deve confirmar que as alterações implementadas durante este processo não deram origem a novos problemas.
Dica de especialista:
Os testes de regressão são cruciais nesta fase porque o processo ETL é complexo e está interligado. Uma correção pode resultar em consequências não intencionais e totalmente inesperadas em todo o processo ETL.
#7. Relatórios finais
Os relatórios finais fornecem um resumo pormenorizado do processo de teste ETL. Destacar as áreas de sucesso e as áreas que requerem mais trabalho. Por fim, dê um veredito global sobre a qualidade e a fiabilidade dos dados ETL.
Dica de especialista:
O relatório final não é apenas um registo. Relatórios de teste bem escritos e bem estruturados tornar-se-ão parte da documentação de produção e ajudarão a garantir que o processo ETL é constantemente melhorado e optimizado.
#8. Encerrar os relatórios
Por último, depois de os relatórios terem sido entregues e compreendidos pelas várias partes interessadas, devem ser formalmente aceites. Os relatórios devem comunicar um plano claro para quaisquer questões que devam ser resolvidas ou outras acções que devam ser tomadas.
Dica de especialista:
Embora o fecho dos relatórios seja um forte sinal de que o processo ETL atingiu um nível aceitável, deve lembrar-se de que este trabalho nunca está realmente concluído. A melhoria contínua e a resposta a alterações nos dados de origem, no hardware ou mesmo na evolução das regras comerciais significam que qualquer aceitação é apenas um marco num processo contínuo.
Extrair benefícios dos testes de carga de transformação
Um processo de teste ETL abrangente é essencial para equipas e produtos que dependem da análise de dados. Vejamos os benefícios que pode obter quando se compromete com uma abordagem de teste ETL.
1. Exatidão e integridade dos dados
O conceito central da validação ETL consiste em garantir a entrada de dados limpos e fiáveis no seu armazém de dados. A abordagem correcta de teste ETL significa:
- Não se perdem dados durante a extração
- As suas transformações não contêm erros
- Os dados chegam ao sistema de destino como pretendido.
2. Poupar tempo e dinheiro
O teste ETL do armazém de dados é importante porque detecta os erros numa fase inicial. É muito mais desejável identificar e eliminar problemas de dados numa fase inicial do que corrigir problemas quando o cavalo já fugiu do estábulo. Segundo a Gartner, os dados de má qualidade custam às equipas uma média de 13 milhões de dólares por ano. Comece a testar o ETL cedo e poupará tempo e dinheiro.
3. Desempenho
Os maus processos ETL podem prejudicar os seus sistemas de dados e reduzir a qualidade das suas análises, relatórios e tomadas de decisão. Um bom processo de teste ETL ajuda-o a manter-se no caminho certo, identificando estrangulamentos nos dados e outras áreas que precisam de ser melhoradas.
4. Conformidade
Existem regras rigorosas de governação de dados para as instituições financeiras e os prestadores de cuidados de saúde. O facto de não tratar e gerir corretamente os dados pode levar à revogação das licenças ou a pesadas multas. Os testes ETL ajudam a garantir que se mantém dentro dos limites da conformidade e a proteger as informações sensíveis.
5. Melhor tomada de decisões
Quanto mais precisos e fiáveis forem os seus dados, mais confiante pode estar nas decisões baseadas em dados. Os testes ETL garantem que pode contar com o conteúdo do seu armazém de dados para fornecer as informações de que necessita para tomar as medidas correctas.
Desafios associados aos testes ETL
Garantir a integridade do seu pipeline de dados é essencial, mas tem algumas complexidades. Vamos explorar os desafios relacionados com verificações sólidas da qualidade dos dados ETL.
1. Volume e complexidade dos dados
Um bom processo de teste ETL significa lidar com grandes volumes de diferentes tipos de dados, que variam de estruturados a não estruturados. Esta variação de dados pode tornar-se rapidamente complexa e difícil de gerir.
2. Dependência do sistema de origem
Tal como referimos anteriormente, o teste ETL consiste em garantir um pipeline de origem a destino sem problemas. No entanto, a qualidade dos resultados depende em grande medida da qualidade dos factores de produção. As alterações no esquema, formato ou qualidade da saída de origem podem causar falhas nos testes ETL que nem sempre são fáceis de diagnosticar.
3. Complexidades de transformação
Construir a lógica para as transformações de dados é uma tarefa especializada. A aplicação de regras comerciais e a limpeza ou reformatação de dados são complexas, e a verificação da qualidade destas transformações nem sempre é fácil.
4. Mudança de requisitos
Todos os testadores conhecem o problema da rápida evolução dos requisitos comerciais. O processo ETL é um espaço dinâmico, e o mesmo acontece com os testes ETL. À medida que as funções empresariais são actualizadas e alteradas, os testadores devem adaptar os casos de teste e garantir que o desempenho da base de dados é optimizado.
5. Limitações do ambiente de ensaio
A execução de um ambiente de produção em grande escala para testes ETL é complexa e dispendiosa. No entanto, os ambientes de teste de menor escala nem sempre fornecem uma verdadeira validação porque não reproduzem a forma como o tratamento de grandes volumes de dados pode resultar em estrangulamentos de desempenho.
Dicas e melhores práticas de ETL
Os testes ETL levam tempo a dominar. Eis algumas dicas para o ajudar no seu caminho.
#1. Testes contínuos
O teste ETL não é uma coisa única. É uma perspetiva para garantir dados de boa qualidade que deve ser executada e monitorizada continuamente. Um testador de garantia de qualidade ETL é um emprego a tempo inteiro em empresas que dependem de ferramentas de business intelligence por uma razão.
#2. Nenhum testador ETL é uma ilha
Embora os testes ETL adoptem uma abordagem de caixa negra, os engenheiros de garantia de qualidade ETL devem trabalhar com as partes interessadas, os administradores de bases de dados e os programadores que criam a lógica ETL se quiserem conceber testes significativos que validem verdadeiramente o processo ETL.
#3. Uma documentação sólida é fundamental.
Uma documentação sólida e pormenorizada, incluindo mapeamentos de origem para destino e um registo da linhagem dos dados, é vital para identificar onde surgiram os erros na cadeia de dados.
#4. Automatizar o mais possível
Este é talvez o ponto mais importante. Os testes ETL exaustivos consomem muitos recursos. É também um processo contínuo, o que significa que requer um grande esforço manual em intervalos regulares. Como tal, os testes ETL são uma tarefa perfeita para software de automatização de testes e ferramentas RPA.
As melhores ferramentas de teste de automatização ETL
Já deve ter ficado claro que os testes de automatização ETL representam uma vantagem significativa para as equipas de teste em termos de obter o máximo dos seus recursos.
Felizmente, existem várias ferramentas de teste ETL de qualidade no mercado. Cada ferramenta tem os seus prós e contras, com características e funcionalidades que se adaptam a diferentes necessidades.
A decisão sobre a ferramenta certa depende de alguns factores diferentes, incluindo:
- Complexidade do seu processo ETL e lógica empresarial
- O volume de dados que está a transmitir
- Presença ou concentração de dados não estruturados no seu processo ETL
- Competência técnica e conjunto de aptidões dos seus testadores
- O seu orçamento.
Vejamos as 5 principais ferramentas de teste ETL.
#5. QuerySurge
O QuerySurge é uma ferramenta de teste ETL baseada em subscrição com ênfase no teste contínuo. Suporta combinações de bases de dados de origem e de destino, oferece fortes capacidades de automatização e foi concebido para necessidades de armazenamento de dados grandes e complexas.
A interface do utilizador é muito agradável de utilizar e as suas capacidades de elaboração de relatórios são excelentes. No entanto, alguns utilizadores lamentaram os preços caros e opacos do QuerySurge, enquanto outros criticaram a sua falta de facilidade de utilização e a curva de aprendizagem acentuada para utilizadores inexperientes.
#4. iCEDQ
O iCEDQ é uma ferramenta de qualidade para testar e monitorizar a qualidade dos dados. Oferece testes baseados em regras e uma interessante deteção de erros assistida por ML. O acompanhamento, a elaboração de relatórios e a visualização são pontos fortes do iCEDQ, tornando-o uma boa ferramenta para empresas com necessidades regulamentares e de conformidade de dados críticos.
Dito isto, a implementação da ferramenta em cenários ETL complexos é uma das desvantagens mais notáveis do iCEDQ. Além disso, a interface do utilizador é bastante complexa e não se adequa a equipas menos técnicas.
#3. RightData
O RightData é uma ferramenta de fácil utilização que possui fortes capacidades sem código para testes ETL e validação de dados. A ferramenta é muito flexível e funciona em diferentes bases de dados e armazéns de dados na nuvem. Com uma gama de modelos de teste pré-construídos, excelentes capacidades de visualização e uma integração perfeita com ferramentas de fluxo de trabalho, é fácil perceber porque é que o RightData ganhou popularidade nos últimos anos.
No entanto, embora o RightData tenha muitas características desejáveis, pode ser dispendioso se precisar de testar muitos processos ETL. Embora se baseie numa subscrição, os preços podem aumentar rapidamente com níveis elevados de utilização de dados e funcionalidades adicionais. Quando comparada com o modelo de preços fixos previsíveis e as licenças ilimitadas da ZAPTEST, a abordagem da RightData parece penalizar as empresas em crescimento ou em expansão.
#2. Avaliação biG
O BiG EVAL é uma óptima escolha para sistemas ETL complexos e implementações de armazéns antigos. Utiliza validação de dados baseada em regras e possui capacidades poderosas de criação de perfis de dados, o que o torna uma boa escolha para testes ETL. O BiG EVAL também fornece aos utilizadores excelentes opções de automatização para conceber e agendar testes e, quando combinado com excelentes capacidades de criação de relatórios e visualização, está ao nível das ferramentas mais abrangentes para testes ETL.
Dito isto, a implementação do BiG EVAL é um trabalho ainda maior. Quando comparada com ferramentas sem código como o ZAPTEST, a interface pode parecer um pouco antiquada. É importante notar que os testes ETL são apenas um dos casos de utilização do BiG EVAL, pelo que o seu preço baseado em licenças pode revelar-se proibitivo para algumas equipas se estiver a pagar por características e funções de que não necessita estritamente.
#1. ZAPTEST: A escolha n.º 1 para testes ETL
Embora o ZAPTEST não seja uma ferramenta de teste ETL dedicada, oferece a flexibilidade e a escalabilidade para ajudar com várias das tarefas que compõem uma abordagem de teste ETL completa.
Como pode ver na secção Diferentes tipos de testes ETL acima, testar o processo ETL requer validação de dados, integração, desempenho, funcionalidade e testes de regressão. O ZAPTEST pode fazer tudo isto e muito mais. As nossas ferramentas de teste end-to-end e as capacidades de teste de metadados são características-chave para garantir que a sua análise e business intelligence estão actualizadas e prontas para fornecer resultados e valor.
O ZAPTEST também é fornecido com uma das melhores ferramentas RPA do mercado. No contexto dos testes ETL, a RPA pode fornecer um grande valor, gerando dados de teste realistas, automatizando tarefas manuais repetitivas e ajudando-o a introduzir os testes contínuos de que necessita para um processo ETL sólido.
Com as capacidades sem código do ZAPTET, a criação de testes extremamente rápida e a integração perfeita com outras ferramentas empresariais, é um balcão único para testes ETL automatizados e muito, muito mais.
Considerações finais
O teste de carga de transformação de extractos é como estabelecer um departamento de controlo de qualidade para o seu armazém de dados. Não se trata apenas de saber se os dados foram transferidos da origem para o destino; trata-se também de garantir que chegaram intactos e como esperado.
Quando chega a hora da verdade, se tivermos dados errados, acabamos por tomar decisões mal informadas. Um teste ETL adequado é um investimento na integridade de todo o seu ecossistema de dados. No entanto, para muitas empresas, o tempo e as despesas envolvidos nos testes ETL são algo que não conseguem suportar.
A automatização dos testes ETL ajuda-o a testar de forma mais rápida e eficiente, poupando dinheiro a longo prazo. O aumento da cobertura dos testes e das capacidades de teste de regressão pode ajudar a aumentar a integridade dos dados, uma vez que é possível efetuar testes com uma frequência muito mais elevada do que se se mantivesse preso aos testes manuais .
Além disso, a utilização de ferramentas de teste de automatização ETL reduz o erro humano, libertando os testadores para tarefas mais criativas ou orientadas para o valor. A adoção de ferramentas de automatização de testes e de RPA, como o ZAPTEST, é uma decisão que não precisa de passar pelas suas ferramentas de business intelligence.