Tutorial de testare ETL

Ce este testarea ETL?

Testarea ETL este efectuatฤƒ pentru a se asigura cฤƒ datele care au fost รฎncฤƒrcate de la o sursฤƒ la destinaศ›ie dupฤƒ transformarea afacerii sunt exacte. De asemenea, implicฤƒ verificarea datelor รฎn diferite etape intermediare care sunt utilizate รฎntre sursฤƒ ศ™i destinaศ›ie. ETL รฎnseamnฤƒ Extract-Transform-Load.

Testarea ETL

Testarea depozitului de date

Testarea depozitului de date este o metodฤƒ de testare รฎn care datele din interiorul unui depozit de date sunt testate pentru integritate, fiabilitate, acurateศ›e ศ™i coerenศ›ฤƒ pentru a se conforma cadrului de date al companiei. Scopul principal al testฤƒrii depozitului de date este de a se asigura cฤƒ datele integrate din interiorul depozitului de date sunt suficient de fiabile pentru ca o companie sฤƒ ia decizii.

Ce este ETL?

ETL รฎnseamnฤƒ Extract-Transform-Load ศ™i este un proces de รฎncฤƒrcare a datelor de la sistemul sursฤƒ รฎn depozitul de date. Datele sunt extrase dintr-o bazฤƒ de date OLTP, transformate pentru a se potrivi cu schema depozitului de date ศ™i รฎncฤƒrcate รฎn baza de date a depozitului de date. Multe depozite de date รฎncorporeazฤƒ ศ™i date din sisteme non-OLTP, cum ar fi fiศ™iere text, sisteme vechi ศ™i foi de calcul.

Sฤƒ vedem cum funcศ›ioneazฤƒ

De exemplu, existฤƒ un magazin de vรขnzare cu amฤƒnuntul care are diferite departamente, cum ar fi vรขnzฤƒri, marketing, logisticฤƒ etc. Fiecare dintre ele gestioneazฤƒ informaศ›iile despre clienศ›i รฎn mod independent, iar modul รฎn care stocheazฤƒ aceste date este destul de diferit. Departamentul de vรขnzฤƒri l-a stocat dupฤƒ numele clientului, รฎn timp ce departamentul de marketing dupฤƒ id-ul clientului.

Acum, dacฤƒ doresc sฤƒ verifice istoricul clientului ศ™i doresc sฤƒ ศ™tie care sunt diferitele produse pe care le-a cumpฤƒrat รฎn urma diferitelor campanii de marketing; ar fi foarte plictisitor.

Soluศ›ia este sฤƒ folosiศ›i a Datawarehouse pentru a stoca informaศ›ii din diferite surse รฎntr-o structurฤƒ uniformฤƒ folosind ETL. ETL poate transforma seturi de date diferite รฎntr-o structurฤƒ unificatฤƒ.Later utilizaศ›i instrumente BI pentru a obศ›ine informaศ›ii ศ™i rapoarte semnificative din aceste date.

Urmฤƒtoarea diagramฤƒ din acest tutorial de testare ETL vฤƒ oferฤƒ FOARTEA DE ROAD a fluxului procesului de testare ETL ศ™i diferite concepte de testare ETL:

Extragere-Transformare-รŽncฤƒrcare

1) Extras

  • Extrageศ›i datele relevante

2) Transformฤƒ

  • Transformaศ›i datele รฎn format DW (Data Warehouse).
  • Build keys โ€“ O cheie este unul sau mai multe atribute de date care identificฤƒ รฎn mod unic o entitate. Variat tipuri de chei sunt cheie primarฤƒ, cheie alternativฤƒ, cheie strฤƒinฤƒ, cheie compusฤƒ, cheie surogat. Depozitul de date deศ›ine aceste chei ศ™i nu permite niciodatฤƒ altei entitฤƒศ›i sฤƒ le atribuie.
  • Curฤƒศ›area datelor: Dupฤƒ extragerea datelor, se va trece la urmฤƒtoarea fazฤƒ, de curฤƒศ›are ศ™i conformare a datelor. Curฤƒศ›area face omiterea datelor, precum ศ™i identificarea ศ™i remedierea erorilor. Conformarea รฎnseamnฤƒ rezolvarea conflictelor dintre acele date care sunt incompatibile, astfel รฎncรขt acestea sฤƒ poatฤƒ fi utilizate รฎntr-un depozit de date al รฎntreprinderii. รŽn plus faศ›ฤƒ de acestea, acest sistem creeazฤƒ metadate care sunt folosite pentru a diagnostica problemele sistemului sursฤƒ ศ™i pentru a รฎmbunฤƒtฤƒศ›i calitatea datelor.

3) รŽncฤƒrcare

  • รŽncฤƒrcaศ›i datele รฎn DW (Data Warehouse)
  • Creaศ›i agregate โ€“ Crearea unui agregat รฎnseamnฤƒ rezumarea ศ™i stocarea datelor disponibile รฎn tabel de fapte pentru a รฎmbunฤƒtฤƒศ›i performanศ›a interogฤƒrilor utilizatorilor finali.

Procesul de testare ETL

Similar cu alte procese de testare, ETL trece, de asemenea, prin diferite faze. Diferitele faze ale procesului de testare ETL sunt dupฤƒ cum urmeazฤƒ

Procesul de testare ETL

Testarea ETL este efectuatฤƒ รฎn cinci etape

  1. Identificarea surselor de date ศ™i a cerinศ›elor
  2. De achiziศ›ie de date
  3. Implementaศ›i logici de afaceri ศ™i modelare dimensionalฤƒ
  4. Creaศ›i ศ™i completaศ›i datele
  5. Creaศ›i rapoarte

Procesul de testare ETL

Tipuri de testare ETL

  1. Testarea de validare a producศ›iei
    Procesul de testare: โ€žEchilibrarea tabeluluiโ€ sau โ€žreconcilierea producศ›ieiโ€ acest tip de testare ETL se face pe date pe mฤƒsurฤƒ ce sunt mutate รฎn sistemele de producศ›ie. Pentru a vฤƒ sprijini decizia de afaceri, datele din sistemele dumneavoastrฤƒ de producศ›ie trebuie sฤƒ fie รฎn ordinea corectฤƒ. Informaticฤƒ Opศ›iunea de validare a datelor oferฤƒ capabilitฤƒศ›i de automatizare ศ™i gestionare a testฤƒrii ETL pentru a se asigura cฤƒ sistemele de producศ›ie nu sunt compromise de date.
  2. Sursa cฤƒtre Target Testare (testare de validare)
    Procesul de testare: Un astfel de tip de testare este efectuat pentru a valida dacฤƒ valorile datelor transformate sunt valorile datelor aศ™teptate.
  3. Aplicatii Upgrades
    Procesul de testare: Un astfel de tip de testare ETL poate fi generat automat, economisind timp substanศ›ial de dezvoltare a testelor. Acest tip de testare verificฤƒ dacฤƒ datele extrase dintr-o aplicaศ›ie sau un depozit mai vechi sunt exact aceleaศ™i cu datele dintr-un depozit sau dintr-o aplicaศ›ie nouฤƒ.
  4. Testarea metadatelor
    Procesul de testare: Testarea metadatelor include testarea verificฤƒrii tipului de date, verificarea lungimii datelor ศ™i verificarea indexului/constrรขngerii.
  5. Testarea completitฤƒศ›ii datelor
    Procesul de testare: Pentru a verifica dacฤƒ toate datele aศ™teptate sunt รฎncฤƒrcate รฎn ศ›intฤƒ de la sursฤƒ, se face testarea completitฤƒศ›ii datelor. Unele dintre testele care pot fi executate sunt compararea ศ™i validarea numฤƒrฤƒrilor, agregatelor ศ™i datelor reale รฎntre sursฤƒ ศ™i ศ›intฤƒ pentru coloanele cu transformare simplฤƒ sau fฤƒrฤƒ transformare.
  6. Testarea acurateศ›ei datelor
    Procesul de testare: Aceastฤƒ testare este efectuatฤƒ pentru a se asigura cฤƒ datele sunt รฎncฤƒrcate ศ™i transformate cu acurateศ›e conform aศ™teptฤƒrilor.
  7. Testarea transformฤƒrii datelor
    Procesul de testare: Testarea transformฤƒrii datelor se face, deoarece รฎn multe cazuri nu se poate realiza prin scrierea unei singure surse SQL interogaศ›i ศ™i comparaศ›i rezultatul cu ศ›inta. Este posibil sฤƒ fie necesare mai multe interogฤƒri SQL pentru fiecare rรขnd pentru a verifica regulile de transformare.
  8. Testarea calitฤƒศ›ii datelor
    Procesul de testare:

    Testele de calitate a datelor includ teste de sintaxฤƒ ศ™i teste de referinศ›ฤƒ. Pentru a evita orice eroare datoratฤƒ datei sau numฤƒrului de comandฤƒ รฎn timpul procesului de afaceri, se efectueazฤƒ testarea calitฤƒศ›ii datelor.

    Teste de sintaxฤƒ: va raporta date murdare, bazate pe caractere nevalide, modelul caracterelor, ordinea incorectฤƒ a majusculelor sau minusculelor etc.

    Teste de referinศ›ฤƒ: va verifica datele conform modelului de date. De exemplu: ID client

    Testarea calitฤƒศ›ii datelor include verificarea numฤƒrului, verificarea datei, verificarea preciziei, verificarea datelor, verificarea nulฤƒ etc.

  9. Testare ETL incrementalฤƒ
    Procesul de testare: Aceastฤƒ testare este efectuatฤƒ pentru a verifica integritatea datelor vechi ศ™i noi, cu adฤƒugarea de date noi. Testarea incrementalฤƒ verificฤƒ dacฤƒ inserฤƒrile ศ™i actualizฤƒrile sunt procesate conform aศ™teptฤƒrilor รฎn timpul procesului ETL incremental.
  10. Testarea GUI/Navigaศ›ie
    Procesul de testare: Aceastฤƒ testare este efectuatฤƒ pentru a verifica aspectele de navigare sau GUI ale rapoartelor frontale.

Cum se creeazฤƒ un caz de testare ETL

Testarea ETL este un concept care poate fi aplicat la diferite instrumente ศ™i baze de date din industria de management al informaศ›iilor. Obiectivul testฤƒrii ETL este sฤƒ se asigure cฤƒ datele care au fost รฎncฤƒrcate de la o sursฤƒ la destinaศ›ie dupฤƒ transformarea afacerii sunt exacte. De asemenea, implicฤƒ verificarea datelor รฎn diferite etape intermediare care sunt utilizate รฎntre sursฤƒ ศ™i destinaศ›ie.

รŽn timpul efectuฤƒrii testฤƒrii ETL, douฤƒ documente care vor fi รฎntotdeauna folosite de un tester ETL sunt

  1. Foi de cartografiere ETL:Fiศ™ele de mapare ETL conศ›in toate informaศ›iile din tabelele sursฤƒ ศ™i destinaศ›ie, inclusiv fiecare coloanฤƒ ศ™i cฤƒutarea lor รฎn tabelele de referinศ›ฤƒ. Un testator ETL trebuie sฤƒ fie confortabil cu interogฤƒrile SQL, deoarece testarea ETL poate implica scrierea de interogฤƒri mari cu mai multe รฎmbinฤƒri pentru a valida datele รฎn orice etapฤƒ a ETL. Fiศ™ele de cartografiere ETL oferฤƒ un ajutor semnificativ รฎn timpul scrierii interogฤƒrilor pentru verificarea datelor.
  2. Schema sursei DB, Target: Ar trebui sฤƒ fie la รฎndemรขnฤƒ pentru a verifica orice detaliu din foile de cartografiere.

Scenarii de testare ETL ศ™i cazuri de testare

  1. Validarea documentului de cartografiere
    Cazuri de testare: Verificaศ›i documentul de cartografiere dacฤƒ sunt furnizate sau nu informaศ›iile ETL corespunzฤƒtoare. Jurnalul de modificฤƒri ar trebui sฤƒ fie pฤƒstrat รฎn fiecare document de cartografiere.
  2. Validare
    Cazuri de testare:

    1) Validaศ›i structura tabelelor sursฤƒ ศ™i ศ›intฤƒ รฎn raport cu documentul de mapare corespunzฤƒtor.
    2) Tipul de date sursฤƒ ศ™i tipul de date ศ›intฤƒ trebuie sฤƒ fie aceleaศ™i
    3) Lungimea tipurilor de date atรขt รฎn sursฤƒ, cรขt ศ™i รฎn destinaศ›ie trebuie sฤƒ fie egalฤƒ
    4) Verificaศ›i dacฤƒ tipurile ศ™i formatele cรขmpurilor de date sunt specificate
    5) Lungimea tipului de date sursฤƒ nu trebuie sฤƒ fie mai micฤƒ decรขt lungimea tipului de date ศ›intฤƒ
    6) Validaศ›i numele coloanelor din tabel รฎn raport cu documentul de mapare.

  3. Validarea constrรขngerii
    Cazuri de testare: Asiguraศ›i-vฤƒ cฤƒ constrรขngerile sunt definite pentru un tabel specific, aศ™a cum era de aศ™teptat
  4. Probleme de coerenศ›ฤƒ a datelor
    Cazuri de testare:

    1) Tipul de date ศ™i lungimea pentru un anumit atribut pot varia รฎn fiศ™iere sau tabele, deศ™i definiศ›ia semanticฤƒ este aceeaศ™i.
    2) Utilizarea abuzivฤƒ a constrรขngerilor de integritate

  5. Probleme de completitudine
    Cazuri de testare:

    1) Asiguraศ›i-vฤƒ cฤƒ toate datele aศ™teptate sunt รฎncฤƒrcate รฎn tabelul ศ›intฤƒ.
    2) Comparaศ›i numฤƒrul de รฎnregistrฤƒri รฎntre sursฤƒ ศ™i destinaศ›ie.
    3) Verificaศ›i dacฤƒ existฤƒ รฎnregistrฤƒri respinse
    4) Verificaศ›i dacฤƒ datele nu trebuie trunchiate รฎn coloana tabelelor ศ›intฤƒ
    5) Verificaศ›i analiza valorilor limitฤƒ
    6) Comparฤƒ valorile unice ale cรขmpurilor cheie dintre datele รฎncฤƒrcate รฎn WH ศ™i datele sursฤƒ

  6. Probleme de corectitudine
    Cazuri de testare:

    1) Date scrise greศ™it sau รฎnregistrate inexact
    2) Date nule, neunice sau รฎn afara intervalului

  7. Transformare
    Cazuri de testare: Transformare
  8. Calitatea datelor
    Cazuri de testare:

    1) Verificarea numฤƒrului: Este necesarฤƒ verificarea ศ™i validarea numฤƒrului
    2) Verificarea datei: Trebuie sฤƒ respecte formatul datei ศ™i acesta ar trebui sฤƒ fie acelaศ™i รฎn toate รฎnregistrฤƒrile
    3) Verificare precizie
    4) Verificarea datelor
    5) Verificare nulฤƒ

  9. Validare nulฤƒ
    Cazuri de testare: Verificaศ›i valorile nule, unde โ€žNu este nulโ€ specificat pentru o anumitฤƒ coloanฤƒ.
  10. Cec duplicat
    Cazuri de testare:

    1) Trebuie sฤƒ se valideze cheia unicฤƒ, cheia primarฤƒ ศ™i orice altฤƒ coloanฤƒ trebuie sฤƒ fie unicฤƒ, conform cerinศ›elor afacerii, รฎn cazul existenศ›ei unor rรขnduri duplicate.
    2) Verificaศ›i dacฤƒ existฤƒ valori duplicate รฎn orice coloanฤƒ care extrage din mai multe coloane din sursฤƒ ศ™i combinฤƒ รฎntr-o singurฤƒ coloanฤƒ
    3) Conform cerinศ›elor clientului, trebuie sฤƒ se asigure cฤƒ nu existฤƒ duplicate รฎn combinarea mai multor coloane doar รฎn cadrul ศ›intei.

  11. Validarea datei
    Cazuri de testare: Valorile date folosesc multe domenii รฎn dezvoltarea ETL pentru

    1) Pentru a cunoaศ™te data creฤƒrii rรขndului
    2) Identificaศ›i รฎnregistrฤƒrile active conform perspectivei de dezvoltare ETL
    3) Identificaศ›i รฎnregistrฤƒrile active conform perspectivei cerinศ›elor afacerii
    4) Uneori, actualizฤƒrile ศ™i inserฤƒrile sunt generate pe baza valorilor datei.

  12. Validarea completฤƒ a datelor
    Cazuri de testare:

    1) Pentru a valida setul complet de date din tabelele sursฤƒ ศ™i ศ›intฤƒ, minus o interogare, รฎntr-o soluศ›ie optimฤƒ
    2) Trebuie sฤƒ facem sursa minus ศ›inta ศ™i ศ›inta minus sursa
    3) Dacฤƒ interogarea cu minus returneazฤƒ orice valoare, aceasta ar trebui consideratฤƒ ca rรขnduri nepotrivite
    4) Necesitฤƒ potrivirea rรขndurilor dintre sursฤƒ ศ™i ศ›intฤƒ folosind instrucศ›iunea intersect
    5) Numฤƒrul returnat de intersect ar trebui sฤƒ corespundฤƒ cu numฤƒrฤƒtorile individuale ale tabelelor sursฤƒ ศ™i destinaศ›ie
    6) Dacฤƒ valoarea returnatฤƒ de interogare pentru rรขnduri ศ™i numฤƒrul de intersecศ›ii este mai micฤƒ decรขt numฤƒrul de rรขnduri sursฤƒ sau tabelul ศ›intฤƒ, atunci putem considera cฤƒ existฤƒ rรขnduri duplicate.

  13. Curฤƒศ›area datelor
    Cazuri de testare: Coloanele inutile trebuie ศ™terse รฎnainte de a fi รฎncฤƒrcate รฎn zona de ศ™edinศ›ฤƒ.

Tipuri de erori ETL

Tipuri de erori ETL

Tip de bug-uri Descriere
Erori ale interfeศ›ei cu utilizatorul / erori cosmetice โ€ข Legat de interfaศ›a graficฤƒ a aplicaศ›iei
โ€ข Stilul fontului, dimensiunea fontului, culorile, alinierea, greศ™elile de ortografie, navigarea ศ™i aศ™a mai departe
Eroare legatฤƒ de Analiza valorii limitฤƒ (BVA). โ€ข Valori minime ศ™i maxime
Eroare legatฤƒ de Equivalence Class Partitioning (ECP). โ€ข Tip valid ศ™i invalid
Erori de intrare/ieศ™ire โ€ข Valorile valide nu sunt acceptate
โ€ข Valori nevalide acceptate
Erori de calcul โ€ข Erori matematice
โ€ข Rezultatul final este greศ™it
Erori de stare de รฎncฤƒrcare โ€ข Nu permite mai mulศ›i utilizatori
โ€ข Nu permite รฎncฤƒrcarea aศ™teptatฤƒ de client
Bug-uri privind starea cursei โ€ข Blocare ศ™i prฤƒbuศ™ire a sistemului
โ€ข Sistemul nu poate rula platforme client
Erori de control al versiunilor โ€ข Nu se potriveศ™te logo-ul
โ€ข Nu sunt disponibile informaศ›ii despre versiune
โ€ข Acest lucru se รฎntรขmplฤƒ de obicei รฎn Testarea regresiei
Bug-uri H/W โ€ข Dispozitivul nu rฤƒspunde la aplicaศ›ie
Ajutor Sursฤƒ erori โ€ข Greศ™eli รฎn documentele de ajutor

Diferenศ›a dintre testarea bazei de date ศ™i testarea ETL

Testarea ETL Testarea bazei de date
Verificฤƒ dacฤƒ datele sunt mutate conform aศ™teptฤƒrilor Scopul principal este de a verifica dacฤƒ datele respectฤƒ regulile/standardele definite รฎn Modelul de date
Verificฤƒ dacฤƒ numฤƒrฤƒrile din sursฤƒ ศ™i ศ›intฤƒ se potrivesc

Verificฤƒ dacฤƒ datele transformate sunt conform aศ™teptฤƒrilor

Verificaศ›i cฤƒ nu existฤƒ รฎnregistrฤƒri orfane ศ™i cฤƒ sunt menศ›inute relaศ›iile strฤƒine-cheie primarฤƒ
Verificฤƒ dacฤƒ relaศ›iile cheie primarฤƒ strฤƒinฤƒ sunt pฤƒstrate รฎn timpul ETL Verificฤƒ dacฤƒ nu existฤƒ tabele redundante ศ™i baza de date este normalizatฤƒ optim
Verificฤƒ pentru duplicarea datelor รฎncฤƒrcate Verificaศ›i dacฤƒ datele lipsesc รฎn coloane acolo unde este necesar

Responsabilitฤƒศ›ile unui tester ETL

Responsabilitฤƒศ›ile cheie ale unui tester ETL sunt separate รฎn trei categorii

  • Stage table/ SFS sau MFS
  • Logica de transformare a afacerii aplicatฤƒ
  • Target รฎncฤƒrcarea tabelului din fiศ™ierul de etapฤƒ sau din tabel dupฤƒ aplicarea unei transformฤƒri.

Unele dintre responsabilitฤƒศ›ile unui tester ETL sunt

  • Testaศ›i software-ul ETL
  • Testaศ›i componentele ETL datawarehouse
  • Executaศ›i testul bazat pe date backend
  • Creaศ›i, proiectaศ›i ศ™i executaศ›i cazuri de testare, planuri de testare ศ™i ham de testare
  • Identificaศ›i problema ศ™i oferiศ›i soluศ›ii pentru problemele potenศ›iale
  • Aprobaศ›i cerinศ›ele ศ™i specificaศ›iile de proiectare
  • Transferuri de date ศ™i fiศ™ier plat de testare
  • Scrierea de interogฤƒri SQL3 pentru diferite scenarii, cum ar fi testul de numฤƒrare

Testarea performanศ›ei รฎn ETL

Testarea performanศ›ei รฎn ETL este o tehnicฤƒ de testare pentru a se asigura cฤƒ un sistem ETL poate gestiona รฎncฤƒrcฤƒtura de mai mulศ›i utilizatori ศ™i tranzacศ›ii. Scopul principal al ETL Test de performanta este de a optimiza ศ™i รฎmbunฤƒtฤƒศ›i performanศ›a sesiunii prin identificarea ศ™i eliminarea blocajelor de performanศ›ฤƒ. Bazele de date sursฤƒ ศ™i ศ›intฤƒ, mapฤƒrile, sesiunile ศ™i sistemul au posibil blocaje de performanศ›ฤƒ.

Unul dintre cele mai bune instrumente utilizate pentru testarea/ajustarea performanศ›ei este Informatica.

Automatizarea testฤƒrii ETL

Metodologia generalฤƒ a testฤƒrii ETL este de a folosi scripturi SQL sau de a face โ€žeyeballingโ€ a datelor. Aceste abordฤƒri ale testฤƒrii ETL sunt consumatoare de timp, sunt predispuse la erori ศ™i rareori oferฤƒ acoperirea testului. Pentru a accelera, รฎmbunฤƒtฤƒศ›i acoperirea, reduce costurile, รฎmbunฤƒtฤƒศ›i Defect Raศ›ia de detectare a testฤƒrii ETL รฎn medii de producศ›ie ศ™i dezvoltare, automatizarea este nevoia orฤƒ. Un astfel de instrument este Informatica.

Cele mai bune practici pentru testarea ETL

  1. Asiguraศ›i-vฤƒ cฤƒ datele sunt transformate corect
  2. Fฤƒrฤƒ pierderi ศ™i trunchi de date, datele proiectate ar trebui sฤƒ fie รฎncฤƒrcate รฎn depozitul de date
  3. Asiguraศ›i-vฤƒ cฤƒ aplicaศ›ia ETL respinge ศ™i รฎnlocuieศ™te รฎn mod corespunzฤƒtor cu valori implicite ศ™i raporteazฤƒ datele nevalide
  4. Trebuie sฤƒ vฤƒ asiguraศ›i cฤƒ datele รฎncฤƒrcate รฎn depozitul de date รฎn intervalele de timp prescrise ศ™i aศ™teptate pentru a confirma scalabilitatea ศ™i performanศ›a
  5. Toate metodele ar trebui sฤƒ aibฤƒ teste unitare adecvate, indiferent de vizibilitate
  6. Pentru a le mฤƒsura eficacitatea, toate testele unitare ar trebui sฤƒ utilizeze tehnici de acoperire adecvate
  7. Strฤƒduiศ›i-vฤƒ pentru o afirmaศ›ie pentru fiecare caz de testare
  8. Creazฤƒ teste unitare care vizeazฤƒ excepศ›ii

Verificฤƒ - ETL Testing Interviu รŽntrebฤƒri ศ™i Rฤƒspunsuri

Rezumaศ›i aceastฤƒ postare cu: