Wat is STRESS-testen bij het testen van software?
⚡ Slimme samenvatting
Stresstesten drijven een applicatie tot voorbij de normale operationele limieten om het breekpunt te vinden, te bevestigen dat storingen op een gecontroleerde manier worden afgehandeld en aan te tonen dat het systeem zich netjes herstelt zodra de extreme belasting is verwijderd.
Wat is stresstesten?
Stress testen Stresstesten is een vorm van softwaretesten die de stabiliteit en betrouwbaarheid van een softwareapplicatie verifieert. Het doel van stresstesten is om de robuustheid en foutafhandeling van software te meten onder extreem zware belasting, en ervoor te zorgen dat de software niet crasht in kritieke situaties. Er wordt bewust getest buiten de normale werkingslimieten en geëvalueerd hoe de software zich gedraagt onder extreme omstandigheden.
Bij stresstesten wordt de te testen applicatie (AUT) gedurende een korte periode zwaar belast om te bepalen hoe goed deze bestand is tegen de belasting. Stresstesten worden met name gebruikt om de grens te bepalen waarop het systeem, de software of de hardware het begeeft. Ook wordt gecontroleerd of het systeem effectief fouten afhandelt zodra die grens is overschreden.
In Software EngineeringStresstesten worden vaak in dezelfde context genoemd. Uithoudingsvermogen testenMaar de twee verschillen: bij stresstesten wordt een abnormaal hoge belasting in een korte tijd toegepast om het breekpunt te vinden, terwijl bij duurtesten (stresstesten) een matige belasting urenlang wordt aangehouden om geleidelijke slijtage aan het licht te brengen.
De onderstaande schermafbeelding toont een groot blok gegevens dat van een webpagina wordt gekopieerd.
De te testen applicatie wordt zwaar belast wanneer 5 GB aan gegevens van de website wordt gekopieerd en in Kladblok wordt geplakt. Kladblok wordt nu overbelast en geeft een foutmelding "Reageert niet", precies zoals de volgende schermafbeelding laat zien.
Hetzelfde principe is direct toepasbaar op systemen aan de serverzijde.
Noodzaak van stresstests
Neem de volgende praktijkvoorbeelden in overweging, waarin het nut van stresstesten duidelijk naar voren komt:
- Tijdens de festivalperiode is er een online winkel.ping Een website kan een piek in het aantal bezoekers ervaren, of wanneer er een uitverkoop wordt aangekondigd.
- Wanneer een blog in een toonaangevende krant wordt vermeld, ervaart deze een plotselinge toename van het verkeer.
Het is van essentieel belang om stresstests uit te voeren om dergelijke abnormale verkeerspieken op te vangen. Het niet kunnen opvangen van deze plotselinge verkeersdrukte kan leiden tot omzetverlies en reputatieschade.
Stresstesten zijn om de volgende redenen ook zeer waardevol:
- Het controleert of het systeem ook onder abnormale omstandigheden functioneert.
- Dit bevestigt dat er een passende foutmelding wordt weergegeven wanneer het systeem zwaar belast wordt.
- Systeemuitval onder extreme omstandigheden kan leiden tot enorm omzetverlies.
- Het is beter om voorbereid te zijn op extreme omstandigheden door vooraf stresstests uit te voeren.
In het volgende gedeelte wordt uiteengezet wat een succesvolle stresstest moet aantonen.
Doelen van stresstesten
Het doel van stresstesten is het analyseren van het gedrag van een systeem na een storing. Om een stresstest succesvol te laten verlopen, moet een systeem een passende foutmelding weergeven onder extreme omstandigheden.
Voor stresstests worden soms enorme datasets gebruikt, en die gegevens kunnen verloren gaan als het systeem uitvalt. Testers moeten ervoor zorgen dat deze beveiligingsgerelateerde gegevens niet verloren gaan tijdens stresstests.
Het hoofddoel van stresstesten is ervoor te zorgen dat het systeem zich herstelt na een storing; deze eigenschap wordt herstelbaarheid genoemd. Herstel testen Vervolgens wordt de restauratieprocedure nauwkeurig gecontroleerd.
Belastingstest versus stresstest
Beide technieken behoren tot de Performance Testing familie, dus ze zijn gemakkelijk te verwarren. Het onderstaande diagram vergelijkt de twee belastingprofielen.
| load Testen | Stress testen |
|---|---|
| load Testen Het test het systeemgedrag onder normale werkbelastingomstandigheden; het simuleert de daadwerkelijke verwachte werkbelasting. | Stresstesten testen het gedrag van het systeem onder extreme omstandigheden en worden uitgevoerd totdat het systeem uitvalt. |
| Belastingstests beschadigen het systeem niet. | Stresstesten zijn er bewust op gericht het systeem te laten crashen door het te overladen met data of door het te weinig resources te geven. |
Gerelateerde profielen zijn onder andere: Spike-testen (een plotselinge, korte uitbarsting), Volume testen (grote hoeveelheden data in plaats van veel gebruikers) en Schaalbaarheid testen (groeiruimte).
Soorten stresstests
Hieronder worden de verschillende soorten stresstests één voor één uitgelegd.
Gedistribueerde stresstesten
In gedistribueerde client-server-systemen wordt het testen uitgevoerd op alle clients vanaf de server. De rol van de stresstestserver is om een reeks stresstests te distribueren naar alle clients die aan de stresstest deelnemen. tracDe server registreert de status van elke client. Nadat een client contact heeft opgenomen met de server, voegt de server de naam van de client toe en begint met het verzenden van testgegevens. De onderstaande afbeelding laat zien hoe de stresstestserver sommige clients wel bereikt en andere niet.
Ondertussen sturen clientmachines een signaal, ofwel een heartbeat, om te bevestigen dat ze nog steeds verbonden zijn met de server. Als de server geen signaal van een clientmachine ontvangt, moet die machine nader worden onderzocht om de fout op te sporen. In de afbeelding kan de server verbinding maken met 2 clients (Client1 en Client2), maar kan hij geen signaal verzenden of ontvangen van Client 3 en Client 4.
Een test die de hele nacht duurt, is de beste optie voor deze stresstestscenario's. Grote serverparken hebben een efficiëntere methode nodig om te bepalen welke computers storingen hebben vertoond tijdens de stresstest en nader onderzoek vereisen.
Toepassingsstresstesten
Deze tests richten zich op het opsporen van defecten met betrekking tot datavergrendeling en -blokkering, netwerkproblemen en prestatieknelpunten binnen één enkele applicatie.
Transactionele stresstests
Het voert stresstests uit op één of meer transacties tussen twee of meer applicaties. Het wordt gebruikt voor het verfijnen en optimaliseren van het systeem.
Systemische stresstests
Dit is een geïntegreerde stresstest die kan worden uitgevoerd op meerdere systemen die dezelfde server delen. Het wordt gebruikt om defecten te vinden waarbij de ene applicatie de gegevens van een andere applicatie blokkeert.
Exploratieve stresstests
Dit type stresstest wordt gebruikt om een systeem te testen met ongebruikelijke parameters of omstandigheden die zich in de praktijk waarschijnlijk niet zullen voordoen. Het wordt gebruikt om defecten te vinden in onverwachte situaties, zoals:
- Een groot aantal gebruikers was tegelijkertijd ingelogd.
- Een virusscanner start gelijktijdig op alle machines.
- Een database die offline gaat terwijl deze via een website wordt benaderd.
- Een grote hoeveelheid gegevens wordt gelijktijdig in de database ingevoerd.
Welke variant ook van toepassing is, de uitvoeringsvolgorde blijft hetzelfde.
Hoe stresstesten uitvoeren?
Het stresstestproces kan in 5 belangrijke stappen worden uitgevoerd:
- Stap 1) Het plannen van de stresstest: Hier verzamel je de systeemgegevens, analyseer je het systeem en definieer je de doelen van de stresstest.
- Stap 2) Automatiseringsscripts maken: In deze fase maak je de automatiseringsscripts voor de stresstests en genereer je de testgegevens voor de stressscenario's.
- Stap 3) Scriptuitvoering: In deze fase voert u de automatiseringsscripts voor de stresstest uit en slaat u de resultaten van de stresstest op.
- Stap 4) Resultatenanalyse: In deze fase analyseert u de resultaten van de stresstest en identificeert u knelpunten.
- Stap 5) Aanpassingen en optimalisatie: In deze fase verfijn je het systeem, wijzig je configuraties en optimaliseer je de code met als doel de gewenste benchmark te behalen.
Ten slotte doorloop je de hele cyclus opnieuw om te bepalen of de aanpassingen het gewenste resultaat hebben opgeleverd. Het is bijvoorbeeld niet ongebruikelijk dat er 3 tot 4 cycli van de stresstest nodig zijn voordat de prestatiedoelen zijn bereikt, dus de scripts worden normaal gesproken parallel aan de test uitgevoerd. regressie op.
Aanbevolen hulpmiddelen voor stresstesten
De vier onderstaande tools dekken de meeste behoeften, van bedrijfsbrede softwarepakketten tot een gratis open-source optie.
LoadRunner
LoadRunner is een veelgebruikt hulpmiddel voor belastingstests, dat nu wordt verkocht door OpenText in de Professional-, Enterprise- en Cloud-edities na de overstap van HP naar Micro Focus. OpenTextDe resultaten van de belastingstest die door LoadRunner worden gegenereerd, worden als referentiepunt gebruikt.
JMeter
Apache JMeter is een open-source testtool. Het is een pure Java Deze applicatie is bedoeld voor stress- en prestatietests en omvat testtypen zoals belasting-, functionele en stresstests. De huidige 5.6.x-releases van Apache JMeter vereisen Java 8 jaar of ouder, met Java 17 aanbevolen.
Stresstester
Deze tool biedt een uitgebreide analyse van de prestaties van webapplicaties, presenteert de resultaten in grafische vorm en is eenvoudig in gebruik. Er is geen geavanceerde scripting nodig, waardoor het rendement op de investering laag blijft.tracatief voor kleinere teams.
NeoLaden
NeoLaden, nu onderdeel van de Tricentis Portfolio is een populair hulpmiddel voor het testen van webapplicaties en websites. mobiele applicatiesHet kan duizenden gebruikers simuleren om de applicatieprestaties onder belasting te evalueren en de responstijden te analyseren. Het ondersteunt ook cloudgeïntegreerde prestatie-, belasting- en stresstests en is goed schaalbaar.
Meer opties staan vermeld in de handleiding. prestatietestinstrumentenWelke optie ook gekozen wordt, de uitkomst ervan is alleen relevant in relatie tot de onderstaande criteria.
Statistieken voor stresstests
Metrieken helpen bij het evalueren van de prestaties van een systeem en worden over het algemeen aan het einde van de stresstest bestudeerd. Veelgebruikte metrieken zijn onderverdeeld in drie groepen.
Het meten van schaalbaarheid en prestaties
- Pagina's per seconde: Meet hoeveel pagina's er per seconde worden opgevraagd.
- Doorvoer: Een basisparameter: de hoeveelheid responsdata per seconde.
- Rondes: Het aantal keren dat testscenario's zijn gepland versus het aantal keren dat een klant ze heeft uitgevoerd.
Sollicitatiereactie
- Treffertijd: Gemiddelde tijd om een afbeelding of pagina op te halen.
- Tijd tot eerste byte: De tijd die nodig is om de eerste byte aan gegevens of informatie terug te geven.
- Paginatijd: De tijd die nodig is om alle informatie op een pagina op te halen.
mislukkingen
- Mislukte verbindingen: Aantal mislukte verbindingen die door de client zijn geweigerd (zwak signaal).
- Mislukte rondes: Aantal mislukte rondes.
- Mislukte hits: Aantal mislukte pogingen van het systeem (kapotte links of niet-weergegeven afbeeldingen).
In het laatste gedeelte worden de situaties opgesomd die het vaakst een stresstest rechtvaardigen.
Voorbeelden van stresstesten
Stresstesten zijn nuttig wanneer verwacht wordt dat een evenement het verkeer aanzienlijk boven het dagelijkse basisniveau zal laten stijgen:
- Een e-commerce website die een festivaluitverkoop aankondigt.
- Een nieuwswebsite ten tijde van een belangrijke gebeurtenis.
- Een onderwijsraad die examenresultaten publiceert.
- Sociale netwerksites, blogs en mobiele apps tijdens een virale hype.
In elk geval controleert de test de resources zoals geheugen, processor en netwerk, kijkt of er onder belasting de juiste foutmeldingen verschijnen en bevestigt dat het systeem daarna weer normaal functioneert. Het past in de levenscyclus van softwaretests als een niet-functionele controle naast Systeem testen en de bredere reeks van software testtypen.

.png)
.png)

