ETL-testhandleiding

Wat is ETL-testen?

ETL-tests worden uitgevoerd om ervoor te zorgen dat de gegevens die na een bedrijfstransformatie van een bron naar de bestemming zijn geladen, accuraat zijn. Het omvat ook de verificatie van gegevens in verschillende middenfasen die worden gebruikt tussen bron en bestemming. ETL staat voor Extract-Transform-Load.

ETL-testen

Testen van datawarehouses

Testen van datawarehouses is een testmethode waarbij de gegevens in een datawarehouse worden getest op integriteit, betrouwbaarheid, nauwkeurigheid en consistentie om te voldoen aan het dataframework van het bedrijf. Het belangrijkste doel van het testen van datawarehouses is ervoor te zorgen dat de geïntegreerde gegevens in het datawarehouse betrouwbaar genoeg zijn zodat een bedrijf beslissingen kan nemen.

Wat is ETL?

ETL staat voor Extract-Transform-Load en het is een proces van hoe gegevens van het bronsysteem naar het datawarehouse worden geladen. Gegevens worden uit een OLTP-database gehaald, getransformeerd zodat ze overeenkomen met het datawarehouse-schema en in de datawarehouse-database geladen. Veel datawarehouses bevatten ook gegevens uit niet-OLTP-systemen, zoals tekstbestanden, oudere systemen en spreadsheets.

Laten we eens kijken hoe het werkt

Er is bijvoorbeeld een winkel met verschillende afdelingen, zoals verkoop, marketing, logistiek enz. Elk van hen verwerkt de klantinformatie onafhankelijk, en de manier waarop ze die gegevens opslaan is heel anders. De verkoopafdeling heeft het opgeslagen op naam van de klant, terwijl de marketingafdeling het heeft opgeslagen op klant-ID.

Als ze nu de geschiedenis van de klant willen controleren en willen weten welke verschillende producten hij/zij heeft gekocht als gevolg van verschillende marketingcampagnes, dan zou dat erg omslachtig zijn.

De oplossing is om een datawarehouse om informatie uit verschillende bronnen in een uniforme structuur op te slaan met behulp van ETL. ETL kan ongelijksoortige datasets omzetten in een uniforme structuur.Later gebruik BI-tools om betekenisvolle inzichten en rapporten uit deze gegevens af te leiden.

Het volgende diagram in deze ETL-testtutorial geeft u de ROADMAP van de ETL-testprocesstroom en verschillende ETL-testconcepten:

Extract-Transform-Laden

  1. Extract
  • Haal relevante gegevens eruit
  1. Transformeren
  • Transformeer gegevens naar DW-formaat (Data Warehouse).
  • Bouwsleutels – Een sleutel is een of meer gegevensattributen die een entiteit op unieke wijze identificeren. Verscheidene soorten sleutels zijn primaire sleutel, alternatieve sleutel, refererende sleutel, samengestelde sleutel, surrogaatsleutel. Het datawarehouse is eigenaar van deze sleutels en staat nooit toe dat een andere entiteit deze toewijst.
  • Opschonen van gegevens: Nadat de gegevens zijn geëxtraheerd, gaat deze naar de volgende fase: het opschonen en conformeren van gegevens. Met schoonmaken worden de weglatingen in de gegevens verwijderd en worden de fouten geïdentificeerd en hersteld. Conformeren betekent het oplossen van de conflicten tussen gegevens die niet compatibel zijn, zodat ze kunnen worden gebruikt in een bedrijfsdatawarehouse. Daarnaast creëert dit systeem metagegevens die worden gebruikt om bronsysteemproblemen te diagnosticeren en de gegevenskwaliteit te verbeteren.
  1. Laden
  • Gegevens laden in DW (Data Warehouse)
  • Aggregaten maken – Het maken van een aggregaat is het samenvatten en opslaan van gegevens die beschikbaar zijn in feitentabel om de prestaties van zoekopdrachten van eindgebruikers te verbeteren.

ETL-testproces

Net als andere testprocessen doorloopt ETL ook verschillende fasen. De verschillende fasen van het ETL-testproces zijn als volgt

ETL-testproces

ETL-testen worden in vijf fasen uitgevoerd

  1. Identificeren van gegevensbronnen en vereisten
  2. data acquisitie
  3. Implementeer bedrijfslogica en dimensionale modellering
  4. Gegevens opbouwen en invullen
  5. Rapporten bouwen

ETL-testproces

Soorten ETL-testen

Soorten testen Testproces
Productievalidatietesten “Tabelbalancering” of “productieafstemming” Dit type ETL-testen wordt uitgevoerd op gegevens terwijl deze naar productiesystemen worden verplaatst. Om uw zakelijke beslissing te ondersteunen, moeten de gegevens in uw productiesystemen in de juiste volgorde staan. Informatica Data Validation Option biedt de ETL-testautomatisering en -beheermogelijkheden om ervoor te zorgen dat productiesystemen niet in gevaar worden gebracht door de gegevens.
Bron naar Target Testen (validatietesten) Een dergelijk type testen wordt uitgevoerd om te valideren of de getransformeerde gegevenswaarden de verwachte gegevenswaarden zijn.
Aanvraag Upgrades Een dergelijk type ETL-test kan automatisch worden gegenereerd, waardoor aanzienlijke testontwikkelingstijd wordt bespaard. Bij dit type testen wordt gecontroleerd of de gegevens uit een oudere applicatie of repository exact hetzelfde zijn als de gegevens in een repository of nieuwe applicatie.
Metagegevens testen Het testen van metagegevens omvat het testen van gegevenstypecontrole, gegevenslengtecontrole en index-/beperkingscontrole.
Testen van de volledigheid van gegevens Om te verifiëren dat alle verwachte gegevens vanuit de bron in het doel zijn geladen, worden tests op de volledigheid van de gegevens uitgevoerd. Enkele van de tests die kunnen worden uitgevoerd, zijn het vergelijken en valideren van tellingen, aggregaties en feitelijke gegevens tussen de bron en het doel voor kolommen met eenvoudige transformatie of geen transformatie.
Nauwkeurigheidstests van gegevens Deze tests worden uitgevoerd om ervoor te zorgen dat de gegevens nauwkeurig worden geladen en getransformeerd zoals verwacht.
Testen van gegevenstransformatie Het testen van datatransformatie wordt gedaan omdat dit in veel gevallen niet kan worden bereikt door één bron te schrijven SQL bevragen en de uitvoer vergelijken met het doel. Mogelijk moeten voor elke rij meerdere SQL-query's worden uitgevoerd om de transformatieregels te verifiëren.
Testen van gegevenskwaliteit Datakwaliteitstests omvatten syntaxis- en referentietests. Om fouten als gevolg van de datum of het ordernummer tijdens het bedrijfsproces te voorkomen, worden gegevenskwaliteitstests uitgevoerd.

Syntaxistests: het rapporteert vuile gegevens, gebaseerd op ongeldige tekens, tekenpatroon, onjuiste volgorde van hoofdletters of kleine letters enz.

Referentietests: het controleert de gegevens volgens het datamodel. Bijvoorbeeld: Klant-ID

Het testen van de gegevenskwaliteit omvat nummercontrole, datumcontrole, precisiecontrole, gegevenscontrole, nulcontrole enz.

Incrementeel ETL-testen Deze tests worden uitgevoerd om de gegevensintegriteit van oude en nieuwe gegevens te controleren met de toevoeging van nieuwe gegevens. Incrementeel testen verifieert dat de invoegingen en updates worden verwerkt zoals verwacht tijdens het incrementele ETL-proces.
GUI/navigatietesten Deze tests worden uitgevoerd om de navigatie- of GUI-aspecten van de front-endrapporten te controleren.

Hoe u een ETL-testcase maakt

ETL-testen is een concept dat kan worden toegepast op verschillende tools en databases in de informatiebeheerindustrie. Het doel van ETL-testen is ervoor te zorgen dat de gegevens die na een bedrijfstransformatie van bron naar bestemming zijn geladen, accuraat zijn. Het omvat ook de verificatie van gegevens in verschillende middenfasen die worden gebruikt tussen bron en bestemming.

Tijdens het uitvoeren van ETL-testen zijn er twee documenten die altijd door een ETL-tester zullen worden gebruikt

  1. ETL-toewijzingsbladen:ETL-toewijzingsbladen bevatten alle informatie van bron- en bestemmingstabellen, inclusief elke kolom en hun zoekopdrachten in referentietabellen. ETL-testers moeten vertrouwd zijn met SQL-query's, aangezien ETL-tests het schrijven van grote queries met meerdere joins kunnen inhouden om gegevens in elk stadium van ETL te valideren. ETL-toewijzingsbladen bieden een aanzienlijke hulp bij het schrijven van query's voor gegevensverificatie.
  2. DB-schema van bron, Target: Het moet bij de hand worden gehouden om elk detail in kaartbladen te verifiëren.

ETL-testscenario's en testcases

Testscenario Test Cases
Documentvalidatie in kaart brengen Controleer het toewijzingsdocument of de bijbehorende ETL-informatie wordt verstrekt of niet. Het wijzigingslogboek moet in elk toewijzingsdocument worden bijgehouden.
Validatie
  1. Valideer de bron- en doeltabelstructuur aan de hand van het bijbehorende toewijzingsdocument.
  2. Het brongegevenstype en het doelgegevenstype moeten hetzelfde zijn
  3. De lengte van gegevenstypen in zowel de bron als het doel moet gelijk zijn
  4. Controleer of de gegevensveldtypen en -indelingen zijn opgegeven
  5. De lengte van het brongegevenstype mag niet kleiner zijn dan de lengte van het doelgegevenstype
  6. Valideer de naam van de kolommen in de tabel tegen het toewijzingsdocument.
Beperkingvalidatie Zorg ervoor dat de beperkingen voor een specifieke tabel zijn gedefinieerd, zoals verwacht
Problemen met de consistentie van gegevens
  1. Het gegevenstype en de lengte voor een bepaald attribuut kunnen variëren in bestanden of tabellen, hoewel de semantische definitie hetzelfde is.
  2. Misbruik van integriteitsbeperkingen
Volledigheidsproblemen
  1. Zorg ervoor dat alle verwachte gegevens in de doeltabel worden geladen.
  2. Vergelijk recordaantallen tussen bron en doel.
  3. Controleer op afgewezen records
  4. Controleer gegevens mogen niet worden afgekapt in de kolom met doeltabellen
  5. Controleer grenswaardeanalyse
  6. Vergelijkt unieke waarden van sleutelvelden tussen gegevens die in WH zijn geladen en brongegevens
Correctheidsproblemen
  1. Gegevens die verkeerd zijn gespeld of onnauwkeurig zijn vastgelegd
  2. Null, niet-unieke of buiten bereik gelegen gegevens
Transformatie Transformatie
Datakwaliteit
  1. Nummercontrole: u moet het nummer controleren en valideren
  2. Datumcontrole: ze moeten het datumformaat volgen en dit moet voor alle records hetzelfde zijn
  3. Precisiecontrole
  4. Gegevens controle
  5. Nulcontrole
Nul valideren Controleer de nulwaarden, waarbij 'Not Null' is opgegeven voor een specifieke kolom.
Dubbele cheque
  1. Moet de unieke sleutel valideren, de primaire sleutel en elke andere kolom moet uniek zijn volgens de bedrijfsvereisten en er zijn dubbele rijen
  2. Controleer of er dubbele waarden voorkomen in een kolom die uit meerdere kolommen in de bron wordt geëxtraheerd en in één kolom wordt gecombineerd
  3. Volgens de eisen van de klant moet ervoor worden gezorgd dat er geen duplicaten zijn in de combinatie van meerdere kolommen binnen het doel
Datum validatie Datumwaarden worden op veel gebieden in de ETL-ontwikkeling gebruikt

  1. Om de aanmaakdatum van de rij te kennen
  2. Identificeer actieve records volgens het ETL-ontwikkelingsperspectief
  3. Identificeer actieve records vanuit het perspectief van de bedrijfsvereisten
  4. Soms worden op basis van de datumwaarden de updates en invoegingen gegenereerd.
Volledige gegevensvalidatie
  1. Om de volledige dataset in bron- en doeltabel minus een query te valideren in een beste oplossing
  2. We moeten bron minus doel en doel minus bron gebruiken
  3. Als de minus-query een waarde retourneert, moeten deze worden beschouwd als niet-overeenkomende rijen
  4. Moet rijen tussen bron en doel matchen met behulp van de intersect-instructie
  5. Het aantal dat door intersect wordt geretourneerd, moet overeenkomen met individuele tellingen van bron- en doeltabellen
  6. Als het min-queryresultaat van rijen en het aantal kruispunten kleiner is dan het bronaantal of de doeltabel, kunnen we ervan uitgaan dat er dubbele rijen bestaan.
Gegevenszuiverheid Onnodige kolommen moeten worden verwijderd voordat ze in het verzamelgebied worden geladen.

Soorten ETL-bugs

Soorten ETL-bugs

Soort bugs Beschrijving
Bugs in de gebruikersinterface/cosmetische bugs
  • Gerelateerd aan de GUI van de applicatie
  • Lettertype, lettergrootte, kleuren, uitlijning, spelfouten, navigatie enzovoort
Boundary Value Analysis (BVA) gerelateerde bug
  • Minimale en maximale waarden
Equivalence Class Partitioning (ECP) gerelateerde bug
  • Geldig en ongeldig type
Invoer-/uitvoerfouten
  • Geldige waarden worden niet geaccepteerd
  • Ongeldige waarden geaccepteerd
Berekeningsfouten
  • Wiskundige fouten
  • De uiteindelijke uitvoer is verkeerd
Laadconditie-bugs
  • Staat niet meerdere gebruikers toe
  • Staat de door de klant verwachte belasting niet toe
Raceconditie-bugs
  • Systeem crasht en blijft hangen
  • Systeem kan geen clientplatforms uitvoeren
Bugs in versiebeheer
  • Geen logo-matching
  • Geen versie-informatie beschikbaar
  • Dit gebeurt meestal in Regressie Testing
H/W-bugs
  • Apparaat reageert niet op de applicatie
Help Bronbugs
  • Fouten in helpdocumenten

Verschil tussen databasetesten en ETL-testen

ETL-testen Testen van databases
Controleert of gegevens worden verplaatst zoals verwacht Het primaire doel is om te controleren of de gegevens voldoen aan de regels/normen die zijn gedefinieerd in het datamodel.
Controleert of tellingen in de bron en het doel overeenkomen

Controleert of de getransformeerde gegevens aan de verwachtingen voldoen

Controleer of er geen weesrecords zijn en dat de relaties tussen buitenlandse en primaire sleutels behouden blijven
Controleert of de externe primaire sleutelrelaties tijdens de ETL behouden blijven Controleert of er geen redundante tabellen zijn en of de database optimaal is genormaliseerd
Controleert op duplicatie in geladen gegevens Controleer waar nodig of er gegevens ontbreken in de kolommen

Verantwoordelijkheden van een ETL-tester

De belangrijkste verantwoordelijkheden van een ETL-tester zijn onderverdeeld in drie categorieën

  • Podiumtafel/SFS of MFS
  • Bedrijfstransformatielogica toegepast
  • Target tabel laden vanuit fasebestand of tabel na het toepassen van een transformatie.

Enkele van de verantwoordelijkheden van een ETL-tester zijn

  • ETL-software testen
  • Testcomponenten van ETL-datawarehouse
  • Voer backend datagestuurde tests uit
  • Bedenken, ontwerpen en uitvoeren testgevallen, testplannen en testharnas
  • Identificeer het probleem en bied oplossingen voor mogelijke problemen
  • Goedkeuren van eisen en ontwerpspecificaties
  • Gegevensoverdracht en test plat bestand
  • SQL-query's3 schrijven voor verschillende scenario's, zoals teltest

Prestatietesten in ETL

Prestatietesten in ETL is een testtechniek om ervoor te zorgen dat een ETL-systeem de belasting van meerdere gebruikers en transacties aankan. Het primaire doel van ETL Performance Testing is het optimaliseren en verbeteren van de sessieprestaties door het identificeren en elimineren van prestatieknelpunten. De bron- en doeldatabases, mappings, sessies en het systeem hebben mogelijk prestatieknelpunten.

Een van de beste tools die worden gebruikt voor prestatietests/afstemming is Informatica.

Automatisering van ETL-testen

De algemene methodologie van ETL-testen is het gebruik van SQL-scripting of het “opletten” van gegevens. Deze benaderingen van ETL-testen zijn tijdrovend, foutgevoelig en bieden zelden volledige resultaten. test dekking. Om te versnellen, de dekking te verbeteren, de kosten te verlagen, te verbeteren Defect detectierantsoen van ETL-testen in productie- en ontwikkelomgevingen, automatisering is de noodzaak van het uur. Een voorbeeld van zo'n tool is Informatica.

Beste praktijken voor ETL-testen

  1. Zorg ervoor dat gegevens correct worden getransformeerd
  2. Zonder enig gegevensverlies en afkapping moeten de geprojecteerde gegevens in het datawarehouse worden geladen
  3. Zorg ervoor dat de ETL-toepassing op de juiste manier standaardwaarden afwijst en vervangt en ongeldige gegevens rapporteert
  4. Moet ervoor zorgen dat de gegevens binnen voorgeschreven en verwachte tijdsbestekken in het datawarehouse worden geladen om de schaalbaarheid en prestaties te bevestigen
  5. Alle methoden moeten passende eenheidstests hebben, ongeacht de zichtbaarheid
  6. Om de effectiviteit ervan te meten moeten alle unit-tests geschikte dekkingstechnieken gebruiken
  7. Streef naar één bewering per testgeval
  8. creëren eenheidstests die zich richten op uitzonderingen

Uitchecken - Vragen en antwoorden over ETL-testinterviews