Finden von Bottlenecks in der Anwendung und Infrastruktur
Um die Leistung zu vergleichen, erstellt man Leistungs-KPIs, um das System ggf. zu optimieren.
Ein Leistungstest fängt eine Reihe von Risiken ab, die durch funktionale Tests nicht abgedeckt werden. Beispielsweise:
Systemüberlastung
Zeitfenster für zeitkritische Prozesse
Einhaltung der SLA
Benutzerakzeptanz und Antwortzeiten
Ein Performanztest ist ein Leistungstest. Insbesondere werden die Antwortzeiten von zeitkritischen Funktionen überprüft. Performanztests sind unter optimalen Bedingungen durchzuführen, also möglichst immer zu gleichen Zeit und exklusiv.
Bei einem Stresstest wird das System über die real zu erwartende Maximallast belastet. Auf diese Weise erhält man Prognosemöglichkeiten über das System bei gestiegenen Anforderungen.
Beim Lasttest versteht man den Test eines Systems gegen eine erwartete Maximallast, beginnend beim Single-User-Test bis hin zum Multi-User-Test. Es wird getestet wie das System mit einer großen Anzahl von gleichzeitigen Anfragen zurechtkommt. Wird eine steigende Last erzeugt, so erhält der Tester Hinweise auf die Skalierbarkeit. Resultiert dabei ein lineares Verhalten, charakterisiert dies ein perfektes System. Bei der plötzlichen Zurverfügungstellung einer gesamten Last lassen sich Rückschlüsse auf das Management der Ressourcen ziehen und ggf. Deadlocks aufspüren. Auch lässt sich das Antwortzeitverhalten messen, um zu prüfen, ob es der Spezifikation entspricht.
Bei einem Massentest wird der Durchsatz großer Datenmengen betrachtet, meist ohne Dialoguser und meist mit synthetischen Daten. Massentests werden durchgeführt, um die Zuverlässigkeit und das Verbrauchsverhalten eines Systems zu testen. Beispielsweise können auf diese Weise Memory Leaks aufgedeckt werden.
Ein Effizienztest gliedert sich in die Phasen:
Planung und
Durchführung
In der Planungsphase unterscheiden wir in:
Prozessanalyse
Datenanalyse und
Toolauswahl
In der Prozessanalyse werden die wichtigsten Prozesse analysiert und die Zuordnung der Benutzergruppen zu den Anwendungen. Bei der Datenanalyse werden die benötigten Daten ermittelt. Dabei ist insbesondere darauf zu achten, dass ausreichend Verbrauchsdaten für den Performanztest zur Verfügung stehen. Tools gibt es ist großer Anzahl mit unterschiedlichsten Ausprägungen. Beispielsweise für den Test
von SAP-Anwendungen bietet sich SAP Loadrunner by HP an
Apache Bench als Benchmarking-Werkzeug
JMeter u.v.a.m.
In der Durchführungsphase werden die Tests durchgeführt, die Ergebnisse analysiert und adäquate Optimierungmaßnahmen durchgeführt.
Efficiency Tests are carried out timely in the planning and execution. Usually no project runs perfectly and Service Level Agreements (SLA) should be respected. We optimize the efficiency.
Der Stresstest ist eine spezifische Form des Performanztests, die durchgeführt wird, um ein System oder eine Komponente an oder über den Grenzen, die in den Anforderungen spezifiziert wurden, zu bewerten.
Ein Service-Level-Agreement (SLA) bezeichnet eine Vereinbarung zwischen Auftraggeber und Dienstleister für wiederkehrende Dienstleistungen. Ziel ist es, die Kontrollmöglichkeiten für den Auftraggeber transparent zu machen, indem zugesicherte Leistungseigenschaften wie etwa Leistungsumfang, Reaktionszeit und Schnelligkeit der Bearbeitung genau beschrieben werden. Wichtiger Bestandteil ist hierbei die Dienstgüte (Servicelevel), welche die vereinbarte Leistungsqualität beschreibt.
Der Lasttest ist eine Art von Performanztest, der das Systemverhalten eines System oder einer Komponente in Abhängigkeit steigender Systemlast (z.B. Anzahl parallele Benutzer, und/oder Anzahl Transaktionen) misst, um zu bestimmen, welche Last durch ein System oder eine Komponente bewältigt werden kann. Lasttestwerkzeug: Ein Werkzeug zur Unterstützung des Lasttests, welches ansteigende Last simulieren kann, z.B. die Anzahl gleichzeitiger Benutzer und/oder Transaktionen innerhalb einer gewissen Zeitraums.
Ein Key Performance Indicator (KPI) ist eine Leistungskennzahl, anhand derer der Fortschritt oder der Erfüllungsgrad hinsichtlich wichtiger Zielsetzungen oder kritischer Erfolgsfaktoren innerhalb einer Organisation gemessen und/oder ermittelt werden kann, beispielsweise Performanz-KPI.
Ein Speicherleck ist eine Fehlerwirkung, die sich zeigt, indem ein Programm und/oder andere parallele Prozesse infolge Speicherplatzmangels nicht funktionieren. Ursache hierfür ist ein Fehlerzustand bei der dynamischen Speicherverwaltung, der zur fehlerhaften Freigabe von Speicher nach dessen Verwendung führt.
Ein Deadlock bezeichnet einen Zustand, bei dem ein oder mehrere Prozesse auf Betriebsmittel warten, die dem Prozess selbst oder einem anderen beteiligten Prozess zugeteilt sind. Einen Deadlock verhindern Sie durch: Einem Prozess werden Betriebsmittel entzogen, um sie einem anderen zuzuteilen. Jeder Prozess gibt zu Beginn an, welche Betriebsmittel er benötigt. Falls alle benötigten Betriebsmittel gleichzeitig frei sind, bekommt sie ein Prozess auf einmal zugeteilt. Die benötigten Betriebsmittel für alle Prozesse zugänglich zu machen, indem man den exklusiven Zugriff auflöst. Alternativ Spooling (Beispiel: Drucker) oder Virtualisierung von Betriebsmitteln (Beispiel: CPU). Betriebsmittel werden linear geordnet und in aufsteigender Reihenfolge vergeben.