Tutorial sul test ETL

Cos'è il test ETL?

Il test ETL viene eseguito per garantire che i dati caricati da un'origine alla destinazione dopo la trasformazione aziendale siano accurati. Implica anche la verifica dei dati nelle varie fasi intermedie che vengono utilizzati tra origine e destinazione. ETL sta per Extract-Transform-Load.

Test ETL

Test del data warehouse

Test del data warehouse è un metodo di test in cui i dati all'interno di un data warehouse vengono testati per verificarne l'integrità, l'affidabilità, l'accuratezza e la coerenza al fine di conformarsi al quadro dei dati dell'azienda. Lo scopo principale del test del data warehouse è garantire che i dati integrati all'interno del data warehouse siano sufficientemente affidabili da consentire a un'azienda di prendere decisioni.

Che cos'è ETL?

ETL sta per Extract-Transform-Load ed è un processo di caricamento dei dati dal sistema di origine al data warehouse. I dati vengono estratti da un database OLTP, trasformati per corrispondere allo schema del data warehouse e caricati nel database del data warehouse. Molti data warehouse incorporano anche dati provenienti da sistemi non OLTP come file di testo, sistemi legacy e fogli di calcolo.

Vediamo come funziona

Ad esempio, esiste un negozio al dettaglio che ha diversi reparti come vendite, marketing, logistica, ecc. Ognuno di loro gestisce le informazioni sui clienti in modo indipendente e il modo in cui archiviano tali dati è abbastanza diverso. Il reparto vendite lo ha archiviato in base al nome del cliente, mentre il reparto marketing in base all'ID cliente.

Ora, se vogliono controllare la storia del cliente e vogliono sapere quali sono i diversi prodotti che ha acquistato a causa delle diverse campagne di marketing; sarebbe molto noioso.

La soluzione è usare a magazzino dati per archiviare informazioni provenienti da diverse fonti in una struttura uniforme utilizzando ETL. ETL può trasformare set di dati diversi in una struttura unificata.Later utilizzare gli strumenti di BI per ricavare insight e report significativi da questi dati.

Il diagramma seguente in questo tutorial sui test ETL fornisce la ROAD MAP del flusso del processo di test ETL e vari concetti di test ETL:

Estrai-Trasforma-Carica

  1. Estratto
  • Estrarre i dati rilevanti
  1. Trasformare
  • Trasforma i dati in formato DW (Data Warehouse).
  • Chiavi di creazione: una chiave è costituita da uno o più attributi di dati che identificano in modo univoco un'entità. Vari tipi di chiavi sono chiave primaria, chiave alternativa, chiave esterna, chiave composita, chiave surrogata. Il datawarehouse possiede queste chiavi e non consente mai a nessun'altra entità di assegnarle.
  • Pulizia dei dati: dopo che i dati sono stati estratti, passeranno alla fase successiva, di pulizia e conformità dei dati. La pulizia elimina l'omissione dei dati, oltre a identificare e correggere gli errori. Conformarsi significa risolvere i conflitti tra i dati incompatibili, in modo che possano essere utilizzati in un data warehouse aziendale. Oltre a questi, questo sistema crea metadati che vengono utilizzati per diagnosticare i problemi del sistema di origine e migliorare la qualità dei dati.
  1. Caricare
  • Caricare i dati nel DW (Data Warehouse)
  • Creazione di aggregati: la creazione di un aggregato consiste nel riepilogare e archiviare i dati disponibili in tabella dei fatti al fine di migliorare le prestazioni delle query degli utenti finali.

Processo di test ETL

Similmente ad altri processi di test, anche l'ETL attraversa diverse fasi. Le diverse fasi del processo di test ETL sono le seguenti

Processo di test ETL

Il test ETL viene eseguito in cinque fasi

  1. Identificazione delle fonti e dei requisiti dei dati
  2. Acquisizione dati
  3. Implementare logiche aziendali e modellazione dimensionale
  4. Costruisci e popola i dati
  5. Costruisci report

Processo di test ETL

Tipi di test ETL

Tipi di test Processo di test
Test di convalida della produzione "Bilanciamento delle tabelle" o "riconciliazione della produzione": questo tipo di test ETL viene eseguito sui dati mentre vengono spostati nei sistemi di produzione. Per supportare la tua decisione aziendale, i dati nei tuoi sistemi di produzione devono essere nell'ordine corretto. Informatica L'opzione di convalida dei dati fornisce funzionalità di automazione e gestione dei test ETL per garantire che i sistemi di produzione non vengano compromessi dai dati.
Fonte a Target Test (test di convalida) Questo tipo di test viene eseguito per verificare se i valori dei dati trasformati sono i valori dei dati attesi.
Applicazioni Upgrades Questo tipo di test ETL può essere generato automaticamente, con un notevole risparmio di tempo nello sviluppo dei test. Questo tipo di test verifica se i dati estratti da un'applicazione o da un repository precedente sono esattamente gli stessi dei dati in un repository o in una nuova applicazione.
Test dei metadati Il test dei metadati include il test del controllo del tipo di dati, del controllo della lunghezza dei dati e del controllo dell'indice/vincolo.
Test di completezza dei dati Per verificare che tutti i dati previsti siano caricati nella destinazione dall'origine, viene eseguito il test di completezza dei dati. Alcuni dei test che possono essere eseguiti sono il confronto e la convalida di conteggi, aggregazioni e dati effettivi tra l'origine e la destinazione per le colonne con trasformazione semplice o senza trasformazione.
Test di accuratezza dei dati Questo test viene eseguito per garantire che i dati vengano caricati e trasformati accuratamente come previsto.
Test di trasformazione dei dati Il test della trasformazione dei dati viene eseguito poiché in molti casi non può essere ottenuto scrivendo un'unica fonte SQL interrogare e confrontare l'output con l'obiettivo. Potrebbe essere necessario eseguire più query SQL per ciascuna riga per verificare le regole di trasformazione.
Test sulla qualità dei dati I test di qualità dei dati includono test di sintassi e di riferimento. Per evitare qualsiasi errore dovuto alla data o al numero dell'ordine durante il processo aziendale, vengono eseguiti test sulla qualità dei dati.

Test di sintassi: riporterà dati sporchi, basati su caratteri non validi, pattern di caratteri, ordine maiuscolo o minuscolo errato, ecc.

Test di riferimento: controllerà i dati in base al modello di dati. Ad esempio: ID cliente

I test sulla qualità dei dati includono il controllo del numero, il controllo della data, il controllo della precisione, il controllo dei dati, il controllo nullo ecc.

Test ETL incrementale Questo test viene eseguito per verificare l'integrità dei dati vecchi e nuovi con l'aggiunta di nuovi dati. Il test incrementale verifica che gli inserimenti e gli aggiornamenti vengano elaborati come previsto durante il processo ETL incrementale.
Test GUI/navigazione Questo test viene eseguito per verificare la navigazione o gli aspetti della GUI dei report front-end.

Come creare un caso di test ETL

Il test ETL è un concetto che può essere applicato a diversi strumenti e database nel settore della gestione delle informazioni. L'obiettivo dei test ETL è garantire che i dati caricati dall'origine alla destinazione dopo la trasformazione aziendale siano accurati. Implica anche la verifica dei dati nelle varie fasi intermedie che vengono utilizzati tra origine e destinazione.

Durante l'esecuzione del test ETL, due documenti che verranno sempre utilizzati da un tester ETL sono:

  1. Fogli di mappatura ETL:Un foglio di mappatura ETL contiene tutte le informazioni delle tabelle di origine e di destinazione, inclusa ogni singola colonna e la relativa ricerca nelle tabelle di riferimento. Un tester ETL deve sentirsi a proprio agio con le query SQL poiché il test ETL può comportare la scrittura di query di grandi dimensioni con più join per convalidare i dati in qualsiasi fase dell'ETL. I fogli di mappatura ETL forniscono un aiuto significativo durante la scrittura di query per la verifica dei dati.
  2. Schema DB di origine, Target: Dovrebbe essere tenuto a portata di mano per verificare ogni dettaglio nei fogli di mappatura.

Scenari di test ETL e casi di test

Scenario di prova Test di Casi
Convalida dei documenti di mappatura Verificare il documento di mappatura se vengono fornite o meno le informazioni ETL corrispondenti. Il registro delle modifiche dovrebbe essere mantenuto in ogni documento di mappatura.
Convalida
  1. Convalida la struttura della tabella di origine e di destinazione rispetto al documento di mappatura corrispondente.
  2. Il tipo di dati di origine e il tipo di dati di destinazione dovrebbero essere gli stessi
  3. La lunghezza dei tipi di dati sia nell'origine che nella destinazione deve essere uguale
  4. Verificare che siano specificati i tipi e i formati dei campi dati
  5. La lunghezza del tipo di dati di origine non deve essere inferiore alla lunghezza del tipo di dati di destinazione
  6. Convalida il nome delle colonne nella tabella rispetto alla mappatura del documento.
Validazione dei vincoli Assicurarsi che i vincoli siano definiti per la tabella specifica come previsto
Problemi di coerenza dei dati
  1. Il tipo di dati e la lunghezza per un particolare attributo possono variare nei file o nelle tabelle sebbene la definizione semantica sia la stessa.
  2. Uso improprio dei vincoli di integrità
Problemi di completezza
  1. Assicurarsi che tutti i dati previsti siano caricati nella tabella di destinazione.
  2. Confronta i conteggi dei record tra origine e destinazione.
  3. Verificare la presenza di eventuali record rifiutati
  4. I dati di controllo non devono essere troncati nella colonna delle tabelle di destinazione
  5. Controllare l'analisi dei valori limite
  6. Confronta i valori univoci dei campi chiave tra i dati caricati in WH e i dati di origine
Problemi di correttezza
  1. Dati scritti in modo errato o registrati in modo impreciso
  2. Dati nulli, non univoci o fuori intervallo
Trasformazione Trasformazione
Qualità dei dati
  1. Controllo del numero: è necessario numerarlo e convalidarlo
  2. Controllo della data: devono seguire il formato della data e dovrebbe essere lo stesso per tutti i record
  3. Controllo di precisione
  4. Controllo dei dati
  5. Controllo nullo
Convalida nulla Verificare i valori null, dove "Not Null" è specificato per una colonna specifica.
Controllo duplicato
  1. È necessario convalidare la chiave univoca, la chiave primaria e qualsiasi altra colonna deve essere univoca in base ai requisiti aziendali in cui sono presenti righe duplicate
  2. Controlla se esistono valori duplicati in qualsiasi colonna che sta estraendo da più colonne nell'origine e combinando in un'unica colonna
  3. In base ai requisiti del cliente, è necessario garantire che non vi siano duplicati in combinazione di più colonne solo all'interno della destinazione
Convalida della data I valori della data utilizzano molte aree nello sviluppo ETL per

  1. Per conoscere la data di creazione della riga
  2. Identificare i record attivi secondo la prospettiva di sviluppo ETL
  3. Identificare i record attivi secondo la prospettiva dei requisiti aziendali
  4. A volte in base ai valori della data vengono generati gli aggiornamenti e gli inserimenti.
Convalida completa dei dati
  1. Per convalidare il set di dati completo nella tabella di origine e di destinazione meno una query in una soluzione migliore
  2. Dobbiamo avere la fonte meno il bersaglio e il bersaglio meno la fonte
  3. Se la query meno restituisce un valore, queste devono essere considerate come righe non corrispondenti
  4. È necessario far corrispondere le righe tra origine e destinazione utilizzando l'istruzione intersect
  5. Il conteggio restituito da intersect deve corrispondere ai conteggi individuali delle tabelle di origine e di destinazione
  6. Se i rendimenti delle query meno di righe e il conteggio intersecato sono inferiori al conteggio di origine o alla tabella di destinazione, è possibile considerare che esistano righe duplicate.
Pulizia dei dati Le colonne non necessarie devono essere eliminate prima del caricamento nell'area di staging.

Tipi di bug ETL

Tipi di bug ETL

Tipo di bug Descrizione
Bug dell'interfaccia utente/bug estetici
  • Relativo alla GUI dell'applicazione
  • Stile del carattere, dimensione del carattere, colori, allineamento, errori di ortografia, navigazione e così via
Bug relativo all'analisi del valore limite (BVA).
  • Valori minimi e massimi
Bug relativo al partizionamento delle classi di equivalenza (ECP).
  • Tipo valido e non valido
Bug di input/output
  • Valori validi non accettati
  • Valori non validi accettati
Bug di calcolo
  • Errori matematici
  • L'output finale è sbagliato
Bug delle condizioni di caricamento
  • Non consente più utenti
  • Non consente il carico previsto dal cliente
Bug delle condizioni di gara
  • Crash e blocco del sistema
  • Il sistema non può eseguire piattaforme client
Bug di controllo della versione
  • Nessuna corrispondenza del logo
  • Nessuna informazione sulla versione disponibile
  • Ciò si verifica solitamente in Test di regressione
Bug hardware
  • Il dispositivo non risponde all'applicazione
Aiuta a individuare i bug
  • Errori nei documenti di aiuto

Differenza tra test del database e test ETL

Test ETL Test della base di dati
Verifica se i dati vengono spostati come previsto L'obiettivo principale è verificare se i dati seguono le regole/gli standard definiti nel modello dei dati
Verifica se i conteggi nell'origine e nella destinazione corrispondono

Verifica se i dati trasformati sono conformi alle aspettative

Verificare che non siano presenti record orfani e che vengano mantenute le relazioni chiave primaria esterna
Verifica che le relazioni di chiave primaria esterna vengano preservate durante l'ETL Verifica che non siano presenti tabelle ridondanti e che il database sia normalizzato in modo ottimale
Verifica la duplicazione nei dati caricati Verificare se mancano dati nelle colonne dove richiesto

Responsabilità di un tester ETL

Le responsabilità chiave di un tester ETL sono suddivise in tre categorie

  • Tavolo da palco/SFS o MFS
  • Logica di trasformazione aziendale applicata
  • Target caricamento della tabella dal file di stage o dalla tabella dopo l'applicazione di una trasformazione.

Alcune delle responsabilità di un tester ETL sono

  • Testare il software ETL
  • Testare i componenti del datawarehouse ETL
  • Esegui test basati sui dati di backend
  • Creare, progettare ed eseguire casi test, piani di prova e cablaggio di prova
  • Identificare il problema e fornire soluzioni per potenziali problemi
  • Approvare i requisiti e le specifiche di progettazione
  • Trasferimenti dati e file flat di prova
  • Scrittura di query SQL3 per vari scenari come il test di conteggio

Test delle prestazioni in ETL

Test delle prestazioni in ETL è una tecnica di test per garantire che un sistema ETL possa gestire il carico di più utenti e transazioni. L'obiettivo principale di ETL Test di Performance è ottimizzare e migliorare le prestazioni della sessione identificando ed eliminando i colli di bottiglia delle prestazioni. I database di origine e di destinazione, le mappature, le sessioni e il sistema potrebbero presentare colli di bottiglia nelle prestazioni.

Uno dei migliori strumenti utilizzati per il test/ottimizzazione delle prestazioni è Informatica.

Automazione dei test ETL

La metodologia generale del test ETL consiste nell'utilizzare lo scripting SQL o eseguire l'"eyeballing" dei dati. Questi approcci al test ETL richiedono molto tempo, sono soggetti a errori e raramente forniscono risultati completi. copertura di prova. Per accelerare, migliorare la copertura, ridurre i costi, migliorare Difetto Per quanto riguarda il rilevamento dei test ETL negli ambienti di produzione e sviluppo, l'automazione è la necessità del momento. Uno di questi strumenti è Informatica.

migliori pratiche per i test ETL

  1. Assicurati che i dati vengano trasformati correttamente
  2. Senza alcuna perdita o troncamento dei dati, i dati previsti dovrebbero essere caricati nel data warehouse
  3. Assicurarsi che l'applicazione ETL rifiuti e sostituisca adeguatamente con valori predefiniti e riporti dati non validi
  4. È necessario garantire che i dati vengano caricati nel data warehouse entro i tempi prescritti e previsti per confermare la scalabilità e le prestazioni
  5. Tutti i metodi dovrebbero avere test unitari appropriati indipendentemente dalla visibilità
  6. Per misurare la loro efficacia tutti i test unitari dovrebbero utilizzare tecniche di copertura appropriate
  7. Cercare di ottenere un'asserzione per caso di test
  8. Creare test unitari che prendono di mira le eccezioni

Check-out - Domande e risposte all'intervista sui test ETL