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.
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:
- Utdrag
- Extrahera relevant data
- 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.
- 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-testning utförs i fem steg
- Identifiera datakällor och krav
- Dataregistrering
- Implementera affärslogik och dimensionsmodellering
- Bygg och fyll i data
- Skapa rapporter
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
- 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.
- 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 |
|
Begränsningsvalidering | Se till att begränsningarna är definierade för specifik tabell som förväntat |
Datakonsistensproblem |
|
Fullständighetsfrågor |
|
Korrekthetsfrågor |
|
Transformation | Transformation |
Datakvalitet |
|
Null validera | Verifiera null-värdena, där "Not Null" anges för en specifik kolumn. |
Dubblettkontroll |
|
Datum validering | Datumvärden använder många områden i ETL-utveckling för
|
Komplett datavalidering |
|
Data renhet | Onödiga kolumner bör raderas innan du laddar in i uppställningsområdet. |
Typer av ETL-buggar
Typ av buggar | Description |
---|---|
Användargränssnittsbuggar/kosmetiska buggar |
|
Boundary Value Analysis (BVA) relaterad bugg |
|
Equivalence Class Partitioning (ECP)-relaterad bugg |
|
Input/Output buggar |
|
Beräkningsbuggar |
|
Ladda tillståndsbuggar |
|
Race Condition buggar |
|
Versionskontrollbuggar |
|
H/W buggar |
|
Hjälpkälla buggar |
|
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
- Se till att data omvandlas korrekt
- Utan dataförlust och trunkering bör projicerade data laddas in i datalagret
- Se till att ETL-applikationen avvisar och ersätter med standardvärden och rapporterar ogiltiga data
- 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
- Alla metoder bör ha lämpliga enhetstester oavsett sikt
- För att mäta deras effektivitet bör alla enhetstester använda lämpliga täckningstekniker
- Sträva efter ett påstående per testfall
- Skapa enhetstester som riktar sig mot undantag
Kolla upp - Intervjufrågor och svar för ETL-testning