performance testing vs load testing vs stress testing
Verschil tussen prestatietests, belastingtests en stresstests - met voorbeelden
Onze vorige tutorial in deze serie zal de beste zijn Gids voor prestatietests voor elke beginner.
Op het gebied van softwaretests komen we termen tegen als prestatietests, belastingtests, stresstests, enz. Deze termen worden vaak verkeerd begrepen en geïnterpreteerd als dezelfde concepten.
Er is echter een significant verschil tussen deze drie testtypen en het is belangrijk dat een tester hetzelfde begrijpt.
Klik hier voor een complete serie tutorials over prestatietests
hoe je een array in java omkeert
In deze zelfstudie bespreken we elk van deze testtypen om de exacte verschillen tussen beide te begrijpen.
Wat je leert:
Verschil tussen prestatietests, belastingtests en stresstests
# 1) Prestatietests
Wat is prestatietesten?
Prestatietesten zijn testen die worden uitgevoerd om vast te stellen hoe de componenten van een systeem presteren in een bepaalde gegeven situatie.
Het gebruik van hulpbronnen, schaalbaarheid en betrouwbaarheid van het product worden ook gevalideerd tijdens deze tests. Dit testen is de subset van prestatie-engineering, die gericht is op het aanpakken van prestatieproblemen in het ontwerp en de architectuur van een softwareproduct.
De bovenstaande afbeelding legt ons dat duidelijk uit Performance Testing is de superset voor zowel load- als stresstests. Andere soorten tests die zijn opgenomen in prestatietests zijn spike-tests, volumetests, duurtests en Schaalbaarheidstesten Prestatietesten is dus in feite een zeer brede term.
Doelstelling voor prestatietests:
Het primaire doel van prestatietests omvat het vaststellen van het benchmarkgedrag van het systeem. Er zijn een aantal door de industrie gedefinieerde benchmarks waaraan tijdens prestatietests moet worden voldaan.
Prestatietests zijn niet bedoeld om defecten in de applicatie te vinden. Het slaagt ook niet voor de test. Het richt zich eerder op de kritieke taak van het instellen van het benchmark en standaard voor een applicatie Prestatietests moeten zeer nauwkeurig worden uitgevoerd. Nauwlettende monitoring van de applicatie / systeemprestaties is het primaire kenmerk van prestatietests.
De benchmark en standaard van de applicatie moeten worden vastgesteld in termen van kenmerken zoals snelheid, responstijd, doorvoer, resourcegebruik en stabiliteit. Al deze attributen worden getest in een prestatietest.
Bijvoorbeeld,
U kunt bijvoorbeeld de prestaties van het applicatienetwerk testen via de grafiek ‘Verbindingssnelheid vs. latentie’. Latency is het tijdsverschil tussen de gegevens die moeten worden bereikt van de bron tot de bestemming.
Een pagina van 70 kb zou niet meer dan 15 seconden nodig hebben om te laden voor de slechtste verbinding van een 28,8 kbps modem (latentie = 1000 milliseconden), terwijl de pagina van dezelfde grootte binnen 5 seconden zou verschijnen voor de gemiddelde verbinding van 256 kbps DSL (latentie = 100 milliseconden).
Bij een T1-verbinding van 1,5 Mbps (latentie = 50 milliseconden) zou de prestatiebenchmark ingesteld zijn op 1 seconde om dit doel te bereiken.
Een ander voorbeeld zou dat van een Request-response-model zijn. We kunnen een maatstaf instellen dat het tijdsverschil tussen het genereren van het verzoek en de bevestiging van het antwoord in het bereik van x ms (milliseconden) en y ms moet liggen, waarbij x en y de standaardcijfers zijn.
Een geslaagde prestatietest zou de meeste prestatieproblemen moeten projecteren, die verband kunnen houden met database, netwerk, software, hardware, enz.
# 2) Load Testing
Het testen van de belasting is bedoeld om het systeem te testen door de belasting van het systeem constant en gestaag te verhogen totdat het de drempelwaarde bereikt. Het is een subset van prestatietests.
Het testen van belasting kan eenvoudig worden uitgevoerd door gebruik te maken van een van de geschikte automatiseringstools die op de markt verkrijgbaar zijn. WAPT en LoadRunner zijn twee van zulke beroemde tools die helpen bij het testen van belasting. Load testing is ook bekend onder namen als Volume testen en Duurzaamheidstesten
Volumetesten richten zich echter vooral op databases. Duurzaamheidstesten test het systeem door het gedurende een aanhoudende periode aanzienlijk te belasten.
Het enige doel van belastingtests is om het systeem de grootste taak toe te kennen die het mogelijk kan uitvoeren om het uithoudingsvermogen van het systeem te testen en de resultaten te bewaken. Een interessant feit hierbij is dat het systeem soms wordt gevoed met een lege taak om het gedrag van het systeem in de nullastsituatie te bepalen.
De attributen die worden bewaakt in een belastingtest zijn onder meer: piekprestaties, serverdoorvoer, reactietijd onder verschillende belastingsniveaus (onder de drempel van onderbreking), toereikendheid van de H / W-omgeving, hoeveel gebruikerstoepassingen het aankan zonder de prestaties te beïnvloeden.
Doelstelling laden testen:
De doelen van loadtests zijn onder meer:
- Het blootleggen van de defecten in een toepassing die verband houden met bufferoverloop, geheugenlekken en slecht geheugenbeheer. De problemen die uiteindelijk naar voren zouden komen als gevolg van belastingtests, kunnen problemen met de taakverdeling, bandbreedteproblemen, de capaciteit van het bestaande systeem, enz. Omvatten.
- Om de bovengrens te bepalen van alle componenten van een applicatie zoals een database, hardware, netwerk, etc. zodat de applicatie de verwachte belasting in de toekomst kan beheren.
- Om de SLA's voor de applicatie in te stellen.
Bijvoorbeeld,
Laten we eens kijken naar de e-mailfunctionaliteit van een applicatie, die kan worden overspoeld met 1000 gebruikers tegelijk. Nu kunnen 1000 gebruikers de e-mailtransacties (lezen, verzenden, verwijderen, doorsturen, beantwoorden) op veel verschillende manieren activeren.
Als we één transactie per gebruiker per uur aannemen, dan zijn dat 1000 transacties per uur. Door 10 transacties / gebruikers te simuleren, konden we de e-mailserver testen door deze te bezetten met 10.000 transacties / uur.
Een ander voorbeeld van een belastingtest wordt getoond in de onderstaande afbeelding:
De bovenstaande afbeelding toont een belastingtest die is uitgevoerd in de tool met de naam JMeter Deze test wordt gedaan om te bepalen hoeveel gebruikers een systeem aankan. In deze test worden na elke 30 seconden 100 gebruikers toegevoegd totdat de belasting 1000 gebruikers bereikt. Elke stap duurt 30 seconden en JMeter wacht 30 seconden voordat de volgende stap wordt gestart.
Zodra de lading 1000 threads bereikt, zullen ze allemaal 300 seconden (5 minuten) samen blijven lopen en uiteindelijk elke 3 seconden 10 thread stoppen.
# 3) Stresstesten
Bij stresstests worden verschillende activiteiten uitgevoerd om de bestaande middelen te overbelasten met overtollige banen in een poging het systeem af te breken. Negatief testen , waaronder het verwijderen van de componenten uit het systeem, wordt ook gedaan als onderdeel van stresstests.
Ook gekend als vermoeidheidstesten , moet deze test de stabiliteit van een applicatie vastleggen door deze buiten de bandbreedtecapaciteit te testen.
Stresstests evalueren dus in feite het gedrag van een applicatie buiten piekbelasting en normale omstandigheden.
Het doel van stresstests is om het falen van het systeem vast te stellen en om te controleren hoe het systeem zich netjes herstelt. De uitdaging hier is om een gecontroleerde omgeving op te zetten voordat u de test start, zodat u het gedrag van het systeem herhaaldelijk nauwkeurig kunt vastleggen onder de meest onvoorspelbare scenario's.
De problemen die uiteindelijk naar voren zouden komen als gevolg van stresstests zijn onder meer synchronisatieproblemen, geheugenlekken, racecondities, enz. Als de stresstest controleert hoe het systeem zich gedraagt in de situatie van een plotselinge toename van het aantal gebruikers , dan wordt het een piektest genoemd.
Als de stresstest bedoeld is om de duurzaamheid van het systeem over een bepaalde periode te controleren door een langzame toename van het aantal gebruikers, wordt dit een soak-test genoemd.
Stresstestdoel:
Het doel van stresstests is om post-crashrapporten te analyseren om het gedrag van de applicatie na een storing te bepalen.
De grootste uitdaging is ervoor te zorgen dat het systeem de beveiliging van gevoelige gegevens na de storing niet in gevaar brengt. Bij een geslaagde stresstest zal het systeem, samen met al zijn componenten, zelfs na de meest verschrikkelijke storing weer normaal worden.
Bijvoorbeeld,
Een tekstverwerker zoals Writer1.1.0 van OpenOffice.org wordt bijvoorbeeld gebruikt bij de ontwikkeling van brieven, presentaties, spreadsheets, enz. Het doel van onze stresstest is om het te laden met overtollige tekens.
Om dit te doen, zullen we herhaaldelijk een regel gegevens plakken, totdat deze de drempelwaarde bereikt voor het verwerken van een grote hoeveelheid tekst. Zodra de tekengrootte 65.535 tekens bereikt, zou het eenvoudigweg weigeren meer gegevens te accepteren.
Het resultaat van stresstesten op Writer 1.1.0 levert het resultaat op dat het niet crasht onder de stress en het behandelt de situatie netjes, wat ervoor zorgt dat de applicatie correct werkt, zelfs onder zware stressomstandigheden.
Een ander voorbeeld van een belastingtest die een piektest weergeeft door een plotselinge stijging van 7000 gebruikers, wordt hieronder weergegeven:
Veelgestelde vragen
Nu we genoeg discussies hebben gehad over prestatietests, stresstests en belastingtests, gaan we nu kijken naar enkele gerelateerde veelgestelde vragen waarop testers een antwoord zoeken.
V # 1) Zijn belastingtests en prestatietests hetzelfde?
Antwoord: Het antwoord hierop is ‘Nee’. Ze zijn niet hetzelfde.
html5 interviewvragen en antwoorden voor ervaren
U moet nu duidelijk het verschil hebben begrepen tussen prestatietests en belastingtests. U kunt de onderstaande tabel met samenvatting raadplegen om te zien hoe prestatie- en belastingtests verschillende doelstellingen, te bestuderen scope-attributen en te ontdekken problemen hebben.
Q # 2) Is het een oneerlijke test om stresstests uit te voeren op hetzelfde moment als belastingtests?
Antwoord: Dit is ook een veel voorkomende vraag in veel interviews met softwaretests en certificeringsexamens, aangezien het oneerlijk is om tegelijkertijd stresstests en belastingtests uit te voeren? Het antwoord hierop is ‘Nee’. Het is niet oneerlijk om tegelijkertijd stresstests uit te voeren als u belastingtests doet.
Geen enkele test is ooit oneerlijk. Als tester is het jouw taak om problemen op te sporen. De realiteit van het testen van software kan echter van toepassing zijn en elk probleem dat u in deze situatie ontdekt, wordt mogelijk niet opgelost.
V # 3) Is hersteltesten een onderdeel van prestatietesten?
Antwoord: Ja, hersteltests worden gecategoriseerd onder prestatietests en worden soms ook uitgevoerd met belastingtests. In herstel testen , wordt toegang gegeven tot hoe goed een applicatie kan herstellen van fouten, crashes, hardwarestoringen en andere soortgelijke problemen.
Bij deze activiteit wordt de software gedwongen te falen en vervolgens wordt gecontroleerd of deze correct kan herstellen. Bijvoorbeeld, het systeem plotseling opnieuw opstarten wanneer een toepassing wordt uitgevoerd en vervolgens de gegevensintegriteit van de toepassing verifiëren.
V # 4) Is voor prestatietests codering vereist?
Antwoord: Prestatietests vereisen niet dat u het geavanceerde coderingsniveau kent. Het hebben van een fundamentele kennis van programmeren is echter een bijkomend voordeel.
Bijvoorbeeld, als u JMeter gebruikt, is het goed voor u om de grondbeginselen van Java te kennen. Het kan u helpen bij het debuggen van bepaalde dingen en u kunt indien nodig ook uw eigen script schrijven.
V # 5) Wat is spike-testen in prestatietesten?
Antwoord: Bij piektesten wordt de belasting abrupt verhoogd of verlaagd door een groot aantal gebruikers en later wordt het systeemgedrag waargenomen. Spike-tests worden voornamelijk gedaan om te controleren of het systeem plotselinge veranderingen in de belasting aankan.
Verschil tussen belasting- en stresstests
Laten we, om samen te vatten, de belangrijkste verschillen tussen belastingtests, stresstests en prestatietests in de onderstaande tabel bekijken:
Prestatietests | Laadtesten | Stress testen | |
---|---|---|---|
Domein | Superset van belasting- en stresstests | Een subset van prestatietests. | Een subset van prestatietests. |
Reikwijdte | Zeer brede reikwijdte. Omvat - belastingtests, stresstests, capaciteitstests, volumetests, duurtests, piektests, schaalbaarheidstests en betrouwbaarheidstests, enz. | Smallere reikwijdte in vergelijking met prestatietests. Omvat volumetesten en duurtesten. | Smallere reikwijdte in vergelijking met prestatietests. Inclusief soak-testen en spike-testen. |
Groot doel | Om de benchmark en normen voor de applicatie te bepalen. | Om de bovengrens van het systeem te bepalen, stelt u de SLA van de app in en kijkt u hoe het systeem omgaat met zware belastingvolumes. | Om te bepalen hoe het systeem zich gedraagt onder zware belasting en hoe het herstelt van een storing. Kortom, om uw app voor te bereiden op de onverwachte verkeerspiek. |
Laadlimiet | Zowel - onder als boven de drempel van een pauze. | Tot de drempel van pauze | Boven de pauze |
Attributen bestudeerd | Resourcegebruik, betrouwbaarheid, schaalbaarheid, resourcegebruik, responstijd, doorvoer, snelheid, etc. | piekprestaties, serverdoorvoer, reactietijd onder verschillende belastingsniveaus (onder de pauze-drempel), adequaatheid van de H / W-omgeving, het aantal gebruikersapps dat aankan, vereisten voor taakverdeling, enz. | Stabiliteit buiten de bandbreedtecapaciteit, responstijd (boven de pauze-drempel), enz. |
Problemen die door dit testtype zijn geïdentificeerd | Alle prestatiebugs inclusief runtime bloat, de ruimte voor optimalisatie, problemen met betrekking tot snelheid, latentie, doorvoer, etc. In principe - alles wat met prestatie te maken heeft! | Load balancing-problemen, bandbreedteproblemen, systeemcapaciteitsproblemen, slechte responstijd, doorvoerproblemen, enz. | Beveiligingslekken met overbelasting, problemen met gegevensbeschadiging bij overbelasting, traagheid, geheugenlekken, enz. |
Verschil tussen belasting-, stress- en volumetesten
We weten inmiddels al van de belasting- en stresstests en de verschillen tussen beide. Laten we nu eens kijken wat volumetests zijn en hoe het verschilt van belastingtests en stresstests.
Volumetests zijn ook een soort prestatietests die zich voornamelijk op de database richten.
Bij volumetests wordt gecontroleerd hoe het systeem zich gedraagt ten opzichte van een bepaald datavolume. De databases zitten dus vol met hun maximale capaciteit en hun prestatieniveaus, zoals responstijd en serverdoorvoer, worden gecontroleerd.
Om het heel eenvoudig te houden, wordt het verschil tussen belasting-, stress- en volumetesten hieronder weergegeven:
Volume testen | Laadtesten | Stress testen |
---|---|---|
Een enorme hoeveelheid gegevens | Een enorm aantal gebruikers | Te veel gebruikers, te veel gegevens, waardoor het systeem vastloopt. |
Gevolgtrekking
In deze tutorial hebben we door middel van voorbeelden gezien en begrepen hoe prestatietests, belastingtests en stresstests van elkaar verschillen en wat de reikwijdte is van elk testtype.
We hebben ook kort gekeken naar veel categorieën onder prestatietests, zoals spike-tests, hersteltests, volumetests, enz. En begrepen hoe elk van deze van elkaar verschilt.
We hopen dat deze tutorial u enorm heeft geholpen om het praktische verschil tussen prestatie-, belasting- en stresstests te begrijpen.
Bekijk onze aanstaande tutorial voor meer informatie over functionele tests versus prestatietests.
Bezoek hier voor een complete serie tutorials over prestatietests
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- Een complete gids voor prestatietests met voorbeelden
- Gids voor stresstests voor beginners
- Load Testing Complete Guide voor beginners
- Webapplicatie laden, stress en prestatie testen met behulp van WAPT
- Laadtests met HP LoadRunner-zelfstudies
- Cloud-prestatietests: cloudgebaseerde serviceproviders voor belastingtests
- Functioneel testen versus prestatietesten: moet het tegelijkertijd worden uitgevoerd?
- Laadtesten met LoadUI - een gratis en open source loadtesttool