I denne artikkelen vil vi undersøke hva ytelsestesting er sammen med de mange typene og ytelsestestingsverktøyene som er tilgjengelige, utfordringene og fordelene forbundet med ytelsestesting og mye mer. Denne omfattende veiledningen vil også inkludere en analyse av automatisert ytelsestesting som blir mer vanlig etter hvert som teknologien går enda lenger.
Hva er ytelsestesting?
Ytelsestesting, noen ganger forkortet til «perf testing», er en prosess som utføres for å identifisere om et bestemt produkt vil utføre sine forventede prosesser godt under forskjellige arbeidsbelastninger. Dette kan ha form av ytelsestesting av nettsider eller ytelsestesting i programvaretesting, avhengig av produktet som er involvert.
Ytelsestesting er hovedsakelig utformet for å oppdage produktparametere som ikke fungerer, som kan endres tidlig i produktets livssyklus for å unngå større problemer fremover. Dette blir ofte referert til som å lokalisere flaskehalser, som refererer til en enkelt komponent som holder tilbake den generelle ytelsen til programvaren.
Ytelsestesting kan utføres i et laboratorium eller i et produksjonsmiljø og vurderer vanligvis hastigheten, hastigheten, skalerbarheten, stabiliteten, reaksjonsevnen og påliteligheten til produktet.
Er ytelsestesting forskjellig fra funksjonell testing?
Perf-testing er forskjellig fra funksjonell testing , som tester om visse funksjoner på en applikasjon fungerer, for eksempel «legg til i kurv»-knappen i en nettbutikk.
Ytelsestesting ser på hvor godt en funksjon fungerer under mye press, dvs. lasttesting , for eksempel, ville knappen fortsatt virket hvis mange personer la i kurven samtidig?
Begge disse typene tester kommer under paraplyen for testing av ytelsestesting av API, som betyr at formålet deres er å bestemme den generelle ytelsen til et systems grensesnitt under visse omstendigheter, fra bakenden av programvaren. Det er mange typer API-ytelsestestingsverktøy som denne artikkelen vil vurdere, for eksempel ytelsestesting av arbeidsbelastningsmodeller.
Hvorfor trenger vi ytelsestesting?
Nettytelsestester er avgjørende slik at utviklere kan gi interessenter pålitelig informasjon om applikasjonens ytelse og forutsi hvordan den vil reagere på ulike trafikknivåer.
Ytelsestesting avslører også hva som må forbedres før produktet kommer i hyllene eller etter at det har blitt gjort live, og unngår treg ytelse, inkonsekvenser og dårlig brukervennlighet. Den tester mot forventede brukertall slik at man kan stole på at den fungerer som forventet.
Fordeler med ytelsestesting
Vi har allerede kort nevnt fordelene med ytelsestesting bare ved å identifisere hva det er, men vi vil gå gjennom en liste over de spesifikke fordelene med ytelsestesting nedenfor.
1. Realistisk informasjon
Som nevnt kort ovenfor, brukes ytelsestesting for å gi interessenter pålitelig, realistisk informasjon om hvordan applikasjonen vil fungere. Uten dette er det en risiko for skadet omdømme for det involverte selskapet.
Nøyaktig ytelsestesting betyr at pålitelige tall kan gis som, gjennom testprosessen , kan forbedres, noe som betyr at produktet kan ha en fordel i forhold til ulike produkter på markedet og sikkerhetskopiere disse med pålitelig ytelse, noe som resulterer i økt salg.
2. Gir mulighet for forberedelse
Ytelsestesting kan brukes til å identifisere hvor programvarerelaterte feil kan skje når det er et høyt antall brukere, noe som betyr at applikasjonen da kan optimaliseres slik at disse problemene løses og tåler høyere bruk. Dette er ideelt for e-handelssider, for eksempel, som kanskje må forberede seg på forutsigbart store begivenheter som Black Friday.
Gjennomføring av ytelsestesting unngår krasj mens nettstedet er oppe på kritiske øyeblikk. En nettbutikk som ikke kan takle antallet brukere på Black Friday, som tar for lang tid å laste eller feiler, vil sannsynligvis gå glipp av store fortjenester.
3. Forbedret brukeropplevelse
Ytelsestesting bør utføres regelmessig for at nettsiden eller programvaren med høyest ytelse skal fortsette sin forventede funksjon. Kontinuerlig ytelsestesting betyr at eventuelle problemer som kan oppstå i sanntid løses så raskt som mulig. Viktigheten av dette er forankret i testing av brukeropplevelse , selv utenfor de store hendelsene som vi skisserte ovenfor.
Hvis nettstedet er konsekvent brukervennlig, med forbedringer for å sikre at det aldri faller bak, vil kundene ofte besøke.
4. Sammenligning
Ytelsestesting kan også brukes til å sammenligne ett produkt med et annet. Dette kan være nyttig for en utvikler på vei inn i en svært konkurranseutsatt bransje som ønsker å sikre at de er lik eller kan utkonkurrere sin hovedkonkurrent på markedet.
Dette kan brukes som et salgsargument for å få en fordel eller rett og slett som et benchmark under testprosessen for å sikre at applikasjonen fungerer godt nok.
Utfordringer og begrensninger ved ytelsestesting
Selv om det helt klart er en rekke betydelige fordeler, er det på grunn av dens komplekse natur noen utfordringer og begrensninger ved ytelsestesting som vi vil skissere nedenfor.
1 gang
For å høste alle disse fordelene, må organisasjoner være villige til å sette av tid til ytelsestesting. Dette kan inkludere å sette opp maskinvare og infrastruktur som de ikke forventet eller dedikere ansatte til ytelsestesting.
For at ytelsestesting skal være grundig, bør det ikke forhastes … dette er ikke nødvendigvis en smidig testprosess . Noen selskaper kan finne det vanskelig å sette av den tiden i stedet for å gå inn i neste fase av prosjektet, da det kan føre til lange forsinkelser. Det er grunnen til at vi i ZAPTEST tar til orde for viktigheten av at hvert selskap utvikler et Test Center of Excellence , som både vil øke produktiviteten og vil utvikle testprosessen i en mer smidig virksomhet.
2. Penger
Det er kostbare investeringer som må gjøres i ytelsestesting. Prisen på ytelsestestverktøyet avhenger av omfanget av nettstedet eller programvaren, og om organisasjonen velger manuelle eller automatiserte ytelsestestingsverktøy.
Gratis verktøy for ytelsestesting finnes, men de har begrenset funksjonalitet og fungerer ikke så godt som betalte.
I tillegg kan ytelsestesting avsløre uventede problemer som krever kostbare oppgraderinger eller ekstra systemkapasitet som først ikke ble tatt med i budsjettet.
For mindre bedrifter kan verktøy for ytelsestesting være utgifter de ikke er villige til å betale til tross for at det kan ha stor innvirkning på ytelsen deres på lang sikt.
3. Begrensninger for verktøy
Det kan være begrensninger avhengig av ytelsestestverktøyet som en utvikler velger.
Som vi har nevnt, sparer du budsjettet ved å velge et gratis ytelsestestverktøy, men det kan gå glipp av viktige aspekter. Noen verktøy, til og med betalte, kan ha begrenset kompatibilitet, for eksempel kan noen bare være i stand til å støtte ytelsestesting av nettstedet eller en nettleserytelsestest, og ikke være i stand til testing av programvareytelse.
Og noen ytelsestestverktøy kan finne det vanskelig å teste komplekse eller svært store applikasjoner og krever tett overvåking av ansatte.
Typer ytelsestesting
Det finnes flere typer ytelsestesting som refererer til metodene som brukes for å teste systemet. Metoden som brukes er valgt ut fra skala og type system som testes, samt de tiltenkte målene som utviklerne sikter mot.
Her vil vi identifisere hovedtypene for ytelsestesting som brukes og hvordan de fungerer.
1. Lasttesting
Testverktøy for belastningsytelse gjør det mulig for utviklere å forstå hvordan systemet vil oppføre seg under en forhåndsbestemt, spesifikk belastningsverdi.
Denne prosessen involverer simulering av forventet antall samtidige brukere over en tidsperiode. Dette verifiserer de forventede responstidene til applikasjonen og identifiserer potensielle flaskehalser før nettstedet eller programvaren publiseres. Dette kan gjøres for å teste om systemet kan håndtere forventet bruk generelt, eller for å teste hvordan en spesifikk funksjonalitet vil klare seg, som «legg i kurv»-eksemplet vi nevnte ovenfor. Dette kalles noen ganger » enhetstesting «.
2. Stresstesting
Stresstesting er en annen form for ytelsestesting av arbeidsbelastningsmodeller og kan ofte gjøres med de samme verktøyene, men det presser nettstedet til å øke testkapasiteten til det går i stykker i stedet for å ha en begrenset, bestemt belastningsverdi.
Dette bruker høyere trafikk enn forventet slik at utviklere kan finne ut hva feilpunktet er og se hvordan det håndterer høye nivåer av databehandling. Dette hjelper utviklere med å forstå skalerbarheten til programvaren og viser hvor lang tid det tar for nøkkelytelsesindikatorer (KPIer) å gå tilbake til normale driftsnivåer etter en stor datahendelse.
Stresstesting kan foregå før eller etter at et system går i drift.
3. Piggtesting
Dette er en undergruppe av stresstesting, men analyserer mer spesifikt ytelsen til systemet under en plutselig, betydelig økning av sluttbrukere. Disse ytelsestestene hjelper til med å avgjøre om systemet kan håndtere en brå endring i brukere over en kort periode, gjentatte ganger.
4. Soak testing
Denne typen ytelsestesting er også kjent som utholdenhetstesting, og den er designet for å teste et systems langsiktige ytelse og hvor godt det kan takle det over tid. De analyserer gjennomstrømning og responstider etter langvarig bruk for å sjekke om ytelsesmålinger er konsistente hele veien og om det er noen feil.
Hva bør vi teste via ytelsestesting?
Formålet med ytelsestesting er å kunne oppdage problemer, men å vite hva som forårsaker dem er hovedmålet.
Se nedenfor for en liste over de tingene som hovedsakelig testes via ytelsestesting.
1. Flaskehalser
Ytelsestesting bør alltid være på utkikk etter flaskehalser som påvirker den generelle ytelsen til systemet. Dette kan relateres til hvilken som helst av ytelsestesting-beregningene som vi vil liste opp i neste avsnitt.
2. Lastetider
Dette betyr tildelingen som kreves for å starte søknaden. Forsinkelsen bør være så kort som mulig for å tilby den beste brukeropplevelsen – alt mer enn noen få sekunders lastetid kan sende brukere bort.
3. Responstider
En dårlig responstid er når tiden som går mellom en bruker legger inn informasjonen og responsen på handlingen er for lang. I likhet med overdreven lastetider vil dette frustrere en bruker og oppmuntre dem til å forlate nettstedet eller applikasjonen.
4. Skalerbarhet
Skalerbarheten til et system bør testes, noe som betyr dets tilpasningsevne til ulike krav til databruk. Begrenset skalerbarhet vil bli identifisert hvis systemet kan fungere godt med noen få samtidige brukere, men under belastnings- eller stresstesting blir det dårligere når brukertallet øker.
Beregninger for ytelsestesting
En ting er å kunne teste disse tingene og se når de går galt, men hvordan måles de egentlig?
Det er utallige mengder beregninger som utviklere bruker for ytelsestesting, så vi har valgt ut de viktigste og gitt en kort beskrivelse for dem nedenfor.
1. Gjennomstrømning
Dette indikerer hvor mange enheter med informasjon systemet er i stand til å behandle over en spesifisert tid.
2. Minnebruk
Minne i form av et nettsted eller programvareutvikling betyr arbeidslagringsplassen som er tilgjengelig for prosessoren eller arbeidsbelastningen.
3. Båndbredde
Dette betyr volumet av data per sekund som kan bevege seg mellom arbeidsbelastninger, ofte over et nettverk. Dårlig båndbredde resulterer i dårlige lastetider.
4. CPU-avbrudd per sekund
Dette måler innvirkningen maskinvaren har på prosessen, og måler antall maskinvareavbrudd den mottar per sekund.
Kjennetegn på en effektiv ytelsestest
En god ytelsestest vil tillate utviklere å handle på feilene, men de spesifikke egenskapene til en effektiv ytelsestest er mer spesifikke og vanskelige å oppnå enn dette.
1. Realistisk testing
De beste ytelsestestene er de som forutser virkelige scenarier som systemet kan møte.
Dette betyr at den kan optimaliseres for å fungere under forhold som den er designet for å gjøre, slik at den kan oppfylle ytelsesmålene og ikke støte på problemer i kritiske øyeblikk.
2. Rask analyse
De optimale ytelsestestene gjør det mulig å gjøre endringer i henhold til resultatene så snart som mulig.
Selv om det må være grundig, bør dataene være enkle å analysere og gjennomføres så snart som mulig slik at tiltak kan iverksettes. Dette er spesielt viktig hvis testingen har funnet sted etter at applikasjonen eller siden er aktiv.
3. Pålitelige resultater
Selv om hastighet er viktig for å optimere ytelsestestprosessen, må dataene som produseres være pålitelige og nøyaktige slik at riktig beslutningstaking kan finne sted.
For å produsere pålitelig og rask analyse er det mange som henvender seg til automatisert ytelsestesting, som vi skal gå nærmere inn på senere.
Ytelsestestingsprosess
Ytelsestestingsprosessen vil variere for hver organisasjon avhengig av faktorene vi allerede har identifisert.
Imidlertid er det seks hovedtrinn som skisserer hva de fleste ytelsestestingsprosesser vil følge som vil tillate et effektivt resultat.
1. Strategier for ytelsestesting
Det første trinnet for å starte en ytelsestestprosess er å kjenne testmiljøet. Vet hvilke testverktøy du har tilgjengelig, inkludert en avgjørelse om det skal utføres manuelt eller automatisert, og identifiser potensielle ytelsesteststrategier.
Sørg for at du forstår detaljene om maskinvare og programvare som er involvert, samt eventuelle nettverkskonfigurasjoner som vil bli brukt.
2. Ytelseskriterier
Deretter er det viktig å identifisere målene for testen og suksesskriteriene du jobber mot, som vil være forskjellige for hver test. Identifiser for eksempel gjennomstrømningsbegrensninger og forventede responstider og alloker ressurser.
På dette tidspunktet kan det være fordelaktig å identifisere et lignende system å sammenligne med for å sette resultatmål.
3. Ytelsestestplan
Når kriteriene er identifisert, kan du begynne planleggingen og utformingen av ytelsestesten.
Bestem hvilken bruk applikasjonen sannsynligvis vil få, og nøkkelscenarier du kan simulere for å sikre at systemet reagerer riktig. Planlegg ytelsestestdataene du har til hensikt å få, hvordan du får det og hvilke beregninger som skal brukes.
4. Design for ytelsestest
Når all planleggingen er fullstendig ferdig, kan du begynne å fysisk designe og konfigurere testmiljøet og ordne verktøyene og ressursene som trengs, inkludert administrasjon av testdata .
Deretter lager du ytelsestestene i henhold til designet, klare til at de kan begynne å kjøre.
5. Test
Dette er punktet hvor ytelsestesten vil bli utført. Det er viktig at du overvåker prosessen mens den går og oppretter logger som dokumenterer KPIer hele veien.
6. Analyser og test på nytt
Konsolider resultatene og start analyseprosessen.
Hvordan var det sammenlignet med dine forventninger, hvilke beregninger ble målt, og hvordan reagerte systemet? Deretter endrer du ytelsestesten og tester på nytt for å identifisere forbedringer eller reduksjoner i ytelse. Forbedringer bør reduseres med hver retest.
Logg alle pågående resultater.
Eksempler på ytelsestest
Det er mange potensielle scenarier for ytelsestesting avhengig av systemet som testes, formålet, verktøyene som brukes og typen ytelsestesting.
La oss se eksempelet vårt på e-handelssiden på nytt.
e-handelsside
Utviklerne kan ønske å bruke arbeidsbelastningsmodellytelsestesting for å verifisere at responstiden ikke er mer enn tre sekunder når 2000 brukere går inn på nettstedet samtidig ved hjelp av en belastningstest.
Neste trinn kan være å bekrefte at responstiden fortsatt er innenfor et akseptabelt område på fem sekunder når nettverkstilkoblingen er treg.
Som forberedelse til Black Friday kan utviklerne bruke en stresstest for å identifisere det maksimale antallet brukere nettstedet kan romme før det opplever feil som krasj eller svært langsomme responstider. I løpet av dette vil de sjekke minnet og CPU-bruken til nettstedet og hvordan databaseserveren reagerer under toppbelastningsforhold.
De vil deretter teste alle disse parameterne på nytt under en rekke forhold, kanskje ved å bruke spiketesting eller soaktesting for å identifisere hvordan den vil reagere gjennom ulike tidsrammer.
Utviklere vil også bruke enhetstesting av «legg til i kurv»-funksjonen, for eksempel for å teste hvordan systemet vil reagere på 100 brukere som fullfører en transaksjon på en gang. Denne testen kan brukes på en rekke plattformer som Linux , Windows , Android , iOS , web , QA-tester og mer!
Bør du automatisere ytelsestesting?
Automatisert ytelsestesting er prosessen med å la ferdiglagde verktøy, programvare og kode kjøre automatiseringsprosessen i stedet for å utføre den manuelt.
Automatisering av ytelsestesting er i ferd med å bli uunnværlig i moderne tid, med noen organisasjoner som bruker Robotic Process Automation og noen går til og med mot hyperautomatisering .
Programvare for automatisering av ytelsestesting har en rekke fordeler og ulemper som vi vil skissere nedenfor.
Fordeler med automatiserte ytelsestester
Ytelsestesting fjerner mye av tiden og pengene som kan brukes på å lage testkode og gjenta den manuelt, noe som øker effektiviteten til testsyklusen.
Det betyr også ofte at utviklere kan starte ytelsestesten og gå videre for å gjøre noe annet, i stedet for å konstant overvåke det, noe som gjør fjernarbeid mulig og meningstester kan til og med kjøres over natten.
I tillegg, som vi allerede har nevnt, på grunn av automatiseringens natur, blir ytelsestestingsprosessen ikke bare raskere, men mer nøyaktig og pålitelig, i stand til å fullføre omfattende prosesser uten risiko for menneskelige feil.
Alle disse faktorene sparer selvfølgelig bedrifter for verdifull tid og penger, og kan ofte skryte av høyere avkastning på investeringen.
Begrensninger for automatiserte ytelsestester
Automatiserte ytelsestester kan ha begrensninger på hva de kan oppnå realistisk. Innspill fra et menneske vil ofte være nødvendig for svært sofistikerte tester, og for å rette opp feilene som kan oppstå med en automatisert prosess.
Menneskelig observasjon kan være avgjørende for å oppdage feil og bidra til å forbedre kundeopplevelsen, noe som ikke kan garanteres med automatiseringstesting.
Manuell testing er ofte bedre egnet for utforskende, brukervennlighet og ad hoc-testing.
Konklusjon: manuell vs. automatisert ytelsestesting
For å velge mellom manuell og automatisert ytelsestesting, må du nøye evaluere ytelseskriteriene og budsjettet. Automatisert ytelsestesting er ofte mer budsjettvennlig og raskere, spesielt for store testbehov, men manuell testing kan finne problemer som et automatisert system ikke kan.
Verktøy for ytelsestesting
Det finnes mange typer ytelsestestverktøy, men de kan hovedsakelig deles inn i to kategorier: API-ytelsestestingsverktøy og UI-ytelsestestingsverktøy.
Verktøy for testing av API-ytelse analyserer om de riktige prosessene blir oppfylt i bakenden av applikasjonen. REST API ytelsestestverktøy er en spesifikk type som utfører en nettytelsestest ved å sende forskjellige HTTP/S-forespørsler.
På den annen side tester UI-ytelsestestingsverktøy klientsiden, noe som betyr at brukeropplevelsen blir evaluert.
De beste verktøyene for ytelsestesting er de som gjør begge disse fordi de gir en fullstendig oversikt over om systemet fungerer. I tillegg til dette er det både gratisverktøy og betalte automatiseringsprogramvare for ytelsestesting på bedriftsnivå tilgjengelig, så hvordan bestemmer du deg?
Gratis verktøy for ytelsestesting: fordeler og begrensninger
Det finnes en rekke gratis ytelsestesttjenester på markedet.
Den åpenbare fordelen med disse er at de åpner opp ytelsestesting for mindre bedrifter eller startups som kanskje ikke har budsjettet til å betale for et bedriftstestverktøy. Dette betyr at de kan få tilgang til grunnleggende ytelsestesting og redigere systemet i henhold til dette.
Begrensningene for gratis automatiseringsprogramvare for ytelsestesting er at de ofte ikke fungerer like godt som betalte. Funksjonene deres vil sannsynligvis være begrenset, og det vil være vanskeligere å utvikle og vedlikeholde skript.
Gratis verktøy for ytelsestesting er kanskje ikke kompatible med alle plattformer eller testtyper eller har kanskje ikke en rapporteringsfunksjon. Noen funksjoner kan være låst bak en betalingsmur, for eksempel tilgang til API-testing .
Verktøy for testing av bedriftens ytelse: fordeler og begrensninger
Verktøy for ytelsestesting for bedrifter er programvare utviklet for å fungere i hele virksomheten. De er ofte verdt prislappen ved at de sannsynligvis er kompatible med mange testtyper, språk og plattformer for økt fleksibilitet og skalerbarhet.
Verktøy for ytelsestesting for bedrifter er kraftige, så de kan utføre større tester i en lavere tidsramme og leveres med fremtidige vedlikeholdsoppdateringer for å forbedre ytelsen som gratisversjoner kanskje ikke. Tenk på verktøy på Enterprise-nivå som fullstack-testingsprogramvare som kan kjøre regresjonstester , enhetstesting , integrasjonstesting og enhver annen type programvaretesting som en bedrift krever det.
Imidlertid kan det hende at bedrifter ikke har budsjettet til å sette av til disse ytelsestesttjenestene, spesielt for programvare som har mange funksjoner som de ikke vil bruke eller hvis virksomheten deres er relativt liten.
Verktøy for ytelsestesting for bedrifter kan også være vanskeligere å få tilgang til og tregere å implementere enn enkle gratisversjoner.
Imidlertid reduserer ledende programvaretestverktøy som ZAPTEST denne begrensningen ved å tilby en verktøy + tjenestemodell. På denne måten jobber en ZAP-ekspert tett og eksternt med klientorganisasjonen (som en del av teamet deres), og støtter dem med implementering av ytelsestestplanen, ZAPTEST-verktøyet og med å optimalisere testprosessen.
Når bør du bruke enterprise kontra gratis ytelsestestverktøy?
Vurder alternativene dine basert på organisasjonens omstendigheter. Noen ganger kan det være mer kostnadseffektivt å velge en gratisversjon som har hovedfunksjonene du trenger, for eksempel for en engangstest av et nettsted.
Hvis du er en del av en stor organisasjon som kan dra nytte av et komplekst, datatett testsystem som du vil bruke mange ganger for forskjellige systemer, vil et verktøy for bedriftsytelsetesting sannsynligvis hjelpe deg mest.
Sjekkliste for ytelsestesting
1. Budsjett
For å finne det beste verktøyet for ytelsestesting, er det nødvendig å ha et detaljert budsjett på plass for å kunne identifisere om du har råd til en bedriftsnivå eller annen betalt versjon.
Undersøk de forskjellige tilgjengelige verktøyene og ta avgjørelsen din basert på ytelseskriteriene og testmiljøet.
2. Planlegg
Når budsjettet ditt er på plass, kan du planlegge ytelsestestingsprosessen, for eksempel velge den beste strategien, bestemme hvilke kriterier du tester og bestemme hvilke beregninger du skal bruke.
Planleggingsprosessen bør være grundig enten du velger manuell eller automatisert ytelsestesting.
3. Analyser
Gjennomfør ytelsestesten med tett analyse gjennom hele testen og etterpå.
For at en ytelsestest skal være effektiv, må du kunne handle på den best mulig måte, så ta en nærmere titt på dataene og fortsett å teste og analysere inn i systemets liv.
Konklusjon
Vi har gått gjennom noen av typene og verktøyene for ytelsestesting, samt de viktigste fordelene og begrensningene ved ytelsestesting.
Ytelsestesting er fortsatt spesielt viktig fordi bruken av nettbaserte systemer og applikasjoner ikke bremser ned og faktisk øker i hastighet, og å ha et system som kan takle store mengder press er viktigere enn noen gang i møte med stor konkurranse.
For å holde seg i forkant av innovasjon, bør store bedrifter vurdere fordelene med ytelsestesting på bedriftsnivå og RPA-automatiseringsprogramvare og hvordan investering i det kan være til nytte for dem på lang sikt.