Ytelse kontra belastningstesting
I sammenheng med programvareutvikling utføres ytelsestesting for å finne ut flaskehalsene til et system. Ytelsestester kan også brukes til å verifisere attributter som pålitelighet, ressursbruk og skalerbarhet, og etablere en grunnlinje for ytelsen til et system. Lasttesting er en av undersjangrene av ytelsestesting. Det utføres for å måle oppførselen til et system under en spesifisert arbeidsbelastning. Lasttesting er mer relevant for flerbrukersystemer basert på klient-servermodell, men andre programvaresystemer som tekstbehandlere eller grafikkredigerere kan også lastetestes.
Ytelsestesting
Som nevnt ovenfor, utføres ytelsestesting for å bestemme og eliminere flaskehalser i et programvaresystem og etablere en grunnlinje for ytelsen som vil være nyttig for videre testing. Ytelsestesting inkluderer tester som belastningstester, utholdenhetstester (soak tester), piggtester, konfigurasjonstester og isolasjonstester. Ytelsestesting krever å få et nøye kontrollert sett med målinger av systemet. For å få best resultat ut av ytelsestesting, bør det være godt planlagt og bør gjøres på et stabilt system der testprosessen kan forløpe jevnt. Det er viktig å tydelig forstå hva du faktisk ønsker å måle når det gjelder ytelsen til systemet når du utfører ytelsestesting. Hvis du for eksempel tester ytelsen til en nettapplikasjon, vil du kanskje vite akseptabel responstid og antall samtidige brukere som kan håndteres av systemet. Med disse to aspektene i bakhodet, kan du starte testen ved å øke antall brukere konstant og identifisere flaskehalsen.
Lasttesting
Som tidligere nevnt er belastningstesting en del av ytelsestesting, og det utføres ofte ved å øke belastningen på et programvaresystem ved hjelp av automatiserte verktøy. Lasttesting er noen ganger kjent som volumtesting. Noen eksempler på belastningstester vil være å teste en e-postserver med et stort antall brukerpostbokser eller å teste redigering av et veldig stort dokument ved hjelp av en tekstbehandler. Belastningstester utføres ved å bruke et forhåndsdefinert belastningsnivå som vanligvis bruker den maksimale belastningen som systemet kan håndtere uten å krasje. Vanligvis tar belastningstesting sikte på å avdekke feil som ikke avsløres i ordinær testing som minnehåndteringsproblemer, minnelekkasjer, bufferoverløp osv. Lasttesting fungerer også som et middel for å sikre at systemet oppfyller ytelsens baseline etablert under ytelsestesting.
Forskjellen mellom ytelses- og belastningstesting
Selv om begrepene ytelsestesting og belastningstesting brukes om hverandre, er belastningstesting bare et enkelt aspekt ved ytelsestesting. Målene for de to testene er også forskjellige. Ytelsestesting bruker belastningstesteteknikker for å oppnå målinger og benchmarking, og den bruker flere belastningsnivåer. Men belastningstesting opererer på et enkelt forhåndsdefinert belastningsnivå, vanligvis den høyeste belastningen systemet kan håndtere uten å krasje. I praksis gjøres ytelsestester med den hensikt å finne flaskehalsene i systemet og eliminere dem. Og når systemet ikke kan optimaliseres lenger, startes lasttesting for å finne ut hva du trenger å legge til systemet (oftest maskinvareutvidelser som antall webservere eller databaseservere) for å opprettholde kravene som er forhåndsdefinert av kunden.