Ist es sinnvoll, keine Bestanden / Nicht Bestanden-Kriterien für einen Stresstest zu haben?

10

Aus Gründen der Klarheit erhöht der von mir geschriebene Stresstest die Belastung des Systems stetig, bis es eine Bruchstelle erreicht. Es läuft theoretisch auf unbestimmte Zeit, aber da die Systemressourcen endlich sind, wird erwartet, dass es nach einem bestimmten Zeitpunkt ausfällt. Ich habe eine erwartete Last für das System, aber diese wird separat in einem Lasttest getestet. Der Zweck dieses Stresstests besteht darin, herauszufinden, wie viel Last ich auf das System ausüben kann, bevor ich die Skalierung implementieren muss.


Ich bin gerade dabei, einen Stresstest für ein System zu schreiben, und ich frage mich, ob es sinnvoll ist, Pass / Fail-Kriterien zu haben. Durch die Art des Tests steigt die Last stetig an, bis sie eine Bruchstelle erreicht (dh sie fällt aus ). Ich weiß natürlich vorher nicht, was diese Bruchstelle ist, und daher keine Erwartung an die Last, die das System bewältigen kann (theoretisch sowieso).

Jetzt habe ich andere Leistungstests, um das System unter einer erwarteten Last usw. zu testen, für die ich leicht Bestanden / Nicht Bestanden-Kriterien festlegen kann, und ich könnte diese Kriterien als Grundlage für meinen Stresstest verwenden. Mit anderen Worten, ich könnte eine Mindestgrundlinie für das Erreichen meines Stresstests festlegen, bin mir aber nicht sicher, ob dies das Richtige ist (dupliziert dies meinen anderen Test?).

Ich hoffe, jemand mit mehr Erfahrung in Leistungstests kann mir hier helfen. Welche Bestanden / Nicht Bestanden-Kriterien haben andere bei Stresstests verwendet (falls vorhanden)?

Alex
quelle
1
Wenn Sie kein Bestanden / Nicht Bestanden haben, warum machen Sie den Test?
RemcoGerlich
@RemcoGerlich Also kann ich die Grenzen des Systems kennen? Dies wird bei der Kapazitätsplanung usw. helfen
Alex
Ich denke, bei der Kapazitätsplanung entscheiden Sie, welche Mindestlast Ihr System bewältigen muss (dann haben Sie ein Pass-Fail-Kriterium).
RemcoGerlich
@RemcoGerlich Vielleicht habe ich meine Begriffe durcheinander gebracht, aber im Grunde habe ich eine erwartete Belastung (die separat getestet wird), aber ich verwende diesen Stresstest, um zu bestimmen, an welchem ​​Punkt (dh Anzahl der Benutzer) ich muss Skalieren Sie die Infrastruktur. Es handelt sich um einen separaten Test, da Änderungen am System die Belastung des Systems ändern können, die bei einem Auslastungstest nicht sichtbar wäre.
Alex
@Alex, nein, du hast deine Bedingungen nicht durcheinander gebracht. Sie beschreiben genau einen Stresstest. Das Problem, das Sie haben, ist, dass mit Stresstests kein Bestehen / Nichtbestehen verbunden ist, sodass es nicht einfach mit "Unit-Testing" -Tools ausgeführt werden kann.
David Arno

Antworten:

10

In einem Stresstest besteht Ihre Aufgabe nicht darin, den Stress zu definieren, den das Subjekt aushalten sollte. Es geht darum, den Stress zu messen, den es braucht, bevor es versagt.

Mithilfe der Leistungskriterien können Sie definieren, was ein Spannungsfehler ist. Das Ergebnis eines Stresstests ist jedoch nicht bestanden / nicht bestanden. Es ist "nach 90 Stunden unter 100% Auslastung mit 50% beeinträchtigter Belüftung gescheitert".

candied_orange
quelle
eine Frage. Sollte der Stresstest einen Systemabsturz verursachen? Mit anderen Worten. Ist der Absturz das, was wir als "Misserfolg" betrachten?
Laiv
3
@laiv Der Stresstest sollte Stress verursachen. Und zeigen Sie, wie das Subjekt auf diesen Stress reagiert. Wenn es zu einem Systemabsturz kommt, sollte dies dokumentiert werden. Stresstests sollen Fehler verursachen und zeigen, was nötig ist, um sie zu verursachen. Ein Systemabsturz ist ein Fehler, vorausgesetzt, das abgestürzte System erfüllt nicht die Leistungsanforderungen. Sie tun es normalerweise.
candied_orange
1

Dies hängt von den Anforderungen ab. Wenn Ihre Anforderungen angeben, dass das erwartete Ergebnis für die App-Leistung X ist und Sie tatsächlich Y erhalten haben, ist dies ein Fehler.
Wenn Sie keine Anforderungen definiert haben, können Sie Ihr System belasten und Grenzdaten erfassen und diese Grenzwerte dann herausfinden und dokumentieren.

Thiago F. Peçanha
quelle
0

Sie können Ihren primären Stresstest problemlos aktualisieren, um auch eine QS-Pass / Fail-Überprüfung zu unterstützen, beispielsweise "X-Last erreichen / aufrechterhalten können, ohne zu brechen". Idealerweise mit konfigurierbarem X (z. B. für verschiedene Release-Zweige).

Das Ergebnis wäre, failwenn das System bricht, bevor die Last X erreicht, und passwenn es nicht bricht. Sie müssten nur aufhören, die Last zu erhöhen, sobald sie in einem "Sustain" -Szenario den X-Wert erreicht.

Meiner Meinung nach kann ein solcher automatisierter Test im Zusammenhang mit CI / CD sehr nützlich sein, insbesondere in Produktionszweigen.

Dan Cornilescu
quelle