Hvad er volumentestning? Lær med eksempler
⚡ Smart opsummering
Volumentestning udsætter en applikation for en meget stor mængde data for at se, hvordan lagring, forespørgsler og svartider opfører sig, efterhånden som databasen vokser. Det kaldes også flood testing, og det skalerer dataene snarere end antallet af brugere.
Hvad er volumentestning?
Volumentestning er en type softwaretest, hvor softwaren udsættes for en enorm mængde data. Det omtales også som oversvømmelsestest. Volumentest udføres for at analysere systemets ydeevne ved at øge mængden af data i databasen.
Ved hjælp af volumentestning kan indvirkningen på responstid og systemadfærd studeres, når de udsættes for en stor mængde data.
For eksempel kan en musikstreamingtjeneste testes med et katalog på 50 millioner tracks og en tabel med lyttehistorik, der indeholder milliarder af rækker, for at se, om søge- og anbefalingsforespørgsler stadig returneres inden for en acceptabel tid.
Bemærk forskellen: volumentestning øger mængden af data systemet holder. Øger antal samtidige brugere er belastningstest, som er en anden test med et andet formål.
Fordele ved volumentestning
- Tidlig identifikation af kapacitetsproblemer undgår de langt højere omkostninger ved at løse dem i produktionen
- Det hjælper med en hurtigere start for skalerbarhedsplaner
- Tidlig identifikation af flaskehalse
- Det sikrer, at dit system nu er i stand til brug i den virkelige verden
Hvorfor udføre volumentestning?
Formålet med at udføre volumentestningen er at
- Tjek systemets ydeevne med stigende datamængder i databasen
- Identificer de problemer, der sandsynligvis vil opstå, når datasættet bliver stort
- For at finde ud af det punkt, hvor systemets stabilitet forringes
- Volumentestning vil hjælpe med at identificere kapaciteten af systemet eller applikationen – normal og tung volumen
Sådan udfører du volumentestning
Ved volumentest skal følgende ting testes
- Test for at kontrollere, om der er datatab
- Tjek systemets responstid
- Tjek, om dataene er lagret korrekt eller ej
- Bekræft, om dataene er overskrevet uden nogen meddelelse
- Kontroller, at advarsler og fejlmeddelelser rent faktisk vises, når en volumengrænse er nået
- Kontroller, om data i høj volumen påvirker behandlingshastigheden
- Bekræft, at systemet har de hukommelses- og lagerressourcer, som diskenheden kræver
- Bekræft, at volumentesten dækker hele systemet i stedet for en enkelt komponent
- Er der nogen risiko, hvis datamængden er større end specificeret
- Fastslå, om der er nogen garanti for, at datamængden ikke vil overstige den angivne maksimale mængde
Bedste Practices for High Volume Testing
Flere af nedenstående fremgangsmåder deles med load testing, fordi de to normalt køres mod det samme miljø. De volumenspecifikke fremgangsmåder vedrører selve datasættet:
- Stop alle servere og tjek alle logfiler
- Før belastningstesten skal du udføre applikationsscenariet manuelt
- For de mest nyttige resultater forskydes antallet af brugere
- For at overvinde licensbegrænsninger, balancere tænketid
- Vær forsigtig med det nye byggeri
- Analyser use casen for forbedring, når en baseline er blevet etableret
- En gentagelse af bestemte dele af volumentestning bliver uundgåelig, hvis der er en flaskehals i ydeevnen
Volumentest vs. belastningstest
| Volumentestning | Load Testing |
|---|---|
|
|
|
|
Udfordringer i volumentestning
- Fragmentering af hukommelse vanskelig at generere
- Dynamisk generering af nøgler
- Relationel Integrity af genererede data
Hvordan denne test sammenlignes med andre præstationstests
Ydelsestestning er en familie af tests, der adskiller sig i formen af den påførte belastning, hvilket er grunden til, at de så let forveksles.
| Testtype | Hvad er øget | Spørgsmål det besvarer |
|---|---|---|
| Belastningstest | Samtidige brugere, til den forventede top | Opfylder det målene under normal spidsbelastning? |
| Volumentest | Data opbevaret i databasen | Klarer den sig, når datasættet vokser? |
| Stresstest | Belast ud over kapacitet, indtil fejl | Hvor går den i stykker, og hvordan? |
| Spike test | Indlæs, øjeblikkeligt og ekstremt | Overlever den og kommer den sig efter et chok? |
| Udholdenhedstest | Varighed ved normal belastning | Forringes ydeevnen over tid? |
| Soak-test | Varighed, observationsressourcer | Er der hukommelses- eller handle-lækager? |
| Stabilitetstest | Varierende forhold | Forbliver den pålidelig, når forholdene ændrer sig? |
Den mest betydningsfulde forskel her: Volumentest skalerer dataene, belastningstest skalerer brugerne. En rapport, der kører på to sekunder mod ti tusinde rækker og to minutter mod ti millioner rækker, har et volumenproblem, ikke et belastningsproblem, og ingen ekstra serverkapacitet vil løse det.
Sådan genereres testdata til volumentestning
Afsnittet om udfordringer bemærker, at generering af realistiske data er den vanskelige del af volumentestning. Fire tilgange anvendes i praksis, og hver især involverer et kompromis.
| Tilgang | Realisme | Vigtigste ulempe |
|---|---|---|
| Kopi af produktionsdata | Højeste | Eksponering for privatliv og overholdelse af regler |
| Maskeret produktionseksemplar | Høj | Maskering kan ødelægge referentiel integritet |
| Syntetisk generation | Medium | Fordelinger stemmer muligvis ikke overens med virkeligheden |
| Genafspillet produktionstrafik | Høj | Kræver opsamlingsinfrastruktur |
Uanset hvilken vej du vælger, skal tre egenskaber være gældende, ellers måler testen intet brugbart.
- Referentiel integritet. Enhver fremmednøgle skal fortolkes. En million forældreløse rækker bruger lagringsprogrammet, men aldrig de join-stier, som applikationen rent faktisk bruger.
- Realistisk kardinalitet. Hvis produktionstabellen har ti millioner rækker på tværs af to hundrede kunder, vil generering af ti millioner rækker på tværs af ti millioner kunder producere helt andre forespørgselsplaner.
- Realistisk fordeling. Reelle data er skæve. Ensartet tilfældige data skjuler de aktive partitioner og indekskonflikter, der forårsager produktionshændelser.
En praktisk advarsel om privatliv. Kopiering af produktionsdata til et testmiljø er den mest almindelige årsag til databrud i forbindelse med test. Maskér personlige felter, før kopien forlader produktionen, ikke bagefter.

