Handledning för ETL-testning

Vad är ETL-testning?

ETL-testning görs för att säkerställa att data som har laddats från en källa till destinationen efter affärstransformation är korrekt. Det innebär också verifiering av data i olika mellanstadier som används mellan källa och destination. ETL står för Extract-Transform-Load.

ETL-testning

Testning av datalager

Testning av datalager är en testmetod där data inuti ett datalager testas för integritet, tillförlitlighet, noggrannhet och konsistens för att följa företagets dataramverk. Huvudsyftet med testning av datalager är att säkerställa att den integrerade datan inuti datalagret är tillräckligt tillförlitlig för ett företag att fatta beslut om.

Vad är ETL?

ETL står för Extract-Transform-Load och det är en process för hur data laddas från källsystemet till datalagret. Data extraheras från en OLTP-databas, transformeras för att matcha datalagerschemat och läses in i datalagerdatabasen. Många datalager innehåller också data från icke-OLTP-system som textfiler, äldre system och kalkylblad.

Låt se hur det fungerar

Till exempel finns det en butik som har olika avdelningar som försäljning, marknadsföring, logistik etc. Var och en av dem hanterar kundinformationen oberoende, och sättet de lagrar denna data på är helt olika. Försäljningsavdelningen har lagrat det efter kundens namn, medan marknadsavdelningen har lagrat det efter kund-id.

Om de nu vill kontrollera kundens historia och vill veta vilka olika produkter han/hon köpt på grund av olika marknadsföringskampanjer; det skulle vara väldigt tråkigt.

Lösningen är att använda en datawarehouse att lagra information från olika källor i en enhetlig struktur med hjälp av ETL. ETL kan omvandla olika datamängder till en enhetlig struktur.Later använda BI-verktyg för att få meningsfulla insikter och rapporter från dessa data.

Följande diagram i denna ETL-testhandledning ger dig ROAD MAP över ETL-testprocessen och olika ETL-testkoncept:

Extrahera-Transformera-Ladda

  1. Utdrag
  • Extrahera relevant data
  1. Förvandla
  • Omvandla data till DW-format (Data Warehouse).
  • Byggnycklar – En nyckel är ett eller flera dataattribut som unikt identifierar en enhet. Olika typer av nycklar är primärnyckel, alternativnyckel, främmande nyckel, sammansatt nyckel, surrogatnyckel. Datawarehouse äger dessa nycklar och tillåter aldrig någon annan enhet att tilldela dem.
  • Rensning av data: Efter att data har extraherats kommer den att gå in i nästa fas, med rengöring och överensstämmelse av data. Rengöring gör utelämnandet av data samt identifierar och åtgärdar felen. Överensstämmelse innebär att lösa konflikterna mellan dessa data som är inkompatibla, så att de kan användas i ett företagsdatalager. Utöver dessa skapar detta system metadata som används för att diagnostisera källsystemproblem och förbättrar datakvaliteten.
  1. Ladda
  • Ladda data till DW (Data Warehouse)
  • Bygg aggregat – Att skapa ett aggregat är att sammanfatta och lagra data som är tillgänglig i faktatabell för att förbättra prestandan för slutanvändarfrågor.

ETL-testprocess

I likhet med andra testprocesser går ETL också igenom olika faser. De olika faserna av ETL-testprocessen är som följer

ETL-testprocess

ETL-testning utförs i fem steg

  1. Identifiera datakällor och krav
  2. Dataregistrering
  3. Implementera affärslogik och dimensionsmodellering
  4. Bygg och fyll i data
  5. Skapa rapporter

ETL-testprocess

Typer av ETL-testning

Typer av testning Testprocess
Produktionsvalideringstestning "Tabellbalansering" eller "produktionsavstämning" denna typ av ETL-testning görs på data när den flyttas till produktionssystem. För att stödja ditt affärsbeslut måste data i dina produktionssystem vara i rätt ordning. Informatik Datavalideringsalternativ tillhandahåller ETL-testautomations- och hanteringsmöjligheter för att säkerställa att produktionssystemen inte äventyras av data.
Källa till Target Testning (valideringstestning) Sådan typ av testning utförs för att validera om de transformerade datavärdena är de förväntade datavärdena.
Ansökan Upgrades Sådan typ av ETL-testning kan genereras automatiskt, vilket sparar betydande testutvecklingstid. Denna typ av testning kontrollerar om data som extraherats från en äldre applikation eller arkiv är exakt samma som informationen i ett arkiv eller en ny applikation.
Metadatatestning Metadatatestning inkluderar testning av datatypkontroll, datalängdkontroll och index-/begränsningskontroll.
Test av datafullständighet För att verifiera att all förväntad data laddas i målet från källan, testas datafullständighet. Några av testerna som kan köras är att jämföra och validera antal, aggregat och faktiska data mellan källan och målet för kolumner med enkel transformation eller ingen transformation.
Datanoggrannhetstestning Denna testning görs för att säkerställa att data laddas korrekt och transformeras som förväntat.
Datatransformationstestning Att testa datatransformation görs eftersom det i många fall inte kan uppnås genom att skriva en källa SQL fråga och jämföra utdata med målet. Flera SQL-frågor kan behöva köras för varje rad för att verifiera omvandlingsreglerna.
Datakvalitetstestning Datakvalitetstester inkluderar syntax- och referenstest. För att undvika eventuella fel på grund av datum eller ordernummer under affärsprocessen utförs datakvalitetstestning.

Syntaxtester: Den kommer att rapportera smutsiga data, baserat på ogiltiga tecken, teckenmönster, felaktig ordning med versaler eller gemener etc.

Referenstest: Det kommer att kontrollera data enligt datamodellen. Till exempel: Kund-ID

Datakvalitetstestning inkluderar nummerkontroll, datumkontroll, precisionskontroll, datakontroll, nollkontroll etc.

Inkrementell ETL-testning Denna testning görs för att kontrollera dataintegriteten för gamla och nya data med tillägg av nya data. Inkrementell testning verifierar att inläggen och uppdateringarna bearbetas som förväntat under den inkrementella ETL-processen.
GUI/Navigationstestning Denna testning görs för att kontrollera navigerings- eller GUI-aspekterna i frontend-rapporterna.

Hur man skapar ETL-testfall

ETL-testning är ett koncept som kan appliceras på olika verktyg och databaser inom informationshanteringsindustrin. Syftet med ETL-testning är att säkerställa att data som har laddats från en källa till destination efter affärstransformation är korrekt. Det innebär också verifiering av data i olika mellanstadier som används mellan källa och destination.

När du utför ETL-testning är två dokument som alltid kommer att användas av en ETL-testare

  1. ETL-mappningsblad:Ett ETL-mappningsblad innehåller all information om käll- och destinationstabeller inklusive varje kolumn och deras uppslag i referenstabeller. En ETL-testare måste vara bekväm med SQL-frågor eftersom ETL-testning kan innebära att skriva stora frågor med flera kopplingar för att validera data i alla skeden av ETL. ETL-mappningsblad ger en betydande hjälp när du skriver frågor för dataverifiering.
  2. DB-schema för källkod, Target: Den bör hållas till hands för att verifiera alla detaljer i kartläggningsblad.

ETL-testscenarier och testfall

Testscenario Test Cases
Verifiering av kartläggningsdokument Verifiera kartläggningsdokumentet om motsvarande ETL-information tillhandahålls eller inte. Ändringslogg bör bibehållas i varje mappningsdokument.
Validering
  1. Validera käll- och måltabellstrukturen mot motsvarande mappningsdokument.
  2. Källdatatyp och måldatatyp bör vara samma
  3. Längden på datatyperna i både källa och mål ska vara lika
  4. Kontrollera att datafältstyper och format är angivna
  5. Källdatatypens längd bör inte vara mindre än måldatatypens längd
  6. Validera namnet på kolumner i tabellen mot mappningsdokument.
Begränsningsvalidering Se till att begränsningarna är definierade för specifik tabell som förväntat
Datakonsistensproblem
  1. Datatypen och längden för ett visst attribut kan variera i filer eller tabeller även om den semantiska definitionen är densamma.
  2. Missbruk av integritetsbegränsningar
Fullständighetsfrågor
  1. Se till att all förväntad data läses in i måltabellen.
  2. Jämför antalet rekord mellan källa och mål.
  3. Kontrollera om det finns några avvisade poster
  4. Kontrolldata ska inte trunkeras i kolumnen med måltabeller
  5. Kontrollera gränsvärdesanalys
  6. Jämför unika värden för nyckelfält mellan data som laddas till WH och källdata
Korrekthetsfrågor
  1. Data som är felstavad eller felaktigt registrerad
  2. Null, icke-unik eller utanför intervallet
Transformation Transformation
Datakvalitet
  1. Nummerkontroll: Behöver nummerkontroll och validera den
  2. Datumkontroll: De måste följa datumformatet och det bör vara samma för alla poster
  3. Precisionskontroll
  4. Datakontroll
  5. Nollkontroll
Null validera Verifiera null-värdena, där "Not Null" anges för en specifik kolumn.
Dubblettkontroll
  1. Behov för att validera den unika nyckeln, primärnyckeln och alla andra kolumner bör vara unika i enlighet med affärskraven med dubbletter av rader
  2. Kontrollera om det finns några dubbletter av värden i någon kolumn som extraherar från flera kolumner i källkoden och kombineras till en kolumn
  3. Enligt kundens krav, måste se till att inga dubbletter i kombination av flera kolumner endast inom målet
Datum validering Datumvärden använder många områden i ETL-utveckling för

  1. För att veta vilket datum raden skapades
  2. Identifiera aktiva poster enligt ETL-utvecklingsperspektivet
  3. Identifiera aktiva poster enligt affärskravsperspektivet
  4. Ibland genereras uppdateringar och infogningar baserat på datumvärdena.
Komplett datavalidering
  1. Att validera hela datamängden i käll- och måltabellen minus en fråga i en bästa lösning
  2. Vi måste källa minus mål och mål minus källa
  3. Om minusfrågan returnerar något värde bör dessa betraktas som rader som inte matchar
  4. Behöver matcha rader mellan källa och mål med hjälp av intersect-satsen
  5. Antalet som returneras av intersect bör matcha med individuella räkningar av käll- och måltabeller
  6. Om minus fråge returnerar rader och count intersect är mindre än källantal eller måltabell kan vi betrakta som dubbletter av rader.
Data renhet Onödiga kolumner bör raderas innan du laddar in i uppställningsområdet.

Typer av ETL-buggar

Typer av ETL-buggar

Typ av buggar Description
Användargränssnittsbuggar/kosmetiska buggar
  • Relaterat till applikationens GUI
  • Teckensnitt, teckenstorlek, färger, justering, stavfel, navigering och så vidare
Boundary Value Analysis (BVA) relaterad bugg
  • Minimi- och maxvärden
Equivalence Class Partitioning (ECP)-relaterad bugg
  • Giltig och ogiltig typ
Input/Output buggar
  • Giltiga värden accepteras inte
  • Ogiltiga värden accepteras
Beräkningsbuggar
  • Matematiska fel
  • Slututgången är fel
Ladda tillståndsbuggar
  • Tillåter inte flera användare
  • Tillåter inte kundens förväntade belastning
Race Condition buggar
  • System kraschar och hänger sig
  • Systemet kan inte köra klientplattformar
Versionskontrollbuggar
  • Ingen logotyp som matchar
  • Ingen versionsinformation tillgänglig
  • Detta sker vanligtvis i Regressionstestning
H/W buggar
  • Enheten svarar inte på applikationen
Hjälpkälla buggar
  • Fel i hjälpdokument

Skillnaden mellan databastestning och ETL-testning

ETL-testning Databastestning
Verifierar om data flyttas som förväntat Det primära målet är att kontrollera om data följer reglerna/standarderna som definieras i datamodellen
Verifierar om antalet i källan och målet matchar

Verifierar om data som omvandlas är enligt förväntningarna

Kontrollera att det inte finns några föräldralösa register och att utländska-primära nyckelrelationer upprätthålls
Verifierar att de främmande primärnyckelrelationerna bevaras under ETL Verifierar att det inte finns några redundanta tabeller och databasen är optimalt normaliserad
Verifierar för duplicering i inlästa data Kontrollera om data saknas i kolumner där det behövs

Ansvar för en ETL-testare

Nyckelansvaret för en ETL-testare är uppdelad i tre kategorier

  • Scenbord/ SFS eller MFS
  • Affärstransformationslogik tillämpas
  • Target tabellladdning från stegfil eller tabell efter tillämpning av en transformation.

Några av ansvaret för en ETL-testare är

  • Testa ETL mjukvara
  • Testa komponenter i ETL datawarehouse
  • Utför backend-datadrivet test
  • Skapa, designa och utföra testfall, testplaner och testsele
  • Identifiera problemet och ge lösningar på potentiella problem
  • Godkänn krav och designspecifikationer
  • Dataöverföringar och testa platt fil
  • Skriver SQL-frågor3 för olika scenarier som räknetest

Prestandatestning i ETL

Prestandatestning i ETL är en testteknik för att säkerställa att ett ETL-system kan hantera belastning av flera användare och transaktioner. Det primära målet för ETL Prestandatester är att optimera och förbättra sessionsprestanda genom att identifiera och eliminera prestandaflaskhalsar. Käll- och måldatabaserna, mappningarna, sessionerna och systemet har möjligen prestandaflaskhalsar.

Ett av de bästa verktygen som används för prestandatestning/inställning är Informatica.

Automatisering av ETL-testning

Den allmänna metoden för ETL-testning är att använda SQL-skript eller göra "ögonblick" av data. Dessa metoder för ETL-testning är tidskrävande, felbenägna och ger sällan fullständiga testtäckning. Att accelerera, förbättra täckningen, minska kostnaderna, förbättra defekt detektering ration av ETL-testning i produktions- och utvecklingsmiljöer, automatisering är behovet av timmen. Ett sådant verktyg är Informatica.

Bästa praxis för ETL-testning

  1. Se till att data omvandlas korrekt
  2. Utan dataförlust och trunkering bör projicerade data laddas in i datalagret
  3. Se till att ETL-applikationen avvisar och ersätter med standardvärden och rapporterar ogiltiga data
  4. Behöver säkerställa att data laddas i datalager inom föreskrivna och förväntade tidsramar för att bekräfta skalbarhet och prestanda
  5. Alla metoder bör ha lämpliga enhetstester oavsett sikt
  6. För att mäta deras effektivitet bör alla enhetstester använda lämpliga täckningstekniker
  7. Sträva efter ett påstående per testfall
  8. Skapa enhetstester som riktar sig mot undantag

Kolla upp - Intervjufrågor och svar för ETL-testning