Ein Performancetest (Effizienztest) dient zur Messung der Verarbeitungsgeschwindigkeit bzw. Antwortzeit für definierte Anwendungsfälle, in der Regel in Abhängigkeit von steigender Last.
Eine Performance Analyse versucht hierbei herauszufinden, im welchem Programm und in welchem Abschnitt des Programms die meiste Rechenzeit verbraucht wird. Eine tiefgreifende Performance-Analyse
wird auch als Profiling bezeichnet.
Nach der Performance-Analyse können gezielt die Programmstellen optimiert (beschleunigt) werden, welche die meiste Rechenzeit benötigen.
Die Ergebnisse des Performancetests sind zu dokumentieren.
-
Simulation realer Nutzungsbedingungen
Lasttests imitieren das Verhalten einer großen Anzahl von gleichzeitigen Nutzern oder Systemprozessen, um zu sehen, wie das System unter Druck funktioniert.
-
Messung von Systemantwortzeiten
Hier wird bewertet, wie schnell das System auf Benutzeranfragen unter verschiedenen Lastbedingungen reagiert.
Unter Performancetest (auch als Massentest, Volumentest oder Stresstest bekannt) versteht man einen (nicht funktionalen) Softwaretest, mit dem eine gewisse Last auf dem laufenden System erzeugt und
das Verhalten desselbigen beobachtet und untersucht wird.
-
Kapazitätsplanung
Ermittlung der maximalen Betriebskapazität des Systems und Erstellung von Plänen zur Skalierung, falls die Nutzerzahlen ansteigen.
-
Leistungsüberprüfung
Überprüfung, ob die Anwendung die in den Service-Level-Agreements (SLAs) festgelegten Leistungsstandards erfüllt.
-
Engpassanalyse
Identifizierung von Systemkomponenten, die bei hoher Last zum Flaschenhals werden könnten.
-
Benchmarking
Festlegung von Leistungsbenchmarks, die erreicht oder übertroffen werden müssen.
-
Monitoring und Analyse
Beobachtung der Systemressourcen (z.B. CPU-Auslastung, Speichernutzung) und Identifizierung von Leistungsabfällen oder -problemen.
-
Belastungsszenarien
Schaffung verschiedener Szenarien, die die Belastungsspitzen während der normalen Betriebszeit und in Ausnahmesituationen simulieren.
In der Regel ist der Performancetest den funktionalen Testarten (siehe Funktionstest, Funktionskettentest) nachgelagert, d.h. das (Teil-)System muss in einem funktional stabilen Zustand sein, um
überhaupt unter Last getestet werden zu können.
Allerdings können bereits während der Entwicklung Performancetests einzelner
Komponenten durchgeführt werden, um schon frühzeitig eventuelle Engpässe
erkennen und darauf entsprechend reagieren zu können.