Selvstudium til præstationstest

Hvad er præstationstestning?
Test af ydeevne er en softwaretestproces, der bruges til at teste en softwareapplikations hastighed, responstid, stabilitet, pålidelighed, skalerbarhed og ressourceforbrug under en bestemt arbejdsbelastning. Hovedformålet med præstationstest er at identificere og eliminere ydeevneflaskehalse i softwareapplikationen. Det er en undergruppe af performance engineering og er også kendt som "Perfekt test".
Fokus for Performance Testing er at kontrollere et softwareprogram
- Speed – Bestemmer, om applikationen reagerer hurtigt
- Skalerbarhed – Bestemmer den maksimale brugerbelastning, som softwareapplikationen kan håndtere.
- Stabilitet – Bestemmer, om applikationen er stabil under varierende belastning
Hvorfor udfører præstationstest?
Funktioner og funktionalitet understøttet af et softwaresystem er ikke den eneste bekymring. En softwareapplikations ydeevne, som dens responstid, pålidelighed, ressourceforbrug og skalerbarhed, betyder noget. Målet med Performance Testing er ikke at finde fejl, men at eliminere ydeevneflaskehalse.
Ydelsestest udføres for at give interessenter information om deres applikation vedrørende hastighed, stabilitet og skalerbarhed. Endnu vigtigere, Performance Testing afdækker, hvad der skal forbedres, før produktet kommer på markedet. Uden præstationstest vil softwaren sandsynligvis lide af problemer såsom: at køre langsomt, mens flere brugere bruger det samtidigt, uoverensstemmelser på tværs af forskellige operativsystemer og dårlig brugervenlighed.
Ydelsestest vil afgøre, om deres software opfylder kravene til hastighed, skalerbarhed og stabilitet under forventede arbejdsbelastninger. Ansøgninger, der sendes til markedet med dårlige præstationsmålinger på grund af ikke-eksisterende eller dårlige præstationstests, vil sandsynligvis få et dårligt ry og ikke opfylde de forventede salgsmål.
Således, missionskritiske applikationer såsom rumopsendelsesprogrammer eller livreddende medicinsk udstyr bør ydeevnetestes for at sikre, at de kører i en lang periode uden afvigelser.
Ifølge Dunn & Bradstreet oplever 59 % af Fortune 500-virksomheder anslået 1.6 timers nedetid hver uge. I betragtning af at den gennemsnitlige Fortune 500-virksomhed med minimum 10,000 ansatte betaler 56 USD i timen, vil arbejdskraftdelen af nedetidsomkostningerne for en sådan organisation være 896,000 USD om ugen, hvilket svarer til mere end 46 millioner USD om året.
Kun a 5 minutters nedetid af Google.com (19-aug-13) anslås at koste søgegiganten lige så meget som $ 545,000.
Det anslås, at virksomheder mistede deres salg værd $1100 per sekund på grund af en nylig Amazon Webserviceafbrydelse.
Derfor er præstationstest vigtig. For at hjælpe dig med denne proces, tjek denne liste over præstationstestværktøjer.
Typer af ydelsestest
Der er primært seks typer præstationstest i softwaretest, som er forklaret nedenfor.
- Belastningstest – kontrollerer applikationens evne til at udføre under forventede brugerbelastninger. Målet er at identificere ydeevneflaskehalse, før softwareapplikationen går live.
- Stresstest - indebærer at teste en applikation under ekstreme arbejdsbelastninger for at se, hvordan den håndterer høj trafik eller databehandling. Målet er at identificere bristepunktet for en ansøgning.
- Udholdenhedstest – gøres for at sikre, at softwaren kan håndtere den forventede belastning over en længere periode.
- Spike test – tester softwarens reaktion på pludselige store stigninger i belastningen genereret af brugere.
- Volumentest – Under Volumentest stort nr. af. Data udfyldes i en database, og det overordnede softwaresystems adfærd overvåges. Målet er at kontrollere softwareapplikationens ydeevne under varierende databasevolumener.
- Test af skalerbarhed – Målet med skalerbarhedstest er at bestemme softwareapplikationens effektivitet i "opskalering" for at understøtte en stigning i brugerbelastning. Det hjælper med at planlægge kapacitetsforøgelse til dit softwaresystem.
Almindelige præstationsproblemer
De fleste problemer med ydeevnen drejer sig om hastighed, responstid, indlæsningstid og dårlig skalerbarhed. Hastighed er ofte en af de vigtigste egenskaber ved en applikation. Et langsomt kørende program vil miste potentielle brugere. Ydelsestest sikrer, at en app kører hurtigt nok til at fastholde en brugers opmærksomhed og interesse. Tag et kig på følgende liste over almindelige ydeevneproblemer, og læg mærke til, hvordan hastighed er en fælles faktor i mange af dem:
- Lang belastningstid - Indlæsningstid er normalt den første tid, det tager en applikation at starte. Dette bør generelt holdes på et minimum. Mens nogle applikationer er umulige at indlæse på under et minut, bør indlæsningstiden holdes under et par sekunder, hvis det er muligt.
- Dårlig responstid - Svartid er den tid, det tager, fra en bruger indtaster data i applikationen, til applikationen udsender et svar på det pågældende input. Generelt burde dette være meget hurtigt. Igen hvis en bruger skal vente for længe, mister de interessen.
- Dårlig skalerbarhed - Et softwareprodukt lider under dårlig skalerbarhed, når det ikke kan håndtere det forventede antal brugere, eller når det ikke rummer en bred nok række af brugere. Load Testing bør gøres for at være sikker på, at applikationen kan håndtere det forventede antal brugere.
- Flaskehals – Flaskehalse er forhindringer i et system, der forringer systemets samlede ydeevne. Flaskehals er, når enten kodningsfejl eller hardwareproblemer forårsager et fald i gennemløbet under visse belastninger. Flaskehals er ofte forårsaget af en defekt kodesektion. Nøglen til at løse et flaskehalsproblem er at finde den sektion af kode, der forårsager langsommere fart, og forsøge at rette den der. Flaskehals løses generelt ved enten at rette dårlige kørende processer eller tilføje yderligere hardware. Nogle almindelige præstationsflaskehalse er
- CPU udnyttelse
- Hukommelsesudnyttelse
- Netværksudnyttelse
- Operating Systembegrænsninger
- Diskbrug
Sådan laver du præstationstest
Metoden, der anvendes til præstationstestning, kan variere meget, men målsætningen for præstationstests forbliver den samme. Det kan hjælpe med at demonstrere, at dit softwaresystem opfylder visse foruddefinerede præstationskriterier. Eller det kan hjælpe med at sammenligne ydeevnen af to softwaresystemer. Det kan også hjælpe med at identificere dele af dit softwaresystem, som forringer dets ydeevne.
Nedenfor er en generisk proces om, hvordan man udfører præstationstest

Trin 1) Identificer dit testmiljø
Kend dit fysiske testmiljø, produktionsmiljø og hvilke testværktøjer der er tilgængelige. Forstå detaljer om hardware, software og netværkskonfigurationer, der bruges under test, før du begynder testprocessen. Det vil hjælpe testere med at skabe mere effektive tests. Det vil også hjælpe med at identificere mulige udfordringer, som testere kan støde på under præstationstestprocedurerne.
Trin 2) Identificer præstationsacceptkriterierne
Dette inkluderer mål og begrænsninger for gennemløb, svartider og ressourceallokering. Det er også nødvendigt at identificere projektsucceskriterier uden for disse mål og begrænsninger. Testere bør have beføjelse til at opstille præstationskriterier og mål, fordi projektspecifikationerne ofte ikke vil omfatte en bred nok variation af præstationsbenchmarks. Nogle gange er der måske slet ingen. Når det er muligt at finde en lignende applikation at sammenligne med, er det en god måde at sætte præstationsmål på.
Trin 3) Planlæg og design præstationstests
Bestem, hvordan brugen sandsynligvis vil variere mellem slutbrugere, og identificer nøglescenarier, der skal testes for alle mulige brugsscenarier. Det er nødvendigt at simulere en række slutbrugere, planlægge præstationstestdata og skitsere, hvilke målinger der vil blive indsamlet.
Trin 4) Konfiguration af testmiljøet
Forbered testmiljøet før udførelse. Arranger også værktøjer og andre ressourcer.
Trin 5) Implementer testdesign
Opret ydeevnetestene i henhold til dit testdesign.
Trin 6) Kør testene
Udfør og overvåg testene.
Trin 7) Analyser, tune og gentest
Konsolider, analyser og del testresultater. Finjuster derefter og test igen for at se, om der er en forbedring eller et fald i ydeevnen. Da forbedringer generelt bliver mindre med hver gentest, skal du stoppe, når flaskehals er forårsaget af CPU'en. Så kan du overveje muligheden for at øge CPU-kraften.
Ydelsestestmålinger: Overvågede parametre
De grundlæggende parametre, der overvåges under præstationstest, omfatter:
- Processorbrug – en mængde tid, processoren bruger på at udføre ikke-inaktive tråde.
- Hukommelsesbrug – mængden af fysisk hukommelse, der er tilgængelig for processer på en computer.
- Disk tid – mængden af tid, disken er optaget af at udføre en læse- eller skriveanmodning.
- Båndbredde - viser bits per sekund, der bruges af en netværksgrænseflade.
- Private bytes – antal bytes en proces har tildelt, som ikke kan deles mellem andre processer. Disse bruges til at måle hukommelseslækager og -brug.
- Engageret hukommelse – mængden af brugt virtuel hukommelse.
- Hukommelsessider/sekund – antal sider skrevet til eller læst fra disken for at løse fejl på harddisken. Hard page-fejl er, når kode, der ikke er fra det aktuelle arbejdssæt, hentes fra et andet sted og hentes fra en disk.
- Sidefejl/sekund – den samlede hastighed, hvormed fejlsider behandles af processoren. Dette sker igen, når en proces kræver kode uden for sit arbejdssæt.
- CPU-afbrydelser pr. sekund – er gns. antallet af hardwareafbrydelser, som en processor modtager og behandler hvert sekund.
- Længde på diskkø – er gns. ingen. af læse- og skriveanmodninger i kø for den valgte disk under et prøveinterval.
- Længde af netværksoutputkø – længden af outputpakkekøen i pakker. Alt mere end to betyder en forsinkelse og flaskehals skal stoppes.
- Netværksbytes i alt pr. sekund – rate, hvilke bytes der sendes og modtages på grænsefladen, inklusive rammetegn.
- Responstid - tid, fra en bruger indtaster en anmodning, til det første tegn i svaret modtages.
- Gennemløb – rate, at en computer eller et netværk modtager anmodninger pr. sekund.
- Mængden af forbindelsespooling – antallet af brugeranmodninger, der opfyldes af poolede forbindelser. Jo flere anmodninger, der imødekommes af forbindelser i puljen, desto bedre bliver ydeevnen.
- Maksimalt antal aktive sessioner – det maksimale antal sessioner, der kan være aktive på én gang.
- Hit-forhold – Dette har at gøre med antallet af SQL sætninger, der håndteres af cachelagrede data i stedet for dyre I/O-operationer. Dette er et godt sted at starte for at løse flaskehalsproblemer.
- Hits per sekund – nr. af hits på en webserver under hvert sekund af en belastningstest.
- Rollback segment – mængden af data, der kan rulle tilbage på ethvert tidspunkt.
- Databaselåse – låsning af tabeller og databaser skal overvåges og omhyggeligt tunes.
- Top ventetider - overvåges for at bestemme, hvilke ventetider der kan skæres ned, når det drejer sig om, hvor hurtigt data hentes fra hukommelsen
- Tråd tæller – En applikations sundhed kan måles ved nr. af tråde, der kører og aktuelt er aktive.
- Dagrenovation - Det har at gøre med at returnere ubrugt hukommelse tilbage til systemet. Affaldsindsamling skal overvåges for effektivitet.
Præstationstest Testcases Eksempel
- Testcase 01: Bekræft, at responstiden ikke er mere end 4 sekunder, når 1000 brugere får adgang til hjemmesiden samtidigt.
- Testcase 02: Bekræft responstiden for applikationen under belastning er inden for et acceptabelt interval, når netværksforbindelsen er langsom
- Testcase 03: Tjek det maksimale antal brugere, som programmet kan håndtere, før det går ned.
- Testcase 04: Tjek databasens udførelsestid, når 500 poster læses/skrives samtidigt.
- Testcase 05: Kontroller CPU- og hukommelsesbrug af applikationen og databaseserveren under spidsbelastningsforhold
- Testcase 06: Bekræft applikationens responstid under lav, normal, moderat og tung belastning.
Under selve udførelsen af præstationstesten erstattes vage udtryk som acceptabel rækkevidde, tung belastning osv. af konkrete tal. Ydelsesingeniører indstiller disse tal i henhold til forretningskrav og applikationens tekniske landskab.
Værktøjer til præstationstest
Der er en bred vifte af ydelsestestværktøjer tilgængelige på markedet. Det værktøj, du vælger til test, vil afhænge af mange faktorer, såsom typer af den understøttede protokol, licensomkostninger, hardwarekrav, platformsupport osv. Nedenfor er en liste over populært anvendte testværktøjer.
- HP LoadRunner - er de mest populære ydelsestestværktøjer på markedet i dag. Dette værktøj er i stand til at simulere hundredtusindvis af brugere, sætte applikationer under virkelige belastninger for at bestemme deres adfærd under forventede belastninger. Loadrunner har en virtuel brugergenerator, som simulerer handlinger af levende menneskelige brugere.
- Jmeter – et af de førende værktøjer, der bruges til belastningstest af web- og applikationsservere.
Ofte stillede spørgsmål
Konklusion
In Software Engineering, Ydeevnetest er nødvendig før markedsføring af et softwareprodukt. Det sikrer kundetilfredshed og beskytter en investors investering mod produktfejl. Omkostninger til præstationstest er normalt mere end opvejet med forbedret kundetilfredshed, loyalitet og fastholdelse.



