Was ist Spike Testing beim Softwaretesten? Lernen Sie anhand von Beispielen

⚡ Intelligente Zusammenfassung

Beim Lastspitzentest wird eine Anwendung einer plötzlichen, extremen Lastspitze ausgesetzt und anschließend genauso abrupt wieder entfernt. Ziel ist es, herauszufinden, ob das System die Belastungsspitze übersteht und – ebenso wichtig – ob es sich danach erholt.

  • ⚡ Lastmuster: Ein starker Anstieg des Verkehrsaufkommens weit über dem Normalwert, der kurz anhielt und dann wieder abnahm.
  • 🎯 Hauptziel: Ermitteln, ob das System ausfällt und ob der Ausfall auf eine geordnete Weise erfolgt.
  • 🔄 Genesung ist wichtig: Die Wiederherstellung normaler Reaktionszeiten nach dem Anstieg ist genauso wichtig wie das Überleben des Anstiegs.
  • 📈 Realistische Auslöser: Blitzverkäufe, Ticketverkäufe, viraler Traffic und geplante Stapelverarbeitung.
  • ️ Werkzeug: JMeter LoadRunner modellieren beide einen sofortigen Anstieg anstelle eines allmählichen.
  • 📊 Was Sie sehen sollten: Fehlerrate, Warteschlangenlänge und die Zeit, die benötigt wird, um zum Ausgangszustand zurückzukehren.

Was ist Spike-Testing?

Was ist Spike-Test?

Spike-Test ist eine Art Softwaretest, bei dem eine Softwareanwendung mit extremen Zu- und Abnahmen der Verkehrslast getestet wird. Der Hauptzweck von Spike-Tests besteht darin, das Verhalten der Softwareanwendung bei plötzlichem Anstieg oder Abfall der Benutzerlast zu bewerten und die Wiederherstellungszeit nach einem Anstieg der Benutzerlast zu bestimmen.

Spike Testing wird durchgeführt, um die Schwächen von Softwareanwendungen abzuschätzen.

Spike-Test
Spike-Test

Ziele des Spike-Tests

Das Ziel des Spike-Tests besteht darin, zu sehen, wie das System auf unerwarteten Anstieg und Abfall der Benutzerlast reagiert. In der Softwareentwicklung helfen Spike-Tests dabei, festzustellen, ob sich die Systemleistung bei einer plötzlichen hohen Auslastung verschlechtert.

Ein weiteres Ziel des Spike-Testings ist die Bestimmung der Erholungszeit. Zwischen zwei aufeinanderfolgenden Spitzen der Benutzerlast benötigt das System einige Zeit, um sich zu stabilisieren. Diese Erholungszeit sollte so gering wie möglich sein.

So führen Sie Spike-Tests durch

Hier sind die einfachen Schritte zur Durchführung von Spike-Tests:

Schritt 1) ​​Bestimmen Sie die Tragfähigkeit

Bestimmen Sie die maximale Benutzerlastkapazität Ihrer Softwareanwendung.

Schritt 2) Bereiten Sie die Testumgebung vor

Bereiten Sie die Testumgebung vor und konfigurieren Sie sie für die Aufzeichnung von Leistungsparametern.

Schritt 3) Definieren Sie die erwartete Last

Wenden Sie die erwartete maximale Last auf Ihre Softwareanwendung an, indem Sie a verwenden Leistungstesttool Ihrer Wahl.

Schritt 4) Erhöhen Sie die Last

Erhöhen Sie die Belastung des Systems schnell für einen festgelegten Zeitraum.

Schritt 5) Stellen Sie die Last wieder auf „Normal“ ein

Reduzieren Sie die Belastung schrittweise wieder auf das ursprüngliche Niveau.

Schritt 6) Analysieren Sie die Ergebnisse

Analysieren Sie die Leistungsdiagramme und Kennzahlen wie Fehler, benötigte Zeit, virtuelle Benutzer usw.

Beispiele für Spike-Testszenarien

  • Wenn ein E-Commerce-Shop Sonderangebote mit tollen Rabatten einführt, beispielsweise am Black Friday.
  • Wenn eine Webanwendung ein Lieblingsfernsehprogramm live streamt.
  • Wenn ein Flash-Sale auf einer Daily-Deal-Site stattfindet.
  • Wenn ein bestimmter Inhalt einer Website im Internet viral geht.
  • Ein neues System wird für die Produktion freigegeben und mehrere Benutzer möchten auf das System zugreifen.
  • Ein Stromausfall kann dazu führen, dass alle Benutzer keinen Zugriff mehr auf ein System haben. Nachdem das Problem behoben wurde, melden sich alle Benutzer gleichzeitig wieder am System an.

Wiederherstellungsszenarien bei Spitzenlasten

Drei Hauptwiederherstellungsszenarien, die zum Schutz vor Spikes konfiguriert werden können, sind:

  1. Nutzen Sie Cloud-Plattformen wie AWS, Azure die Serverkapazität dynamisch entsprechend der Benutzerlast zu erhöhen
  2. Erlauben Sie einigen Benutzern keinen Zugriff auf die Anwendung, damit das System nicht stark belastet wird. Dadurch wird verhindert, dass Personen über der maximal ausgelegten Belastung in das System eindringen. Dadurch wird das System vor drohender Überlastung geschützt.
  3. Der Site-Administrator ermöglicht Benutzern den Beitritt zum System. Allerdings mit der Warnung, dass sie aufgrund der hohen Belastung möglicherweise langsam reagieren. Dies kann zu einer Beeinträchtigung der Systemleistung führen. Der Benutzer kann jedoch mit dem System arbeiten.

Vor- und Nachteile von Spike-Tests

Nachfolgend sind die Vor- und Nachteile des Spike-Tests aufgeführt:

Vorteile Nachteile
Die Leistungsfähigkeit der Software muss unbedingt aufrechterhalten werden. Wenn jedoch die Auslastung eines Systems extrem ansteigt, besteht eine hohe Wahrscheinlichkeit, dass Probleme auftreten. Spike Testing hilft beim Testen eines solchen Szenarios. Der einzige Nachteil von Spike Testing besteht darin, dass es sich um einen teuren Testprozess handelt. Daher mussten spezielle Testbedingungen eingerichtet werden. Über einen längeren Zeitraum wird sich jedoch sicherlich ein positiver ROI ergeben.
Bei der Standardtestmethode werden die schlimmsten bis hin zur Worst-Case-Szenarien möglicherweise nicht berücksichtigt. Sie zu ignorieren bedeutet jedoch nicht, dass sie niemals auftreten werden. Daher sollte jede Software auf solche Möglichkeiten vorbereitet sein. Ein solches Worst-Case-Szenario ist die Belastung, die mithilfe von Spike-Tests beurteilt und minimiert werden kann.  

Spike-Testwerkzeuge

1) JMeter

Das Apache JMeter ist ein Java-Open-Source-Spike-Testtool. Es wurde speziell zum Laden des Funktionstestverhaltens und zum Messen der Leistung entwickelt. Mit diesem Leistungstesttool kann die Leistung von Webanwendungen oder einer Vielzahl von Diensten analysiert und gemessen werden. Heutzutage wird es häufig für Funktionstests und Datenbankservertests verwendet.

2) LoadRunner

LoadRunner ist ein Lasttest-Tool für Windows und Linux, das Spike-Tests von Web- und anderen Apps ermöglicht. Es hilft, die Leistung und das Ergebnis der Anwendung auch unter hoher Belastung zu bestimmen.

Wie dieser Test in die Familie der Leistungstests passt

Leistungsprüfung ist ein Oberbegriff. Die folgenden Varianten unterscheiden sich lediglich in der Form der aufgebrachten Last und der Dauer ihrer Einwirkung, weshalb sie so oft miteinander verwechselt werden.

Testtyp Lastmuster Fragen, die es beantwortet
Lastprüfung Erwartete Spitzenlast, kurze Dauer Erreicht das System seine Zielvorgaben auch bei normalem Spitzenverkehr?
Belastbarkeitstest Die Kapazität wurde bis zum Ausfall überschritten. Wo geht es kaputt, und scheitert es auf würdevolle Weise?
Spike-Test Plötzlicher extremer Anstieg, dann Rückzug Übersteht es einen Verkehrsunfall und kann sich davon erholen?
Dauertest Normale Last über viele Stunden gehalten Verschlechtert sich die Leistung im Laufe der Zeit?
Soak-Test Dauerhafte Belastung über einen längeren Zeitraum Gibt es Speicherlecks oder Ressourcenerschöpfung?
Stabilitätstests Unterschiedliche Belastung unter verschiedenen Bedingungen Bleibt das System auch bei sich ändernden Bedingungen zuverlässig?
Volumentest Normale Benutzer, sehr großes Datenvolumen Kommt es auch mit wachsender Datenbank zurecht?

Dauer- und Einweichtests werden häufig synonym verwendet. Im allgemeinen Sprachgebrauch bedeutet das: Beide Tests halten einer anhaltenden Last über einen längeren Zeitraum stand. Wo Teams zwischen ihnen unterscheiden, konzentriert sich der Ausdauertest darauf, ob die Antwortzeiten ansteigen, während der Dauertest den Ressourcenverbrauch wie Speicher, Dateihandles und Verbindungspools untersucht. Die Durchführung eines Tests liefert in der Regel die Ergebnisse für beide.

Wichtige Kennzahlen, die während des Tests erfasst werden sollten

Ein Performance-Test ist nur so gut wie die Daten, die Sie während der Ausführung aufzeichnen. Erfassen Sie diese sechs Werte sowohl serverseitig als auch clientseitig und vergleichen Sie sie mit den Referenzwerten, anstatt sich auf Ihr Bauchgefühl zu verlassen.

Metrisch Was es dir sagt Warnschild
Durchschnittliche Reaktionszeit Typische Benutzererfahrung Jegliche Aufwärtsdrift über den Lauf
95. Perzentil der Reaktionszeit Die Erfahrungen der langsamsten Nutzer Weit über dem Durchschnitt, was auf Unbeständigkeit hindeutet.
Durchsatz Anfragen pro Sekunde verarbeitet Fallen bei gleichbleibender Last
Fehlerrate Anteil fehlgeschlagener oder abgelaufener Anfragen Jeder Anstieg über den vereinbarten Schwellenwert hinaus
CPU- und Speicherauslastung Serverressourcen-Spielraum Eine Erinnerung, die aufsteigt und nie zurückkehrt
Datenbankverbindungen und Threads Poolerschöpfung Zählungen, die ohne Freisetzung stetig ansteigen

Lesen Sie den Durchschnitt und das Perzentil zusammen. Ein Durchschnittswert von 800 ms mit einem 95. Perzentil von 900 ms beschreibt ein stabiles System. Derselbe Durchschnittswert mit einem 95. Perzentil von 9 Sekunden bedeutet hingegen, dass einer von zwanzig Nutzern Probleme hat und der Durchschnittswert dies verschleiert.

Achten Sie auf die Form, nicht nur auf den Wert. Bei jedem Langzeittest ist eine flache Ressourcenkurve ein positives Ergebnis und eine steigende Kurve ein Hinweis auf ein Leck, selbst wenn der absolute Wert zum Zeitpunkt des Testendes noch deutlich innerhalb des Grenzwerts liegt.

Spike-Tests: Wichtigste Erkenntnisse

  • Softwaretest ist eine Art Softwaretest, bei dem eine Softwareanwendung mit extremen Zu- und Abnahmen der Verkehrslast getestet wird.
  • Der richtige Ansatz für Spike-Tests besteht darin, die Anzahl der Benutzer unerwartet zu erhöhen und anschließend die Last sofort zu verringern.
  • Die unerwartete Belastung ist das Hauptmerkmal des Deals.
  • Beispiele für reale Spike-Testszenarien sind: Wenn ein E-Commerce-Shop Sonderangebote mit tollen Rabatten einführt, beispielsweise am Black Friday. Alternativ, wenn eine Webanwendung ein Lieblingsfernsehprogramm live streamt.
  • JMeter ist ein solches nützliches Tool zur Durchführung von Spike-Tests.

Häufig gestellte Fragen

Bei Belastungstests wird die Last schrittweise erhöht, bis das System versagt, um die Belastungsgrenze zu ermitteln. Bei Impulstests wird die extreme Last schlagartig angewendet, um festzustellen, ob ein plötzlicher Stoß zu einem Ausfall führt, der bei einer schrittweisen Belastungssteigerung nicht auftreten würde.

Ein System, das zwar weiterhin verfügbar ist, aber nie wieder normale Reaktionszeiten erreicht, hat die Nutzer, die nach dem Spitzenwert eintreffen, dennoch im Stich gelassen. Die Wiederherstellungszeit ist die Kennzahl, die die tatsächlichen Auswirkungen auf das Geschäft widerspiegelt.

Orientieren Sie sich an einem realen Ereignis statt an einer gerundeten Zahl. Der historische Traffic aus einem früheren Sale oder einer Produkteinführung, multipliziert mit dem seitdem erwarteten Wachstum, ergibt ein realistisches Ziel.

Mithilfe von KI-Modellen, die auf Basis historischer Verkehrsdaten, Marketingkalender und externer Signale trainiert wurden, wird vorhergesagt, wann es zu Lastspitzen kommen wird. Dadurch können die Teams die Infrastruktur im Voraus skalieren, anstatt erst im Nachhinein reagieren zu müssen.

Ja. KI-Tools können Spitzenprofile aus Produktionszugriffsprotokollen ableiten und so den wahren Verlauf vergangener Spitzenwerte reproduzieren, anstatt eine künstliche Sprungänderung darzustellen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: