Handledning för prestandatestning
Vad är prestationstestning?
Prestandatester är en mjukvarutestprocess som används för att testa hastigheten, svarstiden, stabiliteten, tillförlitligheten, skalbarheten och resursanvändningen för en mjukvaruapplikation under en viss arbetsbelastning. Huvudsyftet med prestandatestning är att identifiera och eliminera prestandaflaskhalsar i mjukvaruapplikationen. Det är en delmängd av prestandateknik och är även känd som "Perftestning".
Fokus för prestandatestning är att kontrollera ett program
- Fart – Avgör om applikationen svarar snabbt
- skalbarhet – Bestämmer den maximala användarbelastning som programvaran kan hantera.
- Stabilitet – Avgör om applikationen är stabil under varierande belastning
Varför gör man prestationstestning?
Funktioner och funktioner som stöds av ett mjukvarusystem är inte det enda problemet. En mjukvaruapplikations prestanda, som dess svarstid, tillförlitlighet, resursanvändning och skalbarhet, spelar roll. Målet med Performance Testing är inte att hitta buggar utan att eliminera prestandaflaskhalsar.
Prestandatestning görs för att ge intressenter information om deras applikation angående hastighet, stabilitet och skalbarhet. Ännu viktigare, prestationstestning avslöjar vad som behöver förbättras innan produkten går ut på marknaden. Utan prestandatestning kommer programvaran sannolikt att drabbas av problem som att köra långsamt medan flera användare använder den samtidigt, inkonsekvenser mellan olika operativsystem och dålig användbarhet.
Prestandatestning kommer att avgöra om deras mjukvara uppfyller kraven på hastighet, skalbarhet och stabilitet under förväntad arbetsbelastning. Ansökningar som skickas ut på marknaden med dåliga prestandamått på grund av obefintliga eller dåliga prestandatester kommer sannolikt att få ett dåligt rykte och misslyckas med att uppfylla förväntade försäljningsmål.
Också, verksamhetskritiska tillämpningar som rymduppskjutningsprogram eller livräddande medicinsk utrustning bör prestandatestas för att säkerställa att de fungerar under en lång period utan avvikelser.
Enligt Dunn & Bradstreet upplever 59 % av Fortune 500-företagen uppskattningsvis 1.6 timmars driftstopp varje vecka. Med tanke på att det genomsnittliga Fortune 500-företaget med minst 10,000 56 anställda betalar 896,000 USD per timme, skulle arbetsdelen av stilleståndskostnaderna för en sådan organisation vara 46 XNUMX USD per vecka, vilket motsvarar mer än XNUMX miljoner USD per år.
Endast en 5 minuters driftstopp av Google.com (19-aug-13) beräknas kosta sökjätten lika mycket som $ 545,000.
Det uppskattas att företag tappade försäljningsvärde 1100 dollar per sekund på grund av en nyligen Amazon Avbrott i webbtjänsten.
Därför är prestationstestning viktigt. För att hjälpa dig med denna process, kolla in den här listan med verktyg för prestandatestning.
Typer av prestandatestning
Det finns i första hand sex typer av prestandatestning inom mjukvarutestning, som förklaras nedan.
- Belastningstestning – kontrollerar programmets förmåga att prestera under förväntade användarbelastningar. Målet är att identifiera prestandaflaskhalsar innan mjukvaruapplikationen går live.
- Stresstestning - innebär att man testar en applikation under extrema arbetsbelastningar för att se hur den hanterar hög trafik eller databehandling. Målet är att identifiera brytpunkten för en applikation.
- Uthållighetstest – görs för att säkerställa att programvaran kan hantera den förväntade belastningen under en lång tidsperiod.
- Spike testning – testar programvarans reaktion på plötsliga stora toppar i belastningen som genereras av användare.
- Volymtestning – Under Volymtestning stort nr. av. Data fylls i en databas och det övergripande mjukvarusystemets beteende övervakas. Målet är att kontrollera programvarans prestanda under varierande databasvolymer.
- Test av skalbarhet – Syftet med skalbarhetstestning är att fastställa mjukvaruapplikationens effektivitet när det gäller att "skala upp" för att stödja en ökning av användarbelastningen. Det hjälper till att planera kapacitetstillskott till ditt programvarusystem.
Vanliga prestandaproblem
De flesta prestandaproblem kretsar kring hastighet, svarstid, laddningstid och dålig skalbarhet. Snabbhet är ofta en av de viktigaste egenskaperna för en applikation. En applikation som kör långsamt kommer att förlora potentiella användare. Prestandatestning säkerställer att en app körs tillräckligt snabbt för att behålla en användares uppmärksamhet och intresse. Ta en titt på följande lista över vanliga prestandaproblem och lägg märke till hur hastighet är en vanlig faktor i många av dem:
- Lång laddningstid - Laddningstiden är normalt den första tid det tar för en applikation att starta. Detta bör i allmänhet hållas till ett minimum. Medan vissa applikationer är omöjliga att ladda på under en minut, bör laddningstiden hållas under några sekunder om möjligt.
- Dålig svarstid - Svarstid är den tid det tar från det att en användare matar in data i applikationen tills applikationen ger ett svar på den inmatningen. I allmänhet bör detta vara mycket snabbt. Återigen om en användare måste vänta för länge tappar de intresset.
- Dålig skalbarhet - En mjukvaruprodukt lider av dålig skalbarhet när den inte kan hantera det förväntade antalet användare eller när den inte rymmer ett tillräckligt stort antal användare. Lasttestning bör göras för att vara säker på att applikationen kan hantera det förväntade antalet användare.
- Flaskhals – Flaskhalsar är hinder i ett system som försämrar systemets övergripande prestanda. Flaskhals är när antingen kodningsfel eller hårdvaruproblem orsakar en minskning av genomströmningen under vissa belastningar. Flaskhalsar orsakas ofta av en felaktig kodavsnitt. Nyckeln till att åtgärda ett problem med flaskhalsar är att hitta den del av koden som orsakar nedgången och försöka fixa det där. Flaskhalsar åtgärdas vanligtvis genom att antingen fixa dåliga processer eller lägga till ytterligare hårdvara. Några vanliga prestandaflaskhalsar är
- CPU-utnyttjande
- Minneutnyttjande
- Nätverksanvändning
- Operasystembegränsningar
- Diskanvändning
Hur man gör prestationstestning
Metoden som används för prestandatester kan variera kraftigt, men målet för prestandatester förblir detsamma. Det kan hjälpa till att visa att ditt mjukvarusystem uppfyller vissa fördefinierade prestandakriterier. Eller det kan hjälpa till att jämföra prestanda för två programvarusystem. Det kan också hjälpa till att identifiera delar av ditt mjukvarusystem som försämrar dess prestanda.
Nedan finns en generisk process om hur man utför prestandatester
Steg 1) Identifiera din testmiljö
Känna till din fysiska testmiljö, produktionsmiljö och vilka testverktyg som finns tillgängliga. Förstå detaljer om hårdvara, mjukvara och nätverkskonfigurationer som används under testningen innan du påbörjar testprocessen. Det kommer att hjälpa testare att skapa mer effektiva tester. Det kommer också att hjälpa till att identifiera möjliga utmaningar som testare kan stöta på under prestationstestningsprocedurerna.
Steg 2) Identifiera prestationsacceptanskriterierna
Detta inkluderar mål och begränsningar för genomströmning, svarstider och resursallokering. Det är också nödvändigt att identifiera projektframgångskriterier utanför dessa mål och begränsningar. Testare bör ges befogenhet att sätta prestationskriterier och mål eftersom projektspecifikationerna ofta inte kommer att innehålla ett tillräckligt stort antal prestandariktmärken. Ibland kanske det inte finns någon alls. När det är möjligt att hitta en liknande applikation att jämföra med är ett bra sätt att sätta resultatmål.
Steg 3) Planera och designa prestandatester
Bestäm hur användningen sannolikt kommer att variera mellan slutanvändare och identifiera nyckelscenarier att testa för alla möjliga användningsfall. Det är nödvändigt att simulera en mängd olika slutanvändare, planera prestandatestdata och beskriva vilka mätvärden som kommer att samlas in.
Steg 4) Konfigurera testmiljön
Förbered testmiljön före utförande. Ordna också verktyg och andra resurser.
Steg 5) Implementera testdesign
Skapa prestandatesterna enligt din testdesign.
Steg 6) Kör testerna
Utför och övervaka testerna.
Steg 7) Analysera, ställ in och testa om
Konsolidera, analysera och dela testresultat. Finjustera sedan och testa igen för att se om det finns en förbättring eller minskning av prestanda. Eftersom förbättringar i allmänhet blir mindre med varje omtest, sluta när flaskhalsar orsakas av CPU:n. Då kan du överväga alternativet att öka CPU-kraften.
Prestandatestningsmått: Parametrar övervakade
De grundläggande parametrarna som övervakas under prestandatestning inkluderar:
- Processoranvändning – en tid som processorn spenderar på att exekvera icke-aktiva trådar.
- Minnesanvändning - mängd fysiskt minne tillgängligt för processer på en dator.
- Disktid – hur lång tid disken är upptagen med att utföra en läs- eller skrivbegäran.
- Bandbredd - visar de bitar per sekund som används av ett nätverksgränssnitt.
- Privata bytes – antal byte som en process har allokerat som inte kan delas mellan andra processer. Dessa används för att mäta minnesläckor och användning.
- Engagerat minne – mängd virtuellt minne som används.
- Minnessidor/sekund – antal sidor som skrivits till eller lästs från disken för att lösa fel på hårda sidor. Hard page-fel är när kod som inte är från den aktuella arbetsuppsättningen anropas från någon annanstans och hämtas från en disk.
- Sidfel/sekund – den totala hastigheten i vilken felsidor bearbetas av processorn. Detta inträffar igen när en process kräver kod utanför dess arbetsuppsättning.
- CPU-avbrott per sekund – är medelvärdet. antal hårdvaruavbrott som en processor tar emot och bearbetar varje sekund.
- Diskkölängd – är snittet. inga. av läs- och skrivbegäranden i kö för den valda disken under ett sampelintervall.
- Nätverksutgångskölängd – längden på utdatapaketkön i paket. Allt mer än två innebär en försening och flaskhalsar måste stoppas.
- Nätverksbyte totalt per sekund – hastighet vilka bytes som skickas och tas emot på gränssnittet inklusive ramtecken.
- Respons tid - tid från det att en användare anger en begäran tills det första tecknet i svaret tas emot.
- Genomströmning – betygsätta en dator eller ett nätverk som tar emot förfrågningar per sekund.
- Mängden anslutningspooling – antalet användarförfrågningar som uppfylls av poolade anslutningar. Ju fler önskemål som möts av anslutningar i poolen, desto bättre blir prestandan.
- Maximalt antal aktiva sessioner – det maximala antalet sessioner som kan vara aktiva på en gång.
- Träffkvoter – Detta har att göra med antalet SQL satser som hanteras av cachad data istället för dyra I/O-operationer. Det här är ett bra ställe att börja för att lösa problem med flaskhalsar.
- Träffar per sekund – nejet. av träffar på en webbserver under varje sekund av ett belastningstest.
- Återställ segment – mängden data som kan återställas när som helst.
- Databaslås – låsning av tabeller och databaser måste övervakas och noggrant trimmas.
- Topp väntan – övervakas för att avgöra vilka väntetider som kan minskas när man hanterar hur snabbt data hämtas från minnet
- Tråd räknas - En applikationshälsa kan mätas med nr. trådar som är igång och för närvarande aktiva.
- Skräp samling - Det har att göra med att returnera oanvänt minne tillbaka till systemet. Sophämtning måste övervakas för effektivitet.
Testfall för prestandatest Exempel
- Testfall 01: Verifiera att svarstiden inte är mer än 4 sekunder när 1000 användare går in på webbplatsen samtidigt.
- Testfall 02: Verifiera svarstiden för applikationen under belastning är inom ett acceptabelt intervall när nätverksanslutningen är långsam
- Testfall 03: Kontrollera det maximala antalet användare som programmet kan hantera innan det kraschar.
- Testfall 04: Kontrollera databasexekveringstiden när 500 poster läses/skrivs samtidigt.
- Testfall 05: Kontrollera CPU- och minnesanvändning för applikationen och databasservern under toppbelastningsförhållanden
- Testfall 06: Verifiera applikationens svarstid under låg, normal, måttlig och tung belastning.
Under själva prestandatestet ersätts vaga termer som acceptabel räckvidd, tung belastning etc. med konkreta siffror. Prestandaingenjörer ställer in dessa siffror enligt affärskrav och applikationens tekniska landskap.
Verktyg för prestandatest
Det finns ett brett utbud av prestandatestverktyg tillgängliga på marknaden. Vilket verktyg du väljer för att testa kommer att bero på många faktorer såsom typer av protokoll som stöds, licenskostnad, hårdvarukrav, plattformsstöd etc. Nedan finns en lista över populära testverktyg.
- HP LoadRunner - är de mest populära verktygen för prestandatestning på marknaden idag. Det här verktyget kan simulera hundratusentals användare, sätta applikationer under verkliga belastningar för att bestämma deras beteende under förväntad belastning. Loadrunner har en virtuell användargenerator som simulerar handlingar av levande mänskliga användare.
- Jmeter – ett av de ledande verktygen som används för belastningstestning av webb- och applikationsservrar.
FAQ
Slutsats
In Mjukvaruutveckling, Prestandatestning är nödvändig innan marknadsföring av någon mjukvaruprodukt. Det säkerställer kundnöjdhet och skyddar en investerares investering mot produktfel. Kostnaderna för prestationstestning kompenseras vanligtvis mer än med förbättrad kundnöjdhet, lojalitet och retention.