Hvad er STRESS-test i softwaretest?
Stresstest
Stresstest er en type softwaretest, der verificerer stabiliteten og pålideligheden af softwareapplikationen. Målet med stresstest er at måle software på dets robusthed og fejlhåndteringsevner under ekstremt tunge belastningsforhold og sikre, at software ikke går ned under vanskelige situationer. Den tester endda ud over normale driftspunkter og evaluerer, hvordan software fungerer under ekstreme forhold.
I Software Engineering er stresstest også kendt som Udholdenhedstest. Under stresstest bliver AUT stresset i en kort periode for at kende dens modståelsesevne. En mest fremtrædende anvendelse af stresstest er at bestemme grænsen, ved hvilken systemet eller softwaren eller hardwaren går i stykker. Det kontrollerer også, om systemet udviser effektiv fejlhåndtering under ekstreme forhold.
Applikationen under test vil blive stresset, når 5 GB data kopieres fra hjemmesiden og indsættes i notesblok. Notesblok er under stress og giver 'Ikke svaret' fejlmeddelelse.
Behov for stresstest
Overvej følgende realtidseksempler, hvor vi kan opdage brugen af stresstest-
- I løbet af festivaltiden kan et onlineshoppingsted opleve en stigning i trafikken, eller når det annoncerer et salg.
- Når en blog bliver omtalt i en førende avis, oplever den en pludselig stigning i trafikken.
Det er bydende nødvendigt at udføre stresstest for at imødekomme sådanne unormale trafikstigninger. Undladelse af at imødekomme denne pludselige trafik kan resultere i tab af omsætning og omdømme.
Stresstest er også ekstremt værdifuldt af følgende årsager:
- For at kontrollere, om systemet fungerer under unormale forhold.
- Viser passende fejlmeddelelse, når systemet er under stress.
- Systemfejl under ekstreme forhold kan resultere i enorme indtægtstab
- Det er bedre at være forberedt på ekstreme forhold ved at udføre stresstest.
Mål for stresstest
Målet med stresstest er at analysere systemets adfærd efter en fejl. For at stresstestning skal lykkes, bør et system vise en passende fejlmeddelelse, mens det er under ekstreme forhold.
For at udføre stresstest kan der nogle gange bruges massive datasæt, som kan gå tabt under stresstest. Testere bør ikke miste disse sikkerhedsrelaterede data, mens de udfører stresstest.
Hovedformålet med stresstest er at sikre, at systemet genopretter sig efter fejl, som kaldes som inddrivelsesevne.
Belastningstest vs stresstest
Load Testing | Stresstest |
---|---|
Load Testing er at teste systemets adfærd under normale arbejdsbelastningsforhold, og det er bare at teste eller simulere med den faktiske arbejdsbyrde | Stresstest er at teste systemets adfærd under ekstreme forhold og udføres indtil systemfejl. |
Belastningstest bryder ikke systemet | stresstest forsøger at bryde systemet ved at teste med overvældende data eller ressourcer. |
Typer af stresstest
Følgende er typerne af stresstest og forklares som følger:
Distribueret stresstest:
I distribuerede klient-server-systemer udføres test på tværs af alle klienter fra serveren. Stressserverens rolle er at distribuere et sæt stresstests til alle stressklienter og spore klientens status. Når klienten kontakter serveren, tilføjer serveren navnet på klienten og begynder at sende data til test.
I mellemtiden sender klientmaskiner signal eller hjerteslag om, at den er forbundet med serveren. Hvis serveren ikke modtager nogen signaler fra klientmaskinen, skal den undersøges nærmere for fejlfinding. Fra figuren kan en server oprette forbindelse til de 2 klienter (Client1 og Client2), men den kan ikke sende eller modtage et signal fra klient 3 & 4.
Natløb er den bedste mulighed for at køre disse stresstestscenarier. Store serverfarme har brug for en mere effektiv metode til at afgøre, hvilke computere der har haft stressfejl, der skal undersøges.
Anvendelsesstresstest:
Denne test koncentrerer sig om at finde defekter relateret til datalåsning og blokering, netværksproblemer og ydeevneflaskehalse i en applikation.
Transaktionel stresstest:
Den udfører stresstest på en eller flere transaktioner mellem to eller flere applikationer. Det bruges til at finjustere og optimere systemet.
Systemisk stresstest:
Dette er integreret stresstest, som kan testes på tværs af flere systemer, der kører på samme server. Det bruges til at finde defekter, hvor en applikationsdata blokerer en anden applikation.
Udforskende stresstest:
Dette er en af de typer af stresstest, som bruges til at teste systemet med usædvanlige parametre eller forhold, der sandsynligvis ikke vil forekomme i et virkeligt scenarie. Det bruges til at finde fejl i uventede scenarier som f.eks
- Et stort antal brugere loggede på samme tid
- Hvis en virusscanner startede i alle maskiner samtidigt
- Hvis databasen er gået offline, når den tilgås fra et websted,
- Når en stor mængde data indsættes i databasen samtidigt
Hvordan laver man stresstest?
Stresstestprocessen kan udføres i 5 overordnede trin:
Trin 1) Planlægning af stresstesten: Her samler du systemdataene, analyserer systemet, definerer stresstestens mål
Trin 2) Opret automatiseringsscripts: I denne fase opretter du stresstestautomatiseringsscripts, genererer testdata for stressscenarierne.
Trin 3) Scriptudførelse: I denne fase kører du stresstestautomatiseringsscripts og gemmer stressresultaterne.
Trin 4) Analyse af resultater: I denne fase analyserer du stresstestresultaterne og identificerer flaskehalse.
Trin 5) Tweaking og optimering: I denne fase finjusterer du systemet, ændrer konfigurationer, optimerer koden med målet at nå det ønskede benchmark.
Til sidst kører du igen hele cyklussen for at fastslå, at justeringerne har givet de ønskede resultater. For eksempel er det ikke usædvanligt at skulle bruge 3 til 4 cyklusser af stresstestprocessen for at nå præstationsmålene
Værktøjer anbefalet til stresstest
LoadRunner
LoadRunner fra HP er et meget brugt belastningstestværktøj. Belastningstestresultater formet af Loadrunner betragtes som et benchmark.
Jmeter
Jmeter er et Open Source-testværktøj. Det er en ren Java ansøgning om stress og Test af ydeevne. Jmeter er beregnet til at dække typer af test som belastning, funktionel, stress osv. Det kræver JDK 5 eller højere for at fungere.
Stress tester
Dette værktøj giver omfattende analyse af webapplikationens ydeevne, giver resultater i grafisk format, og det er ekstremt nemt at bruge. Ingen scripting på højt niveau er påkrævet og giver et godt afkast af investeringen.
Neo belastning
Dette er et populært værktøj på markedet til at teste nettet og Mobil applikationer. Dette værktøj kan simulere tusindvis af brugere for at evaluere applikationens ydeevne under belastning og analysere responstiderne. Det understøtter også Cloud-integreret – præstations-, belastnings- og stresstest. Den er nem at bruge, omkostningseffektiv og giver god skalerbarhed.
Metrik til stresstest
Målinger hjælper med at evaluere et systems ydeevne og studeres generelt i slutningen af stresstesten. Ofte brugte metrics er -
Måling af skalerbarhed og ydeevne
- Sider pr. sekund: Måler, hvor mange sider der er blevet anmodet om / sekund
- Gennemløb: Grundlæggende metrisk – svardatastørrelse/sekund
- Runder: Antal gange testscenarier er blevet planlagt Versus Antal gange en klient har udført
Ansøgning svar
- Hittid: Gennemsnitlig tid til at hente et billede eller en side
- Tid til den første byte: Det tager tid at returnere den første byte med data eller information
- Sidetid: Det tager tid at hente al information på en side
Svigt
- Mislykkede forbindelser: Antal mislykkede forbindelser afvist af klienten (svag Signal)
- Mislykkede runder: Antal runder det bliver mislykket
- Mislykkede hits: Antal mislykkede forsøg udført af systemet (brudte links eller usete billeder)
Konklusion
Stresstests formål er at kontrollere systemet under ekstreme forhold. Det overvåger systemressourcer såsom hukommelse, processor, netværk osv., og kontrollerer systemets evne til at gendanne tilbage til normal status. Den kontrollerer, om systemet viser passende fejlmeddelelser under stress.
Eksempel på stresstest
- E-handelshjemmeside annoncerer et festivaludsalg
- Nyhedswebsted på tidspunktet for nogle større begivenheder
- Uddannelsesnævnets resultathjemmeside
- Sociale netværkssider eller blogs, apps osv