Handledning för Big Data-testning: Vad är det, strategi, hur man testar
⚡ Smart sammanfattning
Big Data-testning verifierar att en big data-applikation bearbetar terabyte av data korrekt, snabbt och säkert, genom att kombinera validering av datastaging, MapReduce-validering och utdatavalidering med arkitektur- och prestandakontroller över ett distribuerat Hadoop-kluster.
Vad är stordatatestning?
Big Data-testning är en testprocess av en big data-applikation för att säkerställa att alla funktioner i en big data-applikation fungerar som förväntat. Målet med big data-testning är att säkerställa att big data-systemet körs smidigt och felfritt samtidigt som prestanda och säkerhet bibehålls.
Stordata är en samling av stora datamängder som inte kan bearbetas med traditionella datortekniker. Testning av dessa datamängder involverar olika verktyg, tekniker och ramverk för att bearbeta dem. Stordata avser skapande, lagring, hämtning och analys av data, vilket är anmärkningsvärt vad gäller volym, variation och hastighet. Du kan lära dig mer om Stora data, Hadoop och MapReduce innan du börjar testa.
Vad är Big Data-teststrategi?
Att testa en stordataapplikation handlar snarare om att verifiera dess databehandling än att testa de enskilda funktionerna i programvaruprodukten. När det gäller stordatatestning är prestanda- och funktionstestning nyckeln.
I en strategi för stordatatestning verifierar QA-ingenjörer den framgångsrika bearbetningen av terabyte data med hjälp av ett handelskluster och andra stödjande komponenter. Det kräver höga testfärdigheter eftersom bearbetningen är mycket snabb. Bearbetning kan vara av tre typer:
- Satsvis bearbetning: Lagrade data bearbetas enligt ett schema, så testerna fokuserar på jobbslutförande och noggrannhet.
- Bearbetning i realtid: Journaler bearbetas vid ankomst, så tester riktar in sig på latens och dataförlust.
- Interaktiv bearbetning: Analytiker frågar direkt, så tester riktar in sig på svarstid för ad hoc-frågor.
Diagrammet nedan sammanfattar strategin.
Utöver detta är datakvalitet också en viktig faktor vid Hadoop-testning. Innan applikationen testas är det nödvändigt att kontrollera datakvaliteten, och detta bör beaktas som en del av databastestningen. Det innebär att man kontrollerar olika egenskaper som överensstämmelse, noggrannhet, duplicering, konsistens, validitet, datafullständighet etc. Härnäst i denna handledning om Hadoop-testning kommer vi att lära oss hur man testar Hadoop-applikationer.
Hur man testar Hadoop-applikationer
Följande figur ger en översikt över faserna i testning av stordataapplikationer.
Big Data-testning, eller Hadoop-testning, kan i stort sett delas in i tre steg.
Steg 1: Validering av datalagring
Det första steget i den här handledningen för stordatatestning kallas för pre-Hadoop-stadiet och det involverar processvalidering.
- Data från olika källor som RDBMS, webbloggar, sociala medier etc. bör valideras för att säkerställa att korrekt data hämtas in i systemet.
- Jämför källdata med data som skickas in i Hadoop-systemet för att se till att de matchar
- Verifiera att korrekta uppgifter är extracoch laddas i rätt HDFS läge
Verktyg som Talang och Datameer kan användas för validering av datastaging.
Steg 2: "MapReduce"-validering
Det andra steget är en validering av ”MapReduce”. I detta skede verifierar Big Data-testaren valideringen av affärslogiken på varje nod och validerar den sedan efter att ha körts mot flera noder, vilket säkerställer att:
- MapReduce-processen fungerar korrekt
- Regler för dataaggregering eller segregering implementeras på data
- Nyckelvärdespar genereras
- Validera data efter MapReduce-processen
Steg 3: Utdatavalideringsfas
Det sista eller tredje steget av Hadoop-testning är utdatavalideringsprocessen. Utdatafilerna genereras och är redo att flyttas till ett EDW (Enterprise Data Warehouse) eller något annat system baserat på kravet.
Aktiviteter i den tredje etappen inkluderar:
- För att kontrollera att omvandlingsreglerna tillämpas korrekt
- För att kontrollera dataintegriteten och framgångsrik dataladdning i målsystemet
- För att kontrollera att det inte finns någon datakorruption genom att jämföra måldata med HDFS-filsystemdata
Architecture Testing
Uppmärksamheten flyttas nu från datan till klustret som bär den.
Hadoop bearbetar mycket stora datamängder och är mycket resurskrävande. Därför är arkitekturtestning avgörande för att säkerställa att ditt stordataprojekt lyckas. Ett dåligt eller felaktigt utformat system kan leda till prestandaförsämring, och systemet kan misslyckas med att uppfylla kraven. Som ett minimum, prestanda och redundanstesttjänster bör köras i en Hadoop-miljö.
Prestandatestning inkluderar testning av jobbslutförandetid, minnesutnyttjande, dataflöde och liknande systemmått. Syftet med redundanstesttjänsten är att verifiera att databehandling sker sömlöst vid fel på datanoder.
Prestandatester
Prestandatestning för stordata täcker tre huvudområden.
- Datainmatning och dataflöde: I det här steget verifierar Big Data-testaren hur snabbt systemet kan konsumera data från olika datakällor. Testning innebär att identifiera antalet meddelanden som kön kan bearbeta inom en given tidsram. Det inkluderar också hur snabbt data kan infogas i det underliggande datalagret, till exempel infogningshastigheten i en MongoDB och Cassandra databas.
- Databehandling: Det innebär att verifiera hastigheten med vilken frågorna eller MapReduce-jobben körs. Det inkluderar också att testa databehandlingen isolerat när det underliggande datalagret är ifyllt i datamängderna. Till exempel att köra MapReduce-jobb på den underliggande HDFS:en.
- Delkomponenternas prestanda: Dessa system består av flera komponenter, och det är viktigt att testa var och en av dessa komponenter isolerat. Till exempel hur snabbt meddelandet indexeras och konsumeras, MapReduce-jobb, frågeprestanda, sökning etc.
Prestandatestningsmetod
Prestandatestning för en stordataapplikation innebär testning av enorma volymer strukturerad och ostrukturerad data, och det kräver en specifik testmetod för att testa sådan massiv data.
Arbetsflödet nedan visar sekvensen för ett prestandatest.
Prestandatestning utförs i denna ordning.
- Processen börjar med att Big Data-klustret konfigureras, vars prestanda ska testas.
- Identifiera och designa motsvarande arbetsbelastningar
- Förbered individuella klienter (anpassade skript skapas)
- Utför testet och analysera resultaten (om målen inte uppfylls, finjustera komponenten och kör om)
- Optimal konfiguration
Parametrar för prestandatestning
Olika parametrar som ska verifieras för prestandatestning är:
- Datalagring: Hur data lagras i olika noder
- Bekräfta loggar: Hur stor commit-loggen tillåts växa
- Samtidighet: Hur många trådar kan utföra skriv- och läsoperationer
- Cachning: Justera cacheinställningarna för "radcache" och "nyckelcache"
- Timeouts: Värden för anslutningstimeout, frågetimeout etc.
- JVM-parametrar: Heapstorlek, GC-insamlingsalgoritmer etc.
- MapReduce-prestanda: Sorterar, sammanfogar osv.
- Meddelandekö: Meddelandehastighet, storlek etc.
Testmiljöbehov
Testmiljöns behov beror på vilken typ av applikation du testar. För testning av stordataprogramvara bör testmiljön omfatta följande.
- Den bör ha tillräckligt med utrymme för lagring och bearbetning av en stor mängd data
- Den bör ha ett kluster med distribuerade noder och data
- Den bör ha minimal CPU och minnesutnyttjande för att hålla prestanda hög för att testa Big Data-prestanda
Big Data-testning kontra traditionell databastestning
Tabellen nedan jämför de två disciplinerna, fastighet för fastighet.
| Våra Bostäder | Traditionell databastestning | Big Data testning |
|---|---|---|
| Data | Testaren arbetar med strukturerad data | Tester arbetar med både strukturerad och ostrukturerad data |
| Testmetod | Testmetoden är väldefinierad och tidsbeprövad | Testmetoden kräver fokuserade FoU-insatser |
| Teststrategi | Testaren kan välja mellan strategin "Sampling" som utförs manuellt eller strategin "Exhaustive Verification" med ett automatiseringsverktyg. | "Sampling"-strategi inom Big Data är en utmaning |
| Infrastruktur | Det kräver ingen speciell testmiljö eftersom filstorleken är begränsad | Det kräver en speciell testmiljö på grund av stor datastorlek och filer (HDFS) |
| Valideringsverktyg | Testaren använder antingen Excel-baserade makron eller användargränssnittsbaserade automatiseringsverktyg | Inga definierade verktyg; utbudet är stort, från programmeringsverktyg som MapReduce till HiveQL |
| Testverktyg | Testverktyg kan användas med grundläggande användarkunskap och mindre utbildning | Det kräver en specifik uppsättning färdigheter och utbildning för att använda ett testverktyg. Verktygen är dessutom i sin linda och med tiden kan de komma med nya funktioner. |
Verktyg som används i stordatascenarier
Tabellen nedan grupperar de vanliga verktygen efter klusterlager.
| Stora data Cluster | Big Data-verktyg |
|---|---|
| NoSQL: | CouchDB, Databaser MongoDB, Cassandra, Redis, ZooKeeper, HBase |
| MapReduce: | Hadoop, Bikupa, Gris, Kaskad, Oozie, Kafka, S4, MapR, Flume |
| Förvaring: | S3, HDFS (Hadoop Distribuerat Filsystem) |
| servrar: | Elastisk, Heroku, Google Appmotor, EC2 |
| Bearbetning: | R, Yahoo! Pipes, Mechanical Turk, BigSheets, Datameer |
Utmaningar i Big Data Testing
Tre praktiska hinder återkommer i nästan varje stordataprojekt.
- Automation: Automationstestning För stordata krävs det någon med teknisk expertis. Dessutom är automatiserade verktyg inte utrustade för att hantera oväntade problem som uppstår under testning.
- Virtualisering: Det är en av de viktigaste faserna i testningen. Latens i virtuella maskiner skapar tidsproblem vid prestandatestning av stordata i realtid. Dessutom är det krångligt att hantera bilder i stordata.
- Stor datamängd: Tre tryck kommer med volym.
- Behöver verifiera mer data och behöver göra det snabbare
- Behöver automatisera testarbetet
- Behöver kunna testa på olika plattformar
Prestandatestningsutmaningar
- Olika uppsättningar av teknologier: Varje delkomponent tillhör en annan teknik och kräver testning separat.
- Bristande tillgång till specifika verktyg: Inget enskilt verktyg kan utföra heltäckande tester. Till exempel kanske NoSQL inte passar för meddelandeköer.
- Testskript: En hög grad av skriptkunskap krävs för att utforma testscenarier och testfall
- Testmiljö: Den behöver en speciell testmiljö på grund av den stora datastorleken
- Övervakningslösning: Det finns begränsade lösningar som kan övervaka hela miljön
- Diagnostisk lösning: En anpassad lösning krävs för att granska prestandaflaskhalsar



