Veiledning for ytelsestesting

Hva er ytelsestesting?
Ytelsestesting er en programvaretestingsprosess som brukes for å teste hastigheten, responstiden, stabiliteten, påliteligheten, skalerbarheten og ressursbruken til en programvareapplikasjon under en bestemt arbeidsbelastning. Hovedformålet med ytelsestesting er å identifisere og eliminere ytelsesflaskehalsene i programvareapplikasjonen. Det er en undergruppe av ytelsesteknikk og er også kjent som "Perftesting".
Fokuset for ytelsestesting er å sjekke et programvareprogram
- Speed – Avgjør om applikasjonen svarer raskt
- skalerbarhet – Bestemmer den maksimale brukerbelastningen programvareapplikasjonen kan håndtere.
- Stabilitet – Bestemmer om applikasjonen er stabil under varierende belastning
Hvorfor utfører ytelsestesting?
Funksjoner og funksjonalitet som støttes av et programvaresystem er ikke den eneste bekymringen. En programvareapplikasjons ytelse, som responstid, pålitelighet, ressursbruk og skalerbarhet, betyr noe. Målet med ytelsestesting er ikke å finne feil, men å eliminere ytelsesflaskehalser.
Ytelsestesting gjøres for å gi interessenter informasjon om deres applikasjon angående hastighet, stabilitet og skalerbarhet. Enda viktigere, ytelsestesting avdekker hva som må forbedres før produktet kommer ut på markedet. Uten ytelsestesting vil programvaren sannsynligvis lide av problemer som: kjører sakte mens flere brukere bruker den samtidig, inkonsekvenser på tvers av forskjellige operativsystemer og dårlig brukervennlighet.
Ytelsestesting vil avgjøre om programvaren deres oppfyller kravene til hastighet, skalerbarhet og stabilitet under forventet arbeidsbelastning. Apper som sendes til markedet med dårlige ytelsesmålinger på grunn av manglende eller dårlig ytelsestesting vil sannsynligvis få et dårlig rykte og ikke oppfylle forventede salgsmål.
Også oppdragskritiske applikasjoner som romoppskytingsprogrammer eller livreddende medisinsk utstyr bør ytelsestestes for å sikre at de kjører i lang tid uten avvik.
I følge Dunn & Bradstreet opplever 59 % av Fortune 500-selskapene anslagsvis 1.6 timer nedetid hver uke. Tatt i betraktning at det gjennomsnittlige Fortune 500-selskapet med minimum 10,000 56 ansatte betaler 896,000 dollar per time, vil arbeidsdelen av nedetidskostnadene for en slik organisasjon være 46 XNUMX dollar ukentlig, noe som tilsvarer mer enn XNUMX millioner dollar per år.
Bare en 5-minutters nedetid av Google.com (19-aug-13) anslås å koste søkegiganten like mye som $ 545,000.
Det er anslått at selskaper tapte salgsverdi 1100 dollar per sekund på grunn av en nylig Amazon Netttjenestebrudd.
Derfor er ytelsestesting viktig. For å hjelpe deg med denne prosessen, sjekk ut denne listen over verktøy for ytelsestesting.
Typer ytelsestesting
Det er primært seks typer ytelsestesting i programvaretesting, som er forklart nedenfor.
- Lasttesting – sjekker programmets evne til å prestere under forventet brukerbelastning. Målet er å identifisere ytelsesflaskehalser før programvaren publiseres.
- Stresstesting - innebærer å teste en applikasjon under ekstreme arbeidsbelastninger for å se hvordan den håndterer høy trafikk eller databehandling. Målet er å identifisere bruddpunktet for en applikasjon.
- Utholdenhetstesting – gjøres for å sikre at programvaren kan håndtere forventet belastning over lang tid.
- Piggtesting – tester programvarens reaksjon på plutselige store topper i belastningen generert av brukere.
- Volumtesting – Under Volumtesting stort nr. av. Data fylles i en database, og det generelle programvaresystemets oppførsel overvåkes. Målet er å sjekke programvareapplikasjonens ytelse under varierende databasevolumer.
- Skalerbarhetstesting – Målet med skalerbarhetstesting er å bestemme programvareapplikasjonens effektivitet i "oppskalering" for å støtte en økning i brukerbelastning. Det hjelper med å planlegge kapasitetstillegg til programvaresystemet.
Vanlige ytelsesproblemer
De fleste ytelsesproblemer dreier seg om hastighet, responstid, lastetid og dårlig skalerbarhet. Hastighet er ofte en av de viktigste egenskapene til en applikasjon. Et program som kjører sakte vil miste potensielle brukere. Ytelsestesting sikrer at en app kjører raskt nok til å beholde brukerens oppmerksomhet og interesse. Ta en titt på følgende liste over vanlige ytelsesproblemer og legg merke til hvordan hastighet er en vanlig faktor i mange av dem:
- Lang lastetid - Lastetiden er vanligvis den første tiden det tar en applikasjon å starte. Dette bør generelt holdes på et minimum. Mens noen applikasjoner er umulige å laste på under ett minutt, bør lastetiden holdes under noen få sekunder hvis mulig.
- Dårlig responstid - Responstid er tiden det tar fra en bruker legger inn data i applikasjonen til applikasjonen sender ut et svar på det innspillet. Generelt bør dette være veldig raskt. Igjen hvis en bruker må vente for lenge, mister de interessen.
- Dårlig skalerbarhet - Et programvareprodukt lider av dårlig skalerbarhet når det ikke kan håndtere det forventede antallet brukere eller når det ikke har plass til et bredt nok spekter av brukere. Load Testing bør gjøres for å være sikker på at applikasjonen kan håndtere det forventede antallet brukere.
- Flaskehals – Flaskehalser er hindringer i et system som forringer systemets generelle ytelse. Flaskehals er når enten kodefeil eller maskinvareproblemer forårsaker en reduksjon i gjennomstrømning under visse belastninger. Flaskehals er ofte forårsaket av en defekt kodedel. Nøkkelen til å fikse et flaskehalsproblem er å finne kodedelen som forårsaker nedgangen og prøve å fikse den der. Flaskehals løses vanligvis ved enten å fikse dårlige prosesser eller legge til ekstra maskinvare. Noen vanlige ytelsesflaskehalser er
- CPU utnyttelse
- Minnebruk
- Nettverksutnyttelse
- Operasystembegrensninger
- Diskbruk
Hvordan utføre ytelsestesting
Metodikken som brukes for ytelsestesting kan variere mye, men målsettingen for ytelsestester forblir den samme. Det kan bidra til å demonstrere at programvaresystemet ditt oppfyller visse forhåndsdefinerte ytelseskriterier. Eller det kan bidra til å sammenligne ytelsen til to programvaresystemer. Det kan også hjelpe med å identifisere deler av programvaresystemet som forringer ytelsen.
Nedenfor er en generisk prosess for hvordan du utfører ytelsestesting

Trinn 1) Identifiser testmiljøet ditt
Kjenn ditt fysiske testmiljø, produksjonsmiljø og hvilke testverktøy som er tilgjengelige. Forstå detaljer om maskinvare, programvare og nettverkskonfigurasjoner som brukes under testing før du starter testprosessen. Det vil hjelpe testere med å lage mer effektive tester. Det vil også bidra til å identifisere mulige utfordringer som testere kan støte på under ytelsestestingsprosedyrene.
Trinn 2) Identifiser ytelsesgodkjenningskriteriene
Dette inkluderer mål og begrensninger for gjennomstrømning, responstider og ressursallokering. Det er også nødvendig å identifisere prosjektsuksesskriterier utenfor disse målene og begrensningene. Testere bør ha fullmakt til å sette ytelseskriterier og mål fordi prosjektspesifikasjonene ofte ikke inkluderer et bredt nok utvalg av ytelsesreferanser. Noen ganger kan det ikke være noen i det hele tatt. Når det er mulig å finne en lignende applikasjon å sammenligne med er en god måte å sette resultatmål.
Trinn 3) Planlegg og design ytelsestester
Bestem hvordan bruken sannsynligvis vil variere mellom sluttbrukere og identifiser nøkkelscenarier for å teste for alle mulige brukstilfeller. Det er nødvendig å simulere en rekke sluttbrukere, planlegge ytelsestestdata og skissere hvilke beregninger som skal samles inn.
Trinn 4) Konfigurering av testmiljøet
Forbered testmiljøet før utførelse. Ordne også verktøy og andre ressurser.
Trinn 5) Implementer testdesign
Lag ytelsestestene i henhold til testdesignet ditt.
Trinn 6) Kjør testene
Utfør og overvåk testene.
Trinn 7) Analyser, still inn og test på nytt
Konsolidere, analysere og dele testresultater. Finjuster deretter og test på nytt for å se om det er en forbedring eller reduksjon i ytelsen. Siden forbedringer generelt blir mindre med hver retest, stopp når flaskehalser forårsakes av CPU. Da har du kanskje muligheten til å øke CPU-kraften.
Ytelsestesting: Parametere overvåket
De grunnleggende parametrene som overvåkes under ytelsestesting inkluderer:
- Prosessorbruk – en mengde tid prosessoren bruker på å utføre ikke-inaktive tråder.
- Minnebruk – mengde fysisk minne tilgjengelig for prosesser på en datamaskin.
- Disktid – hvor lang tid disken er opptatt med å utføre en lese- eller skriveforespørsel.
- Båndbredde - viser bitene per sekund som brukes av et nettverksgrensesnitt.
- Private bytes – antall byte en prosess har tildelt som ikke kan deles mellom andre prosesser. Disse brukes til å måle minnelekkasjer og bruk.
- Engasjert minne – mengde virtuelt minne som brukes.
- Minnesider/sekund – antall sider skrevet til eller lest fra disken for å løse feil på hardsiden. Hard page-feil er når kode som ikke er fra det gjeldende arbeidssettet kalles opp fra et annet sted og hentes fra en disk.
- Sidefeil/sekund – den totale hastigheten som feilsider behandles i av prosessoren. Dette skjer igjen når en prosess krever kode fra utenfor arbeidssettet.
- CPU-avbrudd per sekund – er gj.sn. antall maskinvareavbrudd en prosessor mottar og behandler hvert sekund.
- Lengde på diskkø – er gj.sn. ingen. av lese- og skriveforespørsler i kø for den valgte disken i løpet av et prøveintervall.
- Lengde på nettverksutgangskø – lengden på utgangspakkekøen i pakker. Alt mer enn to betyr at en forsinkelse og flaskehalser må stoppes.
- Nettverksbyte totalt per sekund – rate hvilke bytes som sendes og mottas på grensesnittet, inkludert rammetegn.
- Responstid - tid fra en bruker skriver inn en forespørsel til det første tegnet i svaret mottas.
- Gjennomstrømning – vurdere en datamaskin eller nettverk mottar forespørsler per sekund.
- Mengde tilkoblingspooling – antall brukerforespørsler som blir møtt av sammenslåtte tilkoblinger. Jo flere forespørsler som møtes av forbindelser i bassenget, desto bedre blir ytelsen.
- Maksimalt antall aktive økter – maksimalt antall økter som kan være aktive samtidig.
- Treffforhold – Dette har med antall å gjøre SQL setninger som håndteres av hurtigbufrede data i stedet for dyre I/O-operasjoner. Dette er et bra sted å starte for å løse flaskehalsproblemer.
- Treff per sekund – nr. av treff på en webserver i løpet av hvert sekund av en lasttest.
- Tilbakestill segment – mengden data som kan rulle tilbake til enhver tid.
- Databaselåser – låsing av tabeller og databaser må overvåkes og justeres nøye.
- Topp ventetid – overvåkes for å finne ut hvilke ventetider som kan reduseres når man arbeider med hvor raskt data hentes fra minnet
- Tråd teller - En søknads helse kan måles ved nr. av tråder som kjører og er aktive for øyeblikket.
- Søppelhenting – Det har å gjøre med å returnere ubrukt minne tilbake til systemet. Søppelinnsamlingen må overvåkes for effektivitet.
Eksempel på testtilfeller for ytelsestesting
- Testtilfelle 01: Bekreft at responstiden ikke er mer enn 4 sekunder når 1000 brukere går inn på nettstedet samtidig.
- Testtilfelle 02: Kontroller at responstiden for applikasjonen under belastning er innenfor et akseptabelt område når nettverkstilkoblingen er treg
- Testtilfelle 03: Sjekk maksimalt antall brukere som applikasjonen kan håndtere før den krasjer.
- Testtilfelle 04: Sjekk databaseutførelsestid når 500 poster leses/skrives samtidig.
- Testtilfelle 05: Sjekk CPU- og minnebruken til applikasjonen og databaseserveren under toppbelastningsforhold
- Testtilfelle 06: Bekreft responstiden til applikasjonen under forhold med lav, normal, moderat og tung belastning.
Under selve ytelsestesten blir vage termer som akseptabel rekkevidde, tung belastning osv. erstattet med konkrete tall. Ytelsesingeniører setter disse tallene i henhold til forretningskrav og det tekniske landskapet til applikasjonen.
Ytelsestestverktøy
Det finnes et bredt utvalg av ytelsestestingsverktøy tilgjengelig på markedet. Verktøyet du velger for testing vil avhenge av mange faktorer som protokolltyper som støttes, lisenskostnader, maskinvarekrav, plattformstøtte osv. Nedenfor er en liste over populært brukte testverktøy.
- HP LoadRunner - er de mest populære ytelsestestingsverktøyene på markedet i dag. Dette verktøyet er i stand til å simulere hundretusenvis av brukere, sette applikasjoner under virkelige belastninger for å bestemme oppførselen deres under forventet belastning. Loadrunner har en virtuell brukergenerator som simulerer handlingene til levende menneskelige brukere.
- Jmeter – et av de ledende verktøyene som brukes til lasttesting av web- og applikasjonsservere.
FAQ
Konklusjon
In Engineering programvare, Ytelsestesting er nødvendig før markedsføring av programvareprodukter. Det sikrer kundetilfredshet og beskytter en investors investering mot produktfeil. Kostnadene ved ytelsestesting er vanligvis mer enn oppveiet med forbedret kundetilfredshet, lojalitet og oppbevaring.



