Lasttest (Computer)

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 21. April 2005 um 11:34 Uhr durch 193.22.163.2 (Diskussion) (Orthografische Korrektur). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Allgemeines

Unter einem Lasttest oder Performancetest versteht man einen (nicht funktionalen) Softwaretest, mit dem eine gewisse Last auf dem laufenden System erzeugt und das Verhalten desselbigen beobachtet und untersucht wird. Er stellt somit eine Form der Simulation dar. Ziel dabei ist es, (1) Fehler aufzudecken, die im funktional orientierten Systemtest/Integrationstest nicht gefunden wurden, und (2) nichtfunktionale Anforderungen, wie z.B. geforderte Antwortzeiten sowie Mengenverarbeitungen, für den Wirkbetrieb nachzuweisen. Der Lasttest ist demnach dem funktionalen Test nachgelagert, d.h. das (Teil-)System muss in einem funktional stabilen Zustand sein, um überhaupt auf Performanz testen zu können.


Durchführung und Ausprägungen

Die Last kann darin bestehen, dass Funktionen sehr schnell hintereinander ausgeführt werden, oder dass parallele Aktivitäten von virtuellen Usern (Multiuser, Vuser) ausgeführt werden. In der Regel wird dabei direkt auf Protokollebene (Netzwerkprotokoll) gearbeitet.

Grundsätzlich lässt sich unterscheiden zwischen (1) Performancemessungen und (2) Lasttests. Performancemessungen wiederholen ausgewählte Testfälle bzw. Einzelprozesse aus dem Systemtest unter Last: dadurch werden einzelne Funktionen auf ihre Performanzeigenschaften geprüft, d.h. sämtliche Vuser führen den gleichen Prozess aus, wobei somit die Skalierbarkeit für die Einzelfunktion(en) getestet wird. Man spricht in dem Zusammenhang auch von Transaktionen. Lasttests im engeren Sinne testen gesamte Prozessketten sowie den Prozessmix auf Performanz, d.h. die Verküpfungen der Einzelprozesse; damit simulieren sie konkrete Vorgänge aus dem tatsächlichen Wirkbetrieb und stellen einen nicht zu unterschätzenden Schritt zur Erreichung der Wirkbetriebstauglichkeit dar. Auch hier ist die Skalierbarkeit von entscheidender Bedeutung, jedoch jetzt für den gesamten Prozessmix.

Wird ein Lasttest im oberen Grenzbereich gefahren, spricht man auch von einem Stresstest. Damit werden die Performanzgrenzen des Systems ausgetestet und die Komponenten identifiziert, die für eine Systemerweiterung in Frage kommen.

Im Gegensatz dazu dient der Niederlasttest, der absichtlich mit einer geringen Intensität betrieben wird, der Untersuchung des Interaktionsverhaltens der virtuellen User und des von ihnen erzeugten Nachrichtenverkehrs auf dem System.

Einen Lastest über einen längeren Zeitraum (z.B. 48-72 Stunden) nennt man Dauerlasttest; er dient in erster Linie zur Aufdeckung von Speicherlecks.

Die destruktivste Form eines Lasttests ist der Fail-Over-Test. Dabei geht es um die Überprüfung des Systemverhaltens unter Last bei Ausfall von Systemkomponenten. Im Idealfall werden damit Notfallszenarien überprüft, wie z.B. das rechtzeitige Zuschalten von Zusatzressourcen, um einen totalen Systemausfall zu verhindern.

Softwaretools

Zur Durchführung von Lasttests bieten sich sog. Lasttesttools an. Im Allgemeinen wird ein Lastserver installiert, der die Last auf das zu testende System erzeugt. Die Lasttesttools können entweder selbst hergestellt werden, oder man verwendet Standardsoftware, die eine Fülle an Funktionen und Auswertungsmöglichkeiten bietet. Speziell zu Lasttesttools sind die etablierten Anbieter Mercury (http://www.mercury.com), Compuware (http://www.compuware.com), Segue (http://www.segue.com) oder empirix (http://www.empirix.com) zu nennen, im Open Source Umfeld lohnt das Tool "The Grinder" (http://grinder.sourceforge.net/) einen Blick. Weitere allgemeine Infos zu Testttools findet man z.B. unter http://www.softwareqatest.com.


Literatur

Asböck, Stefan: Load Testing for eConfidence, Segue Software Deutschland GmbH, Hamburg 2001.

Loukides, Mike; Musumeci, Gian-Paolo: System Performance Tuning, 2. Auflage, O'Reilly & Associates, Sebastopol 2002.