Was ist Ausdauertest beim Softwaretest? (mit Beispiel)

โšก Intelligente Zusammenfassung

Bei einem Dauertest wird eine Anwendung รผber einen lรคngeren Zeitraum unter normaler, erwarteter Last ausgefรผhrt, um festzustellen, ob sich die Leistung im Laufe der Zeit verschlechtert. Dieser Test deckt Fehler auf, die bei einem einstรผndigen Lastlauf nicht erkennbar sind.

  • ๐Ÿ•’ Dauerlast: Der erwartete Produktionsverkehr hielt sich stunden- oder tagelang statt nur Minuten.
  • ๐Ÿ“‰ Schwerpunkt Degradation: Die Frage ist, ob die Reaktionszeiten tendenziell ansteigen, nicht ob das Ziel einmal erreicht wird.
  • ๐Ÿ’ง Gemeinsame Befunde: Speicherlecks, Erschรถpfung des Verbindungspools und unbegrenztes Wachstum von Protokolldateien oder Caches.
  • ๐Ÿ“Š รœberwachungsset: Speicher, CPU, Antwortzeit, Durchsatz und Datenbankverbindungen รผber den gesamten Testlauf.
  • ๏ธ Werkzeug: Standard-Laststeuerungstools steuern den Datenverkehr, wรคhrend APM-Tools die Ressourcenkurven aufzeichnen.
  • ๏ธ Abtausch: Die Ergebnisse sind zwar sehr wertvoll, aber langsam zu erzielen, was die Hรคufigkeit der Testdurchfรผhrung einschrรคnkt.

Was ist Ausdauertest?

Was ist ein Dauertest?

Ausdauertests ist eine nicht funktionale Art des Softwaretests, bei dem eine Software รผber einen lรคngeren Zeitraum hinweg unter hoher Last getestet wird, um das Verhalten der Softwareanwendung bei dauerhafter Nutzung zu bewerten. Der Hauptzweck von Dauertests besteht darin, sicherzustellen, dass die Anwendung in der Lage ist, lรคngere Lasten ohne Verschlechterung der Reaktionszeit zu bewรคltigen.

Diese Art von Tests wird in der letzten Phase des Leistungslaufzyklus durchgefรผhrt. Dauertests sind ein langwieriger Prozess und dauern manchmal sogar bis zu einem Jahr. Dies kann die Anwendung externer Lasten wie Internetverkehr oder Benutzeraktionen umfassen. Dadurch unterscheiden sich Dauertests Load Testing, das normalerweise nach ein paar Stunden endet.

Ausdauer bedeutet Kapazitรคt, daher kรถnnen Sie Ausdauertests mit anderen Worten als Kapazitรคtstests bezeichnen.

Ziele des Dauertests

  • Das Hauptziel von Dauertests besteht darin, nach Speicherlecks zu suchen.
  • Um herauszufinden, wie sich das System bei dauerhafter Nutzung verhรคlt.
  • Um sicherzustellen, dass die Systemreaktionszeit nach einem lรคngeren Zeitraum gleich oder besser als zu Beginn des Tests bleibt.
  • Um die Anzahl der Benutzer und/oder Transaktionen zu bestimmen, die ein bestimmtes System unterstรผtzt und Leistungsziele erreicht.
  • Um die zukรผnftige Belastung zu bewรคltigen, mรผssen wir verstehen, wie viele zusรคtzliche Ressourcen (wie Prozessorkapazitรคt, Festplattenkapazitรคt, Speichernutzung oder Netzwerkbandbreite) erforderlich sind, um die zukรผnftige Nutzung zu unterstรผtzen.
  • Dauertests werden im Allgemeinen entweder durch รœberlastung des Systems oder durch Reduzierung bestimmter Systemressourcen und Bewertung der Folgen durchgefรผhrt.
  • Dies wird durchgefรผhrt, um sicherzustellen, dass es nach einer relativ โ€žnormalenโ€œ Nutzungsdauer nicht zu Defekten oder Speicherlecks kommt.

Was bei Ausdauertests zu beachten ist

Ausdauertests

Im Dauerlauftest werden folgende Dinge geprรผft:

  • Testen Sie den Speicherverlustโ€“ Es werden Prรผfungen durchgefรผhrt, um zu รผberprรผfen, ob in der Anwendung ein Speicherverlust vorliegt, der zum Absturz des Systems oder Betriebssystems fรผhren kann
  • Testen Sie den Verbindungsabschluss zwischen den Schichten des Systems โ€“ Wenn die Verbindung zwischen den Schichten des Systems nicht erfolgreich geschlossen wird, kann es sein, dass einige oder alle Module des Systems blockiert werden.
  • Testen Sie, dass die Datenbankverbindung erfolgreich geschlossen wurdeโ€“ Wenn die Datenbankverbindung nicht erfolgreich geschlossen wird, kann dies zu einem Systemabsturz fรผhren
  • Reaktionszeit testen โ€“ Das System wird auf die Reaktionszeit des Systems getestet, da die Anwendung aufgrund der lรคngeren Nutzung des Systems weniger effizient wird.

Wie man Ausdauertests durchfรผhrt

Nachfolgend finden Sie den grundlegenden Testansatz fรผr den Ausdauertest

  • Testumgebung โ€“ Identifizieren Sie die fรผr den Dauertest erforderliche Hardware, Software und das Betriebssystem, weisen Sie Rollen und Verantwortlichkeiten innerhalb des Teams zu usw. Die Umgebung sollte vor der Testausfรผhrung bereit sein. Sie mรผssen auch die gรคngige ProduktionsgrรถรŸe der Datenbank und das jรคhrliche Wachstum abschรคtzen. Dies ist erforderlich, da Sie testen mรผssen, wie Ihre Anwendung nach einem, zwei oder fรผnf Jahren reagiert.
  • Erstellen des Testplans, Szenarien โ€“ Basierend auf der Art des Tests โ€“ manuell oder automatisiert oder eine Kombination aus beidem, Testfall Design, รœberprรผfungen und Ausfรผhrung sollten geplant werden. Tests zur Belastung des Systems, Bruchpunkttests usw. sollten ebenfalls Teil des Testplans sein. Tests zur Belastung des Systems bestimmen den Bruchpunkt in der Anwendung.
  • Testschรคtzung โ€“ Geben Sie eine Schรคtzung an, wie lange es dauern wird, bis die Testphase abgeschlossen ist. Die Analyse sollte auf der Grundlage der Anzahl der beteiligten Tester und der Anzahl der erforderlichen Testzyklen erfolgen.
  • Risikoanalyse - Analysieren Sie das Risiko und ergreifen Sie geeignete MaรŸnahmen zur Prรคvention. Priorisieren Sie Testfรคlle gemรครŸ dem Risikofaktor und identifizieren Sie die unten aufgefรผhrten Risiken und Probleme, die der Tester wรคhrend des Dauertests in Phasen einteilen kann.
  • Wird die Leistung im Laufe der Zeit konstant bleiben?
  • Gibt es weitere kleinere Probleme, die noch nicht erkannt wurden?
  • Gibt es externe Stรถrungen, die nicht behoben wurden?
  • Test Plan - Bestimmen Sie das Budget und die zu erbringenden Leistungen innerhalb des Zeitrahmens. Als Ausdauertests รœbt รผber einen kontinuierlichen Zeitraum hinweg eine enorme, aber natรผrliche Lastanordnung von Transaktionen auf das System/die Anwendung aus.

Beispiel fรผr einen Ausdauertest

Wรคhrend Belastbarkeitstest bringt das getestete System an seine Grenzen, Dauertest bringt die Anwendung an ihre Grenzen Zeit.

Die komplexesten Probleme โ€“ wie Speicherlecks, hohe Datenbankserverauslastung und Systemstillstand โ€“ treten beispielsweise auf, wenn Software รผber einen lรคngeren Zeitraum lรคuft. Verzichtet man auf Dauertests, ist die Wahrscheinlichkeit, solche Fehler vor der Bereitstellung zu erkennen, sehr gering.

Werkzeuge fรผr Dauertests

Vorteile von Dauertests

  • Es hilft bei der Bestimmung, wie die Arbeitslast das System unter Last bewรคltigen kann.
  • Stellt genaue Daten bereit, die Kunden zur Validierung oder Verbesserung ihrer Infrastrukturanforderungen verwenden kรถnnen.
  • Identifiziert Leistungsprobleme, die auftreten kรถnnen, nachdem ein System รผber einen lรคngeren Zeitraum auf hohem Niveau ausgefรผhrt wurde
  • Typische Probleme werden in kleineren gezielten Leistungstests identifiziert, wodurch sichergestellt wird, dass die Anwendung auch bei groรŸer Auslastung in sehr kurzer Zeit verfรผgbar bleibt.
  • Der Dauertest dient auch dazu, zu รผberprรผfen, ob es nach lรคngerer Ausfรผhrung zu LeistungseinbuรŸen kommt

Nachteile von Dauertests

  • Es ist oft schwer zu definieren, wie viel Stress es wert ist, angewendet zu werden.
  • Dauertests kรถnnen zu Anwendungs- und/oder Netzwerkfehlern fรผhren, die zu erheblichen Stรถrungen fรผhren kรถnnen Test Umgebung sind nicht isoliert.
  • Durch รœberlastung des Systems kann es zu dauerhaftem Datenverlust oder Datenbeschรคdigung kommen.
  • Die Ressourcenauslastung bleibt nach Beseitigung der Belastung sehr hoch.
  • Einige Anwendungskomponenten reagieren nicht.
  • Nicht behandelte Ausnahmen werden vom Endbenutzer beobachtet.

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.

Ausdauertests: Wichtigste Erkenntnisse

  • In Software Engineering, Ausdauertests sind eine Teilmenge der Belastungstests.
  • Dauertests sind ein langwieriger Prozess und dauern manchmal sogar bis zu einem Jahr
  • Zur Verifizierung werden Kontrollen durchgefรผhrt
  • Testen Sie den Speicherverlust
  • Reaktionszeit testen
  • Testen Sie die Datenbankverbindung usw.

Hรคufig gestellte Fragen

Lasttests รผberprรผfen, ob das System seine Zielvorgaben bei Spitzenlast รผber einen kurzen Zeitraum erfรผllt. Dauertests halten eine normale Last รผber mehrere Stunden aufrecht, um festzustellen, ob diese Zielvorgaben auch am Ende des Tests noch eingehalten werden.

Jeder anhaltende Aufwรคrtstrend bei Reaktionszeit oder Ressourcenverbrauch, selbst wenn kein Schwellenwert รผberschritten wird, ist problematisch. Der Fehler liegt in der Abweichung selbst, da sie im Produktionsprozess letztendlich den Grenzwert รผberschreiten wird.

Nachdem die Funktions- und Lasttests erfolgreich abgeschlossen wurden und ein eventuell entdecktes Leck noch behoben werden kann, sollte der Test erst am Abend vor der Verรถffentlichung durchgefรผhrt werden. Dadurch bleibt keine Zeit mehr, auf die Ergebnisse zu reagieren.

Die KI-basierte รœberwachung erkennt den Punkt, an dem sich der Trend einer Kennzahl รคndert, und korreliert ihn mit Bereitstellungen oder geplanten Jobs, wodurch aus stundenlangen Diagrammen ein konkreter Verdรคchtiger wird.

Es kann bei der Priorisierung helfen. Risikomodelle heben hervor, welche Releases anfรคlligen Code betreffen, sodass vollstรคndige Testlรคufe fรผr die ร„nderungen reserviert werden, die sie am wahrscheinlichsten benรถtigen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: