Was ist STRESS-Test beim Softwaretest?
โก Intelligente Zusammenfassung
Bei einem Stresstest wird eine Anwendung รผber ihre normalen Betriebsgrenzen hinaus belastet, um den Bruchpunkt zu finden, zu bestรคtigen, dass Fehler ordnungsgemรคร behandelt werden, und nachzuweisen, dass sich das System nach dem Wegfall der extremen Last sauber erholt.
Was ist Stresstest?
Belastbarkeitstest Stresstests sind eine Art Softwaretest, der die Stabilitรคt und Zuverlรคssigkeit einer Softwareanwendung รผberprรผft. Ziel von Stresstests ist es, die Robustheit und Fehlerbehandlungsfรคhigkeit der Software unter extremen Lastbedingungen zu messen und sicherzustellen, dass sie in kritischen Situationen nicht abstรผrzt. Dabei werden die normalen Betriebspunkte gezielt รผberschritten und das Verhalten der Software unter extremen Bedingungen bewertet.
Beim Stresstest wird die zu testende Anwendung (AUT) kurzzeitig stark belastet, um ihre Belastbarkeit zu ermitteln. Der hรคufigste Anwendungsfall von Stresstests ist die Bestimmung der Belastungsgrenze, an der das System, die Software oder die Hardware ausfรคllt. Auรerdem wird geprรผft, ob das System nach รberschreiten dieser Grenze ein effektives Fehlermanagement aufweist.
In Software EngineeringStresstests werden oft zusammen mit AusdauertestsDie beiden Verfahren unterscheiden sich jedoch: Beim Stresstest wird eine ungewรถhnlich hohe Last in einem kurzen Moment angewendet, um den Bruchpunkt zu ermitteln, wรคhrend beim Dauertest (Einwirktest) eine moderate Last รผber Stunden gehalten wird, um eine allmรคhliche Verschlechterung aufzudecken.
Der untenstehende Screenshot zeigt, wie ein groรer Datenblock von einer Webseite kopiert wird.
Die zu testende Anwendung wird รผberlastet, indem 5 GB Daten von der Website kopiert und in Notepad eingefรผgt werden. Notepad reagiert nun nicht mehr wie erwartet und gibt die Fehlermeldung โKeine Rรผckmeldungโ aus, wie im nรคchsten Screenshot dargestellt.
Das gleiche Prinzip lรคsst sich direkt auf serverseitige Systeme รผbertragen.
Notwendigkeit von Stresstests
Betrachten Sie die folgenden Echtzeitbeispiele, in denen der Nutzen von Stresstests deutlich wird:
- Wรคhrend der Festivalzeit, ein Online-Shopping Die Website kann einen Anstieg des Datenverkehrs verzeichnen oder wenn ein Sonderangebot angekรผndigt wird.
- Wenn ein Blog in einer fรผhrenden Zeitung erwรคhnt wird, kommt es zu einem plรถtzlichen Anstieg des Traffics.
Um solche ungewรถhnlichen Verkehrsspitzen bewรคltigen zu kรถnnen, sind Stresstests unerlรคsslich. Wird diese plรถtzliche Verkehrsbelastung nicht bewรคltigt, kann dies zu Umsatzeinbuรen und Reputationsschรคden fรผhren.
Stresstests sind auch aus folgenden Grรผnden รคuรerst wertvoll:
- Es prรผft, ob das System auch unter anormalen Bedingungen funktioniert.
- Es bestรคtigt, dass eine angemessene Fehlermeldung angezeigt wird, wรคhrend das System unter Last steht.
- Ein Systemausfall unter extremen Bedingungen kรถnnte zu enormen Einnahmeverlusten fรผhren.
- Es ist besser, sich durch die Durchfรผhrung von Stresstests im Voraus auf extreme Bedingungen vorzubereiten.
Im nรคchsten Abschnitt wird dargelegt, was ein erfolgreicher Stresstest nachweisen muss.
Ziele des Stresstests
Ziel eines Stresstests ist die Analyse des Systemverhaltens nach einem Fehler. Fรผr einen erfolgreichen Stresstest muss das System unter Extrembedingungen eine aussagekrรคftige Fehlermeldung anzeigen.
Fรผr Stresstests werden mitunter groรe Datensรคtze verwendet, die bei einem Systemausfall verloren gehen kรถnnen. Tester sollten daher sicherstellen, dass sicherheitsrelevante Daten wรคhrend der Stresstests nicht verloren gehen.
Der Hauptzweck von Stresstests besteht darin, sicherzustellen, dass sich das System nach einem Ausfall erholt; diese Eigenschaft wird als Wiederherstellbarkeit bezeichnet. Wiederherstellungstests Anschlieรend รผberprรผft er den Restaurierungsprozess im Detail.
Lastprรผfung vs. Stressprรผfung
Beide Techniken gehรถren zu den Performance Testing Da sie Familienmitglieder sind, kรถnnen sie leicht verwechselt werden. Das folgende Diagramm veranschaulicht die beiden Lastprofile.
| Load Testing | Belastbarkeitstest |
|---|---|
| Load Testing testet das Systemverhalten unter normalen Arbeitslastbedingungen; es simuliert die tatsรคchlich zu erwartende Arbeitslast. | Bei einem Stresstest wird das Systemverhalten unter extremen Bedingungen geprรผft. Er wird so lange durchgefรผhrt, bis das System ausfรคllt. |
| Lasttests bringen das System nicht zum Absturz. | Beim Stresstest wird das System bewusst zum Zusammenbruch gebracht, indem es entweder mit Daten รผberflutet oder ihm Ressourcen entzogen werden. |
Zugehรถrige Profile umfassen Spike-Test (ein plรถtzlicher, kurzer Ausbruch), Volumentest (groรe Datenmengen statt vieler Benutzer) und Skalierbarkeitstests (Wachstumsspielraum).
Arten von Stresstests
Nachfolgend werden die verschiedenen Arten von Stresstests einzeln erlรคutert.
Verteiltes Stresstesting
In verteilten Client-Server-Systemen werden Tests vom Server aus auf allen Clients durchgefรผhrt. Die Aufgabe des Stressservers besteht darin, eine Reihe von Stresstests an alle Stressclients zu verteilen und diese durchzufรผhren. tracDer Server speichert den Status jedes Clients. Sobald ein Client den Server kontaktiert, speichert der Server den Namen des Clients und beginnt mit dem Senden von Testdaten. Die folgende Abbildung zeigt, wie der Stresstest-Server einige Clients erreicht, andere jedoch nicht.
Wรคhrenddessen senden die Client-Rechner ein Signal, einen sogenannten Heartbeat, um zu bestรคtigen, dass sie weiterhin mit dem Server verbunden sind. Empfรคngt der Server kein Signal von einem Client-Rechner, muss dieser zur Fehlerbehebung genauer untersucht werden. In der Abbildung kann der Server zwar mit zwei Clients (Client1 und Client2) eine Verbindung herstellen, aber er kann weder von Client3 noch von Client4 ein Signal senden oder empfangen.
Fรผr diese Stresstestszenarien ist ein Testlauf รผber Nacht die beste Option. Groรe Serverfarmen benรถtigen eine effizientere Methode, um festzustellen, welche Computer unter Belastung ausgefallen sind und untersucht werden mรผssen.
Anwendungsstresstest
Bei diesem Test liegt der Fokus auf der Suche nach Fehlern im Zusammenhang mit Datensperrungen und -blockierungen, Netzwerkproblemen und Leistungsengpรคssen in einer einzelnen Anwendung.
Transaktions-Stresstests
Es fรผhrt Stresstests an einer oder mehreren Transaktionen zwischen zwei oder mehr Anwendungen durch. Es dient der Feinabstimmung und Optimierung des Systems.
Systemischer Stresstest
Dies ist ein integrierter Stresstest, der auf mehreren Systemen auf demselben Server ausgefรผhrt werden kann. Er dient dazu, Fehler zu finden, bei denen eine Anwendung die Daten einer anderen Anwendung blockiert.
Exploratives Stresstesting
Dies ist eine Art Stresstest, der das System unter ungewรถhnlichen Parametern oder Bedingungen prรผft, die in der Realitรคt unwahrscheinlich sind. Er dient dazu, Fehler in unerwarteten Situationen aufzudecken, wie zum Beispiel:
- Eine groรe Anzahl von Benutzern hat sich gleichzeitig eingeloggt.
- Ein Virenscanner startet gleichzeitig auf allen Rechnern.
- Eine Datenbank geht offline, wรคhrend รผber eine Website auf sie zugegriffen wird.
- Eine groรe Datenmenge wird gleichzeitig in die Datenbank eingefรผgt.
Unabhรคngig davon, welche Variante zutrifft, bleibt die Ausfรผhrungsreihenfolge gleich.
Wie fรผhrt man Stresstests durch?
Der Stresstestprozess kann in 5 Hauptschritten durchgefรผhrt werden:
- Schritt 1) โโPlanung des Stresstests: Hier werden die Systemdaten erfasst, das System analysiert und die Ziele des Stresstests definiert.
- Schritt 2) Automatisierungsskripte erstellen: In dieser Phase erstellen Sie die Skripte zur Automatisierung der Stresstests und generieren die Testdaten fรผr die Stressszenarien.
- Schritt 3) Skriptausfรผhrung: In dieser Phase fรผhren Sie die Skripte zur Automatisierung der Stresstests aus und speichern die Ergebnisse.
- Schritt 4) Ergebnisanalyse: In dieser Phase analysieren Sie die Ergebnisse des Stresstests und identifizieren Engpรคsse.
- Schritt 5) Feinabstimmung und Optimierung: In dieser Phase nehmen Sie die Feinabstimmung des Systems vor, รคndern Konfigurationen und optimieren den Code mit dem Ziel, den gewรผnschten Benchmark zu erreichen.
Abschlieรend wird der gesamte Zyklus erneut ausgefรผhrt, um festzustellen, ob die Anpassungen die gewรผnschten Ergebnisse erzielt haben. Beispielsweise sind drei bis vier Durchlรคufe des Stresstests nicht ungewรถhnlich, bevor die Leistungsziele erreicht werden. Daher werden die Skripte รผblicherweise parallel dazu gepflegt. Regression Suite.
Empfohlene Werkzeuge fรผr Stresstests
Die vier unten aufgefรผhrten Tools decken die meisten Bedรผrfnisse ab, von Enterprise-Suiten bis hin zu einer kostenlosen Open-Source-Option.
LoadRunner
LoadRunner ist ein weit verbreitetes Lasttest-Tool, das jetzt von OpenText in den Professional-, Enterprise- und Cloud-Editionen nach dem Wechsel von HP zu Micro Focus zu OpenTextDie von LoadRunner erzeugten Lasttestergebnisse werden als Benchmark betrachtet.
JMeter
Apache JMeter ist ein Open-Source-Testtool. Es ist ein reines Java Die Anwendung dient der Durchfรผhrung von Belastungs- und Leistungstests und deckt Testarten wie Last-, Funktions- und Stresstests ab. Aktuelle Versionen 5.6.x Apache JMeter erfordern Java 8 oder spรคter, mit Java 17 empfohlen.
Stresstester
Dieses Tool bietet eine umfassende Analyse der Webanwendungsleistung, prรคsentiert die Ergebnisse grafisch und ist einfach zu bedienen. Es sind keine fortgeschrittenen Skriptsprachen erforderlich, wodurch der Return on Investment gering bleibt.tractativ fรผr kleinere Teams.
NeoLaden Sie
NeoLaden Sie, jetzt Teil der Tricentis Portfolio ist ein beliebtes Tool zum Testen von Webanwendungen. mobile AnwendungenEs kann Tausende von Benutzern simulieren, um die Anwendungsleistung unter Last zu bewerten und Antwortzeiten zu analysieren. Es unterstรผtzt auรerdem cloudintegrierte Leistungs-, Last- und Stresstests und ist gut skalierbar.
Weitere Optionen sind im Leitfaden aufgefรผhrt. Leistungstest-ToolsUnabhรคngig davon, welche Methode gewรคhlt wird, hat ihr Ergebnis nur im Hinblick auf die unten aufgefรผhrten Kennzahlen eine Aussagekraft.
Metriken fรผr Stresstests
Kennzahlen helfen bei der Bewertung der Systemleistung und werden รผblicherweise am Ende des Stresstests analysiert. Gรคngige Kennzahlen lassen sich in drei Gruppen einteilen.
Messung von Skalierbarkeit und Leistung
- Seiten pro Sekunde: Misst, wie viele Seiten pro Sekunde angefordert wurden.
- Durchsatz: Eine grundlegende Kennzahl โ die Grรถรe der Antwortdaten pro Sekunde.
- Runden: Die Anzahl der geplanten Testszenarien im Vergleich zur Anzahl der tatsรคchlichen Durchfรผhrungen durch einen Kunden.
Antwort der Anwendung
- Trefferzeit: Durchschnittliche Zeit zum Abrufen eines Bildes oder einer Seite.
- Zeit bis zum ersten Byte: Zeitaufwand fรผr die Rรผckgabe des ersten Bytes an Daten oder Informationen.
- Seitenzeit: Zeitaufwand zum Abrufen aller Informationen auf einer Seite.
Fehler
- Fehlgeschlagene Verbindungen: Anzahl der vom Client abgelehnten Verbindungsversuche (schwaches Signal).
- Fehlgeschlagene Runden: Anzahl der fehlgeschlagenen Runden.
- Fehlgeschlagene Treffer: Anzahl der fehlgeschlagenen Versuche des Systems (defekte Links oder nicht angezeigte Bilder).
Im Schlussteil werden die Situationen aufgefรผhrt, die am hรคufigsten einen Stresstest rechtfertigen.
Beispiele fรผr Stresstests
Stresstests sind immer dann angebracht, wenn ein Ereignis voraussichtlich den Datenverkehr deutlich รผber das tรคgliche Normalniveau hinaus ansteigen lรคsst:
- Eine E-Commerce-Website kรผndigt einen Festivalverkauf an.
- Eine Nachrichtenwebsite zum Zeitpunkt eines wichtigen Ereignisses.
- Ein Schulamt verรถffentlicht Prรผfungsergebnisse.
- Soziale Netzwerke, Blogs und mobile Apps wรคhrend eines viralen Moments.
Der Test รผberwacht in jedem Fall Ressourcen wie Speicher, Prozessor und Netzwerk, prรผft, ob unter Last die entsprechenden Fehlermeldungen angezeigt werden, und bestรคtigt, dass das System anschlieรend wieder normal funktioniert. Er passt in die Lebenszyklus von Softwaretests als nicht-funktionale รberprรผfung zusammen Systemtest und die weitere Gruppe von Arten von Softwaretests.

.png)
.png)

