performance testing vs load testing vs stress testing
Skillnad mellan prestandatestning, belastningstest och stresstestning - med exempel
Vår tidigare handledning i denna serie kommer att vara bäst Guide för prestandatestning för alla nybörjare.
Inom programvarutestningsfältet stöter vi på termer som prestandatestning, belastningstestning, stresstestning etc. Dessa termer missförstås ofta och tolkas som samma begrepp.
Det finns dock en signifikant skillnad mellan dessa tre testtyper och det är viktigt för en testare att förstå detsamma.
=> Klicka här för fullständiga prestandatesthandledningsserier
I denna handledning kommer vi att diskutera var och en av dessa testtyper för att förstå de exakta skillnaderna mellan dem.
Vad du kommer att lära dig:
Skillnaden mellan prestandatestning, belastningstest och stresstestning
# 1) Prestandatestning
Vad är prestandatestning?
Prestandatestning är testningen som utförs för att fastställa hur komponenterna i ett system fungerar under en viss given situation.
Resursanvändning, skalbarhet och tillförlitlighet hos produkten valideras också under denna testning. Denna testning är delmängden av performance engineering, som fokuserar på att hantera prestandafrågor i design och arkitektur för en programvaruprodukt.
Ovanstående bild förklarar klart för oss det Prestandatestning är superset för både belastning och stresstestning. Andra typer av tester som ingår i prestandatestning är Spike-testning, Volymtestning, Uthållighetstestning och Test av skalbarhet . Således är prestandatestning i grunden en mycket bred term.
Prestandatestmål:
Det primära målet för prestandatestning inkluderar att fastställa systemets riktmärkebeteende. Det finns ett antal branschdefinierade riktmärken som bör uppfyllas under prestandatest.
Prestandatestning syftar inte till att hitta fel i applikationen. Det klarar inte heller eller misslyckas testet. Snarare behandlar den den kritiska uppgiften att ställa in riktmärke och standard för en applikation . Prestandatest bör göras mycket noggrant. Noggrann övervakning av applikationens / systemets prestanda är det främsta kännetecknet för prestandatestning.
Riktmärket och standarden för applikationen bör ställas i termer av attribut som hastighet, svarstid, genomströmning, resursanvändning och stabilitet. Alla dessa attribut testas i ett prestandatest.
Till exempel,
Du kan till exempel testa applikationsnätverksprestandan genom diagrammet 'Anslutningshastighet vs. latens'. Latens är tidsskillnaden mellan data som ska nås från källan till destinationen.
En sida på 70 kb tar inte mer än 15 sekunder att ladda för den värsta anslutningen på 28,8 kbps modem (latens = 1000 millisekunder), medan sidan av samma storlek visas inom 5 sekunder för den genomsnittliga anslutningen på 256 kbps DSL (latens = 100 millisekunder).
En T1-anslutning på 1,5 Mbps (latens = 50 millisekunder) skulle ha prestandamätvärdet satt till 1 sekund för att uppnå detta mål.
Annan exempel skulle vara den för en begäran-svar-modell. Vi kan ställa in ett riktmärke för att tidsskillnaden mellan generering av begäran och bekräftelse av svar ska ligga i intervallet x ms (millisekunder) och y ms, där x och y är standardsiffrorna.
Ett framgångsrikt prestandatest bör projicera de flesta prestandafrågor, som kan relateras till databas, nätverk, programvara, hårdvara etc.
# 2) Lasttestning
Lasttestning är tänkt att testa systemet genom att ständigt och stadigt öka belastningen på systemet tills det når tröskelvärdet. Det är en delmängd av prestandatestning.
Lasttestning kan enkelt göras genom att använda något av lämpliga automatiseringsverktyg som finns på marknaden. WAPT och LoadRunner är två sådana berömda verktyg som hjälper till med lasttestning. Lasttestning är också känd av namn som Volymtestning och Uthållighetsprovning .
Volymtestning fokuserar dock främst på databaser. Uthållighetsprovning testar systemet genom att hålla det under en betydande belastning under en långvarig tidsperiod.
Det enda syftet med belastningstestning är att tilldela systemet det största jobbet det eventuellt kan hantera för att testa systemets uthållighet och övervaka resultaten. Ett intressant faktum här är att systemet ibland matas med en tom uppgift för att bestämma systemets beteende i nollastningssituationen.
Attributen som övervakas i ett belastningstest inkluderar topprestanda, servergenomströmning, svarstid under olika belastningsnivåer (under tröskelvärdet för brott), tillräcklighet för H / W-miljö, hur många användarapplikationer den kan hantera utan att påverka prestandan.
Lasttestmål:
Målet med lasttestning inkluderar:
- Exponera defekterna i ett program relaterat till buffertöverflöde, minnesläckage och felhantering av minnet. Problemen som så småningom skulle komma ut som ett resultat av belastningstestning kan inkludera problem med belastningsbalansering, problem med bandbredd, kapaciteten i det befintliga systemet etc.
- Att bestämma den övre gränsen för alla komponenter i en applikation som en databas, hårdvara, nätverk etc. så att applikationen kan hantera den förväntade belastningen i framtiden.
- För att ställa in SLA för applikationen.
Till exempel,
Låt oss överväga att kontrollera e-postfunktionaliteten för en applikation som kan översvämmas av 1000 användare åt gången. Nu kan 1000 användare avfyra e-posttransaktionerna (läsa, skicka, radera, vidarebefordra, svara) på många olika sätt.
Om vi tar en transaktion per användare per timme skulle det vara 1000 transaktioner per timme. Genom att simulera 10 transaktioner / användare kan vi ladda testa e-postservern genom att uppta den med 10000 transaktioner / timme.
Ett annat exempel på ett lasttest visas i bilden nedan:
Ovanstående bild visar ett belastningstest gjort i verktyget som kallas JMeter . Detta test görs för att identifiera hur många användare ett system kan hantera. I detta test läggs 100 användare till var 30: e sekund tills belastningen når 1000 användare. Varje steg tar 30 sekunder att slutföra och JMeter väntar i 30 sekunder innan nästa steg startar.
När belastningen når 1000 trådar fortsätter alla att gå i 300 sekunder (5 minuter) tillsammans och slutar slutligen 10 trådar var tredje sekund.
# 3) Stresstestning
Under stresstester utförs olika aktiviteter för att överbelasta befintliga resurser med överflödiga jobb i ett försök att bryta ner systemet. Negativ testning , som inkluderar borttagning av komponenterna från systemet görs också som en del av stresstestning.
Också känd som utmattningstestning bör denna testning fånga stabiliteten i en applikation genom att testa den utöver dess bandbreddskapacitet.
I grund och botten utvärderar stresstest beteendet hos en applikation utöver toppbelastning och normala förhållanden.
Syftet med stresstestning är att fastställa systemets fel och att övervaka hur systemet återhämtar sig graciöst. Utmaningen här är att skapa en kontrollerad miljö innan du startar testet så att du exakt kan fånga systemets beteende upprepade gånger under de mest oförutsägbara scenarierna.
Frågorna som så småningom skulle komma ut som ett resultat av stresstestning kan inkludera synkroniseringsproblem, minnesläckage, tävlingsförhållanden etc. Om stresstestet kontrollerar hur systemet beter sig i situationen med en plötslig ökning av antalet användare , då kallas det ett spikprov.
Om stresstestet är att kontrollera systemets hållbarhet över en tidsperiod genom långsam uppgradering av antalet användare kallas det som ett blötprov.
Stresstestmål:
Målet med stresstestning är att analysera rapporter efter krasch för att definiera applikationens beteende efter misslyckande.
Den största utmaningen är att säkerställa att systemet inte äventyrar säkerheten för känsliga data efter felet. I en framgångsrik stresstest kommer systemet att återgå till normalitet tillsammans med alla dess komponenter även efter den mest fruktansvärda sammanbrottet.
Till exempel,
Som ett exempel används en ordbehandlare som Writer1.1.0 av OpenOffice.org för utveckling av bokstäver, presentationer, kalkylblad etc. Syftet med vår stresstestning är att ladda det med överflödiga tecken.
För att göra detta klistrar vi upprepade gånger en rad data tills den når sin tröskelgräns för hantering av en stor textvolym. Så snart teckenstorleken når 65 535 tecken skulle den helt enkelt vägra att acceptera mer data.
Resultatet av stresstest på Writer 1.1.0 ger resultatet att det inte kraschar under stressen och det hanterar situationen graciöst vilket säkerställer att applikationen fungerar korrekt även under stränga stressförhållanden.
Ett annat exempel på ett lasttest som visar ett spikprov genom plötslig uppstart av 7000 användare visas nedan:
Vanliga frågor
Efter att ha haft tillräckligt med diskussioner om prestandatestning, stresstestning och belastningstestning, låt oss nu titta på några relaterade frekventa frågor som testare söker svar på.
F # 1) Är belastningstestning och prestandatestning samma?
Svar: Svaret på detta är 'Nej'. De är inte desamma.
Nu måste du ha klart förstått skillnaden mellan prestandatestning och belastningstestning. Du kan hänvisa till tabellöversikten nedan för att se hur prestanda och belastningstest har olika mål, attribut för att studera och problem att avslöja.
F # 2) Är det ett orättvist test att utföra stresstester samtidigt som du utför belastningstester?
Svar: Detta är också en vanlig fråga i många programvarutestintervjuer och certifieringsprov, eftersom det är orättvist att göra stresstester och belastningstest parallellt? Svaret på detta är 'Nej'. Det är inte orättvist att göra stresstester samtidigt som du gör belastningstester.
Inget test är någonsin orättvist. Som testare är ditt arbete att hitta problem. Verkligheten i programvarutestning kan dock gälla och alla problem som du upptäcker i denna situation kanske inte rättas till.
F # 3) Är återställningstester en del av prestandatestning?
Svar: Ja, återvinningstest kategoriseras under prestandatestning och ibland utförs det också med belastningstestning. I återhämtningstest , det öppnas som hur bra ett program kan återhämta sig från fel, kraschar, maskinvarufel och andra liknande problem.
I denna aktivitet tvingas programvaran att misslyckas och sedan verifieras den om den kan återhämta sig ordentligt. Till exempel, omstart av systemet plötsligt när ett program körs och sedan verifierar dataintegriteten för applikationen.
F # 4) Kräver kodning av prestandatestning?
Svar: Prestandatestning kräver inte att du känner till den avancerade nivån för kodning. Att ha en grundläggande kunskap om programmering är dock en extra fördel.
Till exempel, om du använder JMeter är det bra för dig att känna till Java-grunderna. Det kan hjälpa dig att felsöka vissa saker och du kan också skriva ditt eget skript om det behövs.
F # 5) Vad är Spike-testning vid prestandatestning?
Svar: Vid topptestning ökar eller minskar belastningen plötsligt av ett stort antal användare och senare observeras systembeteendet. Spikprovning görs främst för att kontrollera om systemet klarar av plötsliga förändringar i belastningen.
Skillnaden mellan belastning och stresstestning
För att sammanfatta, låt oss observera de stora skillnaderna mellan belastningstestning, stresstestning och prestandatestning i nedanstående tabell:
Prestandatester | Lasttestning | Stresstestning | |
---|---|---|---|
Domän | Superset av belastning och stresstestning | En delmängd av prestandatest. | En delmängd av prestandatest. |
Omfattning | Mycket stort omfång. Inkluderar - belastningstestning, stresstestning, kapacitetstest, volymtestning, uthållighetstestning, topptestning, skalbarhetstestning och tillförlitlighetstestning etc. | Smalare räckvidd jämfört med prestandatestning. Inkluderar volymtestning och uthållighetstestning. | Smalare räckvidd jämfört med prestandatestning. Inkluderar blötprovning och spikprovning. |
Huvudmål | Att ställa in riktmärke och standarder för applikationen. | För att identifiera systemets övre gräns, ställ in SLA för appen och se hur systemet hanterar tunga lastvolymer. | För att identifiera hur systemet beter sig under intensiva belastningar och hur det återställs efter fel. I grund och botten för att förbereda din app för den oväntade trafikpiken. |
Lastgräns | Både - under och över tröskeln till en paus. | Till tröskeln till paus | Över tröskeln till paus |
Attribut som studerats | Resursanvändning, tillförlitlighet, skalbarhet, resursanvändning, svarstid, genomströmning, hastighet etc. | topprestanda, servergenomströmning, responstid under olika belastningsnivåer (under tröskeln för paus), tillräcklighet för H / W-miljö, antalet användarappar som kan hantera, krav på belastningsbalansering etc. | Stabilitet utöver bandbreddskapacitet, responstid (över tröskelvärdet) etc. |
Problem som identifierats genom denna testtyp | Alla prestanda buggar inklusive runtime uppblåsthet, utrymme för optimering, frågor relaterade till hastighet, latens, genomströmning, etc. I grund och botten - allt som rör prestanda! | Problem med belastningsbalansering, bandbreddsproblem, systemkapacitetsproblem, dålig svarstid, genomströmningsproblem etc. | Säkerhetshål med överbelastning, problem med datakorruption vid överbelastningssituation, långsamhet, minnesläckage etc. |
Skillnaden mellan belastning, stress och volymtestning
Nu vet vi redan om belastning och stresstestning tillsammans med skillnaderna mellan de två. Låt oss nu utforska vad som är volymtestning och hur skiljer det sig från belastningstestning och stresstestning.
Volymtestning är också ett slags prestandatestning som huvudsakligen fokuserar på databasen.
programutveckling livscykel 5 faser
Vid volymtest kontrolleras det hur systemet beter sig mot en viss datamängd. Således är databaserna fyllda med sin maximala kapacitet och deras prestandanivåer som svarstid och servergenomströmning övervakas.
För att hålla det väldigt enkelt visas skillnaden mellan belastning, stress och volymtest nedan:
Volymtestning | Lasttestning | Stresstestning |
---|---|---|
En enorm mängd data | Ett stort antal användare | För många användare, för mycket data, mot systemkrasch. |
Slutsats
I denna handledning har vi sett och förstått genom exempel på hur prestandatest, belastningstest och stresstest skiljer sig från varandra och vad som är omfattningen av varje testtyp.
Vi tittade också kort på många kategorier under prestandatestning som spikprovning, återställningstest, volymtest etc. och förstod hur var och en av dessa skiljer sig från varandra.
Vi hoppas att denna handledning skulle ha varit till stor hjälp för dig att förstå den praktiska skillnaden mellan prestanda, belastning och stresstestning.
Kolla vår kommande handledning för att lära dig mer om funktionstestning mot prestandatestning.
=> Besök här för kompletta prestandatestningsserier
PREV-handledning | NÄSTA självstudie
Rekommenderad läsning
- En komplett testtestguide med exempel
- Stresstestguide för nybörjare
- Lasttestning Komplett guide för nybörjare
- Webbapplikation belastning, stress och prestanda testning med WAPT
- Lasttestning med HP LoadRunner-handledning
- Test av molnprestanda: Molnbaserade tjänsteleverantörer för belastningstest
- Funktionell testning mot prestandatestning: Bör det göras samtidigt?
- Lasttestning med LoadUI - Ett kostnadsfritt lasttestverktyg med öppen källkod