Stabilitätstests im Softwaretest

⚡ Intelligente Zusammenfassung

Stabilitätstests prüfen, ob eine Anwendung auch unter veränderten Bedingungen zuverlässig funktioniert und nicht nur unter einer festen Last. Sie decken Abstürze, Ressourcenengpässe und Leistungseinbußen auf, die bei einem kurzen Funktionstest nicht auftreten.

  • ???? ️ Hauptzweck: Bestätigen Sie, dass das System auch unter variierender Last und im Langzeitbetrieb zuverlässig bleibt.
  • ⚠️ Risiko vermieden: Ungetestete Systeme versagen im Produktivbetrieb unter Bedingungen, die niemand geprobt hat.
  • 📊 primär Signals: CPU-, Speicher-, Festplatten- und Thread-Anzahl tracüber die gesamte Dauer geked.
  • 🔄 Nicht funktionsfähig: Es misst das Verhalten unter Stress und nicht die Korrektheit von Merkmalen.
  • 🧪 Testdesign: Die Testfälle zielen auf anhaltende CPU-Last, Speicherauslastung und wiederholte Transaktionen ab.
  • 📈 Reporting: Trenddiagramme sind aussagekräftiger als Einzelmessungen, denn die Abweichung ist der eigentliche Fehler.

Stabilitätstests im Softwaretest

Was ist ein Stabilitätstest?

Stabilitätsprüfung ist eine Art nichtfunktionaler Softwaretest, der durchgeführt wird, um die Effizienz und die Fähigkeit einer Softwareanwendung zu messen, über einen langen Zeitraum kontinuierlich zu funktionieren. Der Zweck des Stabilitätstests besteht darin, zu überprüfen, ob die Softwareanwendung zu irgendeinem Zeitpunkt abstürzt oder bei normaler Nutzung ausfällt, wenn sie ihren vollen Nutzungsumfang ausübt.

Stabilitätstests werden durchgeführt, um die Effizienz eines entwickelten Produkts über die normale Betriebskapazität hinaus zu prüfen, häufig bis zu einem Bruchpunkt. Dabei kommt der Fehlerbehandlung, der Softwarezuverlässigkeit, der Robustheit und der Skalierbarkeit eines Produkts unter hoher Belastung eine größere Bedeutung zu als der Prüfung des Systemverhaltens unter normalen Umständen.

Stabilitätstests bewerten Stabilitätsprobleme. Diese Tests dienen in erster Linie dazu, die Softwarekomponente maximal zu belasten. Es handelt sich um eine nicht-funktionale Technik.

Stabilitätsprüfung
Stabilitätsprüfung

Die Stabilitätsprüfung wird auch als Belastungs- oder Belastungsprüfung bezeichnet Ausdauertest.

Risiken, wenn das zu testende System keinem Stabilitätstest unterzogen wurde

Bei einer zu testenden Anwendung, bei der eine große Anzahl von Benutzern eingeführt wird und Anwendungen monatelang ohne Neustart ausgeführt werden müssen, ist es wahrscheinlich, dass eine Reihe von Problemen auftreten:

Dem möglichen Fehler kann begegnet werden,

  • das System wird langsamer
  • Das System stößt auf Funktionsprobleme
  • Das System zeigt verkabeltes Verhalten
  • das System stürzt komplett ab

Im Software-Engineering, Stabilitätsprüfung In der Regel wird das System mit intensiven Benutzern (virtuell) getestet und die Leistungsparameter gemessen, um zu überprüfen, ob das System die erwartete Belastung bewältigen kann.

Warum Stabilitätstests durchführen?

Diese Art von Tests hilft Benutzern zu verstehen, wie das System in realen Situationen funktioniert.

Daher können Sie mit Stabilitätstests überprüfen,

  • Schenken Sie Vertrauen in die Stabilität Ihres zu testenden Systems.
  • Stellen Sie sicher, dass Ihr System mit großen Programmen umgehen kann.
  • Überwachen Sie die Wirksamkeit Ihres Systems.
  • Testen Sie die Systemstabilität unter Stress.

Es spielt eine wichtige Rolle in der Produktentwicklung, da es verwendet wird, um die Einschränkungen eines zu testenden Softwareprodukts vor seiner Veröffentlichung oder die Bereiche mit weiteren Verbesserungen zu ermitteln, bevor das Produkt in Betrieb geht oder in Produktion geht.

Ein sehr häufiges Beispiel für eine Stabilitätstesttechnik ist

Online SHopfenping Portals: Stabilitätstests prüfen, wie sich die Website verhält, wenn –

  • Hohe Datenmenge, die zu Spitzenzeiten eingegeben wird
  • Anzahl der Treffer zu einem bestimmten Zeitpunkt
  • Gleichzeitig Problem beim Laden der Seite
  • Verhalten des Systems
  • Die Reaktionsfähigkeit des Systems und vieles mehr fallen darunter Stabilitätsprüfung

Ein weiteres Beispiel

A CPU Der Test ist eine beliebte Form des Stabilitätstests Performance Testing Technik. Dieser Test prüft die Prozessorstabilität und überwacht auch seine Leistung, wenn die Arbeitslast des Prozessors steigt.

So führen Sie Stabilitätstests durch

  • Um den Umfang und das Ziel des Tests zu bestimmen, müssen wir sicherstellen, dass der/die Anwendungsserver während der Ausführung des Lasttests nicht abstürzen.
  • Um die geschäftlichen Probleme zu ermitteln, überprüfen Sie die Systemleistung und -auslastung aus Sicht des Endbenutzers.
  • Um die verschiedenen Verantwortlichkeiten und Rollen zuzuweisen, z. B. Testplan erstellen, Testfall Design, Testfallüberprüfung, Testausführung usw.
  • Um sicherzustellen, dass die Testergebnisse innerhalb der angegebenen Zeit geliefert werden
  • Um sicherzustellen, richtig Load Testing Das Werkzeug- und Erfahrungsteam ist dafür anwesend.
  • Um das Risiko und die Kosten zu messen, sind Tests erforderlich. Dadurch werden die Kosten jeder Ausführung in Bezug auf CPU-Auslastung und Speicher bestimmt.
  • Bestimmen Sie die Defekt tracKönig und Berichterstattung und ihre richtige Karteping mit den Anforderungen.

Testfall für Stabilitätstests für die CPU-Leistung

  • Zur Überprüfung der Obergrenze des Systems.
  • Wie das System abstürzt oder wiederhergestellt wird.
  • Die Gesamtzahl der pro Anfrage abgeschlossenen Transaktionen.
  • Ob die Transaktionsreaktion stabil bleibt oder im Laufe der Zeit zunimmt.
  • Wie sich das System unter hoher Last verhält.
  • Seine Reaktion und sein Verhalten unter hoher Belastung.

Prüfberichte zur Stabilitätsprüfung

Während der Testausführung werden verschiedene Statistiken gesammelt und gemessen; diese Zahlen werden analysiert, um einen Bericht zu erstellen und mögliche Leistungsprobleme zu identifizieren.

Beispiele für im Test erfasste Statistiken sind:

  • Reaktionszeiten bei Transaktionen: Die durchschnittliche Zeit, die für die Durchführung von Transaktionen während des Tests benötigt wird. Diese Statistik bewertet, ob die Leistung des Servers innerhalb der akzeptablen minimalen und maximalen Transaktionsleistungszeiträume liegt, die für das System definiert sind. Diese Informationen bewerten die Zeit, die für die Verarbeitung der Anfrage durch den Webserver benötigt und an den Anwendungsserver gesendet wird, der in In den meisten Fällen wird eine Anfrage an einen Datenbankserver gestellt.
  • Treffer pro Sekunde: Die Anzahl der Zugriffe auf den Server durch Benutzer. Mithilfe dieser Statistiken lässt sich die Anzahl der von Benutzern generierten Lasten im Verhältnis zur Anzahl der Treffer ermitteln.
  • Durchsatz: Der Durchsatz auf dem Webserver während des Tests, gemessen in Bytes. Unter Durchsatz versteht man die Datenmenge, die die Benutzer zu einem bestimmten Zeitpunkt vom Server empfangen haben. Diese Statistik hilft dabei, die Menge an Last zu bewerten, die Benutzer erzeugen.
  • Transaktion pro Sekunde: Dies ist die Gesamtzahl der abgeschlossenen Transaktionen (sowohl erfolgreich als auch fehlgeschlagen), die während eines Tests durchgeführt wurden. Diese Statistik hilft, die tatsächliche Transaktionslast auf dem System zu überprüfen.
  • ZENTRALPROZESSOR: Prozentuale CPU-Auslastung während eines Tests.
  • Erinnerung: Speichernutzung während eines Tests.
  • Scheibe: Nutzung des während eines Tests verbrauchten Speicherplatzes.

Grundlagen der Stabilitätsprüfung

Stabilitätsprüfung fällt unter Leistungstests – eine Technik, die durchgeführt wird, um einige Qualitätsmerkmale von Software wie Stabilität, Zuverlässigkeit und Verfügbarkeit zu überprüfen.

Mithilfe dieser Tests wird ermittelt, wie schnell ein System oder Subsystem unter einer bestimmten Arbeitslast arbeitet.

Es gibt viele Arten von Leistungstests, und Stabilitätstests sind einer davon.

  • Belastbarkeitstest: Es handelt sich um einen Testtyp, der die Robustheit des Systems über die Systemkapazität hinaus prüft.
  • Spike-Test: Es wird verwendet, um das Verhalten eines Systems zu überprüfen, indem die Auslastung eines Systems sofort erhöht wird. Das Ziel besteht darin, zu prüfen, wann das System Leistungsprobleme haben wird oder ob es den Test erfolgreich abschließt.
  • Skalierbarkeitstest: Damit wird die Leistungsfähigkeit eines Systems geprüft. Wie effektiv wird sich das System bei steigenden Anforderungen, Größenänderungen und Volumenänderungen verhalten?
  • Volumentest: Es handelt sich um eine nicht funktionale Testtechnik, bei der die zu testende Software einer riesigen Datenmenge ausgesetzt wird und das Verhalten eines Systems entsprechend überprüft und verifiziert wird.
  • Belastungs- oder Stabilitätstests: (bereits oben besprochen)

Stabilitätstestwerkzeuge

Einige der Tools für Leistungstests sind:

  • WebLOAD
  • LoadRunner
  • Apache JMeter
  • NeoLaden Sie
  • CloudTest
  • Laststurm
  • LoadUI
  • WAPT
  • LoadImpact
  • Ladestation
  • Httperf
  • OpenSTA

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.

Häufig gestellte Fragen

Lasttests prüfen das Verhalten unter einer definierten Spitzenlast über einen kurzen Zeitraum. Stabilitätstests hingegen laufen unter verschiedenen Bedingungen über einen wesentlich längeren Zeitraum und suchen nach Verschlechterungen anstatt nach einem Bestehen oder Nichtbestehen eines Ziels.

Lange genug, damit sich schleichende Probleme bemerkbar machen, typischerweise 8 bis 72 Stunden. Bei weniger als einer Stunde tritt selten ein Speicherleck oder ein sich allmählich leerender Verbindungspool auf.

Ressourcenlecks, nicht geschlossene Datenbankverbindungen, unbegrenzte Caches und Threads, die zwar erstellt, aber nie freigegeben werden. Alle vier Faktoren scheinen bei einer kurzen Laufzeit unproblematisch, führen aber zu Problemen, sobald die Laufzeit länger genug ist.

Die KI-basierte Anomalieerkennung erkennt den Moment, in dem sich die Steigung einer Ressourcenkurve ändert. Dies geschieht viel früher als bei einem Alarm mit festem Schwellenwert und ist wesentlich zuverlässiger als das visuelle Ablesen von Diagrammen.

Ja. Modelle, die anhand vergangener Vorfälle und Codeänderungen trainiert wurden, heben die Module hervor, die am ehesten Ressourcen verbrauchen, sodass Teams gezielt langlaufende Tests durchführen können, bei denen sich dies auszahlt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: