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:
1) Extrahera
- Extrahera relevant data
2) Transformera
- 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.
3) Last
- 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
- Produktionsvalideringstestning
Testprocess: "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)
Testprocess: 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
Testprocess: 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
Testprocess: Metadatatestning inkluderar testning av datatypkontroll, datalängdkontroll och index-/begränsningskontroll. - Test av datafullständighet
Testprocess: 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
Testprocess: Denna testning görs för att säkerställa att data laddas korrekt och transformeras som förväntat. - Datatransformationstestning
Testprocess: 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
Testprocess: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
Testprocess: 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
Testprocess: 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
- Verifiering av kartläggningsdokument
Testfall: Verifiera kartläggningsdokumentet om motsvarande ETL-information tillhandahålls eller inte. Ändringslogg bör bibehållas i varje mappningsdokument. - Validering
Testfall:1) Validera käll- och måltabellstrukturen mot motsvarande mappningsdokument.
2) Källdatatypen och måldatatypen ska vara samma
3) Längden på datatyperna i både källa och mål ska vara lika lång
4) Kontrollera att datafälttyper och format är angivna
5) Källdatatypens längd bör inte vara kortare än måldatatypens längd
6) Validera kolumnnamnen i tabellen mot mappningsdokumentet. - Begränsningsvalidering
Testfall: Se till att begränsningarna är definierade för specifik tabell som förväntat - Datakonsistensproblem
Testfall: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
Testfall:1) Se till att all förväntad data laddas in i måltabellen.
2) Jämför antalet poster mellan källa och mål.
3) Kontrollera om det finns några avvisade poster
4) Kontrollera att data inte ska avkortas i kolumnen i måltabellerna
5) Kontrollera randvärdesanalysen
6) Jämför unika värden för nyckelfält mellan data som laddats till WH och källdata - Korrekthetsfrågor
Testfall:1) Uppgifter som är felstavade eller felaktigt registrerade
2) Null, icke-unik eller data utanför intervallet - Transformation
Testfall: Transformation - Datakvalitet
Testfall:1) Nummerkontroll: Behöver nummerkontrolleras och valideras
2) Datumkontroll: De måste följa datumformatet och det ska vara samma för alla poster
3) Precisionskontroll
4) Datakontroll
5) Nullkontroll - Null validera
Testfall: Verifiera null-värdena, där "Not Null" anges för en specifik kolumn. - Dubblettkontroll
Testfall:1) Behöver validera den unika nyckeln, primärnyckeln och alla andra kolumner ska vara unika enligt affärskraven om det finns dubbletter av rader
2) Kontrollera om det finns några dubbletter av värden i någon kolumn som extraheras från flera kolumner i källkoden och kombineras till en kolumn.
3) Enligt klientens krav måste det säkerställas att inga dubbletter förekommer i kombination med flera kolumner inom målet. - Datum validering
Testfall: Datumvärden använder många områden i ETL-utveckling för1) För att veta när raden skapades
2) Identifiera aktiva poster enligt ETL-utvecklingsperspektivet
3) Identifiera aktiva poster utifrån affärskravperspektivet
4) Ibland genereras uppdateringar och infogningar baserat på datumvärdena. - Komplett datavalidering
Testfall:1) Att validera hela datamängden i käll- och måltabellen minus en fråga i en bästa lösning
2) Vi behöver 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 ska matcha med individuella antal i käll- och måltabellerna
6) Om minus frågereturer för rader och count intersect är mindre än källantalet eller måltabellen kan vi betrakta det som att det finns dubbletter av rader. - Data renhet
Testfall: Onödiga kolumner bör raderas innan du laddar in i uppställningsområdet.
Typer av ETL-buggar
Typ av buggar | BESKRIVNING |
---|---|
Användargränssnittsbuggar/kosmetiska buggar |
• Relaterat till programmets grafiska gränssnitt • Typsnitt, typsnittsstorlek, färger, justering, stavfel, navigering och så vidare |
Boundary Value Analysis (BVA) relaterad bugg | • Minsta och högsta värden |
Equivalence Class Partitioning (ECP)-relaterad bugg | • Giltig och ogiltig typ |
Input/Output buggar |
• Giltiga värden accepteras inte • Ogiltiga värden accepterade |
Beräkningsbuggar |
• Matematiska fel • Slutresultatet är felaktigt |
Ladda tillståndsbuggar |
• Tillåter inte flera användare • Tillåter inte kundens förväntade belastning |
Race Condition buggar |
• Systemkrasch och låsning • Systemet kan inte köra klientplattformar |
Versionskontrollbuggar |
• Ingen logotypmatchning • Ingen versionsinformation tillgänglig • Detta inträffar vanligtvis i Regressionstestning |
H/W buggar | • Enheten svarar inte på appen |
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
- 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