Suchen

Definition „Software Performance Testing“ Was ist Performance Testing?

| Autor / Redakteur: Gedeon Rauch / Stephan Augsten

Qualität, Zuverlässigkeit, Skalierbarkeit und Leistung unter Belastung – all diese Aspekte muss gute Software erfüllen. Um zu gewährleisten, dass Software dies auch leisten kann, sind Performancetests unabdingbar.

Firma zum Thema

Performance Testing kann sich unter anderem mit der Frage befassen, wie eine Webanwendung unter Volllast noch läuft.
Performance Testing kann sich unter anderem mit der Frage befassen, wie eine Webanwendung unter Volllast noch läuft.
(Bild: mohamed_hassan - Pixabay.com)

Performance Testing wirft für Softwareentwickler verschiedene Fragen auf. Dies betrifft vor allem die Art der Tests und natürlich deren Zeitpunkt. Grundsätzlich wird unter dem Begriff Performance Testing jede Art von Softwaretest zusammengefasst, der Faktoren wie Leistung, Responsiveness, Skalierbarkeit, Stabilität, Zuverlässigkeit, Geschwindigkeit oder Ressourcenausnutzung auf die Probe stellt.

Verschiedene Testszenarien werden für verschiedene Attribute der Software eingesetzt und als Bericht zusammengefasst. Dabei gilt es, vor allem zu bedenken, dass einige Faktoren in Abhängigkeit zueinander stehen. Unterschiedliche Tests dürfen beim Performance Testing also nicht einzeln betrachtet werden, da es schließlich um die Gesamtperformance der Software für den Endkunden geht.

Letztlich erfordert die korrekte Auswertung der Ergebnisse aber auch, dass der Entwickler weiß, was er und seine Kunden letztlich von der Software erwarten. Performance Testing wird im Übrigen nicht ausschließlich für Software eingesetzt, auch Netzwerke und Computer müssen sich Leistungstests unterziehen.

Key Performance Indicator – einige Beispiele für Testresultate

Es gibt einige Schlüsselfaktoren, auf die Sie bei der Auswertung verschiedener Tests achten sollten und die Ihnen wichtige Indikatoren dafür liefern, wie Ihre Software sich verhält oder ob es Fortschritte im Vergleich zur letzten getesteten Version gab, beziehungsweise welcher Entwicklungszweig vielversprechender wirkt.

Zu diesen Key Performance Indikatoren zählen etwa die Zahl der virtuellen Nutzer, Aufrufe und Fehler pro Sekunde, Response Time, Latenzzeiten und durchlaufende Datenraten. Durch die Auswertung dieser Daten und ihrer Zusammenhänge können Sie Fehler im Programmablauf besser erkennen.

Gerade sogenannte Flaschenhälse, also einzelne Punkte, welche die Leistung einer Software einschränken, lassen sucg durch diese Form des Tests leichter identifizieren und schließlich beheben. Ein typisches Beispiel für so einen Flaschenhals ist etwa für moderne Apps die Datenübertragungsgeschwindigkeit. Software, die auf einen steten Datenfluss vom Server und zum Server hin angewiesen ist, wird schlecht abschneiden, wenn keine konstant hohe Verbindung gewährleistet werden kann.

Unterarten beim Performance Testing

Performance Testing wird generell in zwei Unterarten unterteilt, das Load und das Stress Testing. Beim Load Testing wird das Volumen der Belastung erhöht, dieser Performancetest zeigt daher auf, wie sich ein System unter einer Vielzahl von regelmäßigen, erwarteten Anfragen verhält. Load Testing kann dabei nicht nur die reine Quantität testen, sondern auch diffizilere Szenarien wie unterschiedliche Geo Locations ergründen.

Load Testing gehört dabei zu den Anforderungen, denen Apps und Websites beständig ausgesetzt sein sollten, um im Nutzungsfall für jeden User verfügbar zu sein. Ein typischer Load Test fügt etwa alle 60 Sekunden 50 virtuelle Nutzer hinzu bis die Zahl von 1.000 virtuellen Usern erreicht ist und lässt diese virtuellen Nutzer weiter Anfragen senden.

Im Gegensatz dazu wird Stress Testing durchgeführt, um zu ergründen, wie sich Software unter Höchstanforderungen verhält. Load Testing prüft quasi die Breite, Stress Testing die Spitze der Anforderungen. Stress Testing ist nicht nur wichtig, um die Performance, Response Time und Erholung des Systems zu testen, sondern auch um Sicherheitslücken zu schließen.

Grundsätzlich wird Stress Testing selbst in Soak Testing (langsame Erhöhung des Pensums) und Spike Testing (plötzliche Erhöhung als Ausschlag im getesteten Parameter) unterschieden. Stress Testing ist für Websites etwa ein wichtiger Indikator, um zu erkennen wie diese sich bei einem Ansturm von Nutzern verhalten.

Bietet ein Onlineshop etwa besonders günstige Deals zum Black Friday, so sollte das vorangegangene Stress Testing ergeben haben, dass Seite und Server der Vielzahl der zu erwartenden Anfragen auch standhalten können. Gerade hier ist ein Spike in der Nutzerrate erkennbar.

Anders als Load Testing müssen Sie Stress Testing nicht beständig durchführen, ein gelegentlicher Belastungstest hilft Ihnen aber dabei, sicherzustellen, dass Ihre Software auch härtesten Anforderungen gewachsen ist – vor allem vor größeren Events.

Plug-ins und Tools

Je nach Art des gewünschten Tests und zu untersuchendem Parameter haben Sie die Auswahl, welche Tools Sie nutzen möchten. Unter Apache wird das Tool JMeter häufig für Load Tests genutzt, auch LoadRunner ist eine beliebte Applikation im Bereich des Load Testing. Speziell für Apps entwickelte Tools wie NeoLoad helfen Entwicklern mobiler Software dabei, diese resistent gegen Ausfälle und leistungsfähig auf den Markt zu bringen.

In welcher Form auch immer ein Performancetests stattfindet, diese Form des Testlaufs ist entscheidend für die Nutzerzufriedenheit mit dem Produkt. Denn die Frustration nicht mehr antwortender Server, Seiten oder Apps gibt Usern eben das unschöne Gefühl, dass sie selbst als Softwaretester verpflichtet wurden.

(ID:45808313)