Leistungstests sparen Unternehmen Millionen von Dollar. Laut einem Bericht von Dun & Bradstreet erleben 59 % der Fortune-500-Unternehmen mindestens 1,6 Stunden Ausfallzeit pro Woche. Rechnen wir das kurz durch. Im Durchschnitt beschäftigt ein Fortune-500-Unternehmen 52.810 Mitarbeiter. Wenn jeder Mitarbeiter nur 10 $ pro Stunde verdienen würde, würde dies das Unternehmen jede Woche 528.100 $ an Produktivitätsverlust kosten – oder 27.461.200 $ im Jahr.
Das ist eine Menge Geld, die einfach...verschwindet.

Es liegt im Interesse aller, dass Leistungstests für Software gründlich durchgeführt werden. Lassen Sie uns die Bedeutung von Leistungstests, verschiedene Typen, häufige Probleme und nützliche Tools untersuchen.
Was ist Leistungstest?
Leistungstests überprüfen, ob Software unter der erwarteten Last auf hohem Niveau laufen kann. Entwickler möchten vermeiden, Software zu erstellen, die nur mit einem verbundenen Nutzer reaktionsschnell und schnell ist, aber bei mehreren Nutzern langsam wird.
Die Qualitätssicherung konzentriert sich nicht nur auf Bugs. Auch die Geschwindigkeit, Reaktionsfähigkeit und Ressourcennutzung der Software sind wichtige Aspekte. Das Ziel von Leistungstests ist es, Engpässe zu identifizieren und zu beseitigen. Diese Engpässe werden durch die Simulation von Nutzerverkehr gefunden. Idealerweise werden Leistungstests unter realen Bedingungen ausgeführt. Es ist eine der ersten Bewährungsproben der Software außerhalb des perfekten Laborumfelds auf dem Weg in die unvorhersehbare echte Nutzererfahrung.
Warum sollte ich einen Leistungstest durchführen?
Leistungstests liefern Stakeholdern konkrete Informationen über Geschwindigkeit, Stabilität und Skalierbarkeit der Software. Ohne Leistungstests drohen bei Veröffentlichung Probleme mit der Geschwindigkeit und Zuverlässigkeit der Software.
Wir haben bereits die Kosten betrachtet, die durch Systemabstürze entstehen. In vielen Fällen ist das allein Grund genug. Doch nicht jede Software wird nur intern genutzt, sie wird oft an Kunden ausgeliefert und verkauft. Dann sind Leistungstests noch entscheidender, denn das Letzte, was man möchte, ist eine Schar verärgerter Kunden, die mit der Produktqualität unzufrieden sind.
In der Entwicklungsphase geben Leistungstests einen klareren Überblick darüber, was in Bezug auf Geschwindigkeit, Stabilität und Ressourcennutzung verbessert werden muss. Ohne sie könnte die Software mit mehreren gravierenden Fehlern veröffentlicht werden: z. B. langsame Laufzeit bei mehreren Nutzern, Abstürze durch Überlastung oder inkonsistente Nutzererfahrung auf verschiedenen Betriebssystemen und Browsern.
Tests auf Bugs allein zeigen nicht, wie sich die Software unter Last verhält. Es ist wichtig, dass Leistungstests unabhängig durchgeführt werden und einzig darauf abzielen, Engpässe zu finden. Gute Tester wissen, dass Geschwindigkeit allein nicht der einzige Maßstab für Leistung ist. Zum Beispiel ist eine Anwendung, die zwar schnell lädt, aber 100 % der CPU des Nutzers beansprucht, nicht performant. Das würde für Endnutzer viele Probleme bedeuten: Überhitzung, verringerte CPU-Lebensdauer, verlangsamte Performance bei mehreren Anwendungen und gelegentliche Abstürze.
Wie wird Leistungstest durchgeführt?
Wie ein Leistungstest durchgeführt wird, hängt von der jeweiligen Software ab. Hierfür gibt es unterschiedliche Herangehensweisen, die ein QA-Tester nutzen kann. Es handelt sich um eine Form des nicht-funktionalen Testings, d. h. die Benutzeroberfläche steht nicht im Fokus.
Leistungstester wollen sicherstellen, dass die internen Komponenten so gut wie möglich abgestimmt sind. Sie bilden gewissermaßen die Boxencrew bei einem F1-Rennen.

Die Art des Tests hängt von der im Unternehmen verwendeten Methodik ab. Wird nach dem klassischen Wasserfallmodell entwickelt, erhalten die Tester oft erst nach Entwicklungsende Zugang zum Produkt. Nutzt das Unternehmen jedoch Agile, finden die entsprechenden Performance-Tests meist fortlaufend während der Entwicklung statt.
Arten von Leistungstests
Einige Varianten erfordern manuelles Testen, andere setzen auf automatisierte Tests. Doch mit dem rasanten Fortschritt bei automatisiertem Testen und der Entwicklung immer besserer Tools gibt es in diesen Fällen eine deutliche Präferenz für automatisierte Tests, weil hierfür viele virtuelle Nutzer gebraucht werden, die das Verhalten echter Endnutzer nachahmen. Manuell ist das kaum nachzubilden, da hierfür deutlich mehr Tester nötig wären, als das Team stellen könnte.
Auch wenn leistungsbezogene Testprozesse zunehmend maschinell ausgeführt werden, gibt es dennoch wichtige Unterschiede zwischen den Testarten. Ein QA-Tester sollte die verschiedenen Typen kennen, um das passende Werkzeug zu wählen.
Lassen Sie uns die verschiedenen Arten von Leistungstests betrachten und was sich jedes Testverfahren zum Ziel setzt.
Kapazitätstest
Testet, wie viele Nutzer das System bewältigen kann, bevor die Leistung unter akzeptable Werte fällt. Durch das Testen der Kapazität einer Software können Entwickler besser abschätzen, wie skalierbar das System ist und mit welchem Nutzerwachstum zu rechnen ist.
Lasttest
Bestätigt, dass das System die erforderliche Anzahl von Benutzern bewältigen kann und dennoch auf einem hohen Leistungsniveau arbeitet. Lasttest-Tools stellen sicher, dass es keine täglichen Leistungsprobleme gibt.
Volumentests
Überprüft, ob die Software große Datenmengen gleichzeitig verarbeiten und bewältigen kann, ohne abzustürzen, langsamer zu werden oder Informationen zu verlieren.
Stresstests
Versucht absichtlich, die Software zu überlasten, indem eine Anzahl von Benutzern simuliert wird, die die Erwartungen deutlich übersteigt. Der Starttag eines neuen iPhones und der plötzliche Anstieg des Nutzerverkehrs auf der Apple-Website sind ein hervorragendes Beispiel für einen Stresstest in der realen Welt.
Dauertests
Simuliert über einen längeren Zeitraum hohen Traffic. Überprüft die Fähigkeit der Software, über längere Zeiträume hinweg hohe Auslastung zu tolerieren.
4 häufige Performance-Probleme
Performance-Tester stoßen bei Tests typischerweise auf mindestens eines dieser vier Probleme.
- Lange Ladezeiten – Niemand wartet gerne 30-60 Sekunden zusehen, wie sich eine Anwendung öffnet. Es ist langweilig, vor allem bei Programmen, die man mehrfach täglich benötigt. Abgesehen von wirklich ressourcenintensiver Software sollten die meisten Anwendungen, Webseiten und Programme im Normalfall in wenigen Sekunden starten können. Lasttests identifizieren meist jede Software, die Probleme hat, innerhalb einer akzeptablen Zeitspanne zu starten.
- Schlechte Reaktionszeiten – Ähnlich wie das Problem langer Ladezeiten. Es ist ebenso frustrierend, wenn nach dem Start der App auch das Navigieren durch Menüs oder das Eingeben von Daten 30-60 Sekunden dauert. Denken Sie an die Apps, die Sie täglich verwenden – wie viele davon lassen Sie länger warten, bis eine Seite geladen ist? Vermutlich nicht viele. Lange Ladezeiten sorgen dafür, dass Nutzer das Interesse verlieren.
- Schlechte Skalierbarkeit – Dies wird oft als 'Slashdot-Effekt' oder 'Internet-Hug-of-Death' bezeichnet. Haben Sie schon einmal von einer interessanten Website auf Facebook gehört und beim Klicken auf den Link wurde die Seite nicht geladen? Das liegt daran, dass Sie und Millionen andere sie gleichzeitig besuchen wollten – aber die Seite hatte nicht die Infrastruktur, um einen plötzlichen Nutzeransturm zu verkraften. Ein Graph ihrer Besucherzahlen würde etwa so aussehen:

4. Engpässe (Bottlenecking) – Engpässe entstehen, wenn ein System seine Rechenleistung nicht optimal nutzt. Wenn Ihre Software zum Beispiel den Prozessor des Nutzers zu 100 % auslastet, bleibt kein Arbeitsspeicher mehr für weitere Aufgaben übrig. Das ist schlecht und führt häufig zu Überhitzung sowie zu erheblichen Leistungseinbußen. Engpässe können an verschiedenen Stellen auftreten. Die häufigsten sind:
- CPU
- Arbeitsspeicher
- Grafikkarte (GPU)
- Festplattenauslastung
Die besten Tools für Performance-Testing
Welches Tool für Performance-Tests zu Ihnen passt, hängt von Ihrem Projekt und Ihren Zielen ab. Manche Tools, wie Jmeter, eignen sich sehr gut für Last- und Stresstests. Es hängt auch von Ihrem Budget ab. Kleinere Unternehmen wählen oft eines der hochwertigen, kostenlosen Open-Source-Tools für Performance-Tests, um Kosten zu sparen.
Open-Source-Performance-Testing-Tools
Ein sehr angesehenes Open-Source-Testtool ist Jmeter. Es ist eine beliebte Wahl für kleinere Unternehmen, die effektive Tests durchführen wollen. Performance-Tests mit Jmeter analysieren sorgfältig die Serverleistung unter Last. Damit können Sie Last- und Stresstests ausführen, um zu prüfen, ob Ihre Software die normale und maximale erwartete Nutzerzahl bewältigen kann.
Wenn die Performance-Tests abgeschlossen sind, stellt Jmeter die Testergebnisse auf unterschiedliche, leicht verständliche Weise dar. Eine Möglichkeit ist die grafische Ausgabe Ihrer Resultate. So sehen Jmeter-Diagramme aus:

Beim Lesen des Diagramms ist der wichtigste Parameter der Durchsatz (grüne Linie), der die Anzahl der während des Tests abgesendeten Anfragen zeigt. Je höher dieser Wert, desto besser. Er zeigt, wie viele Anfragen Ihre Software pro Minute verarbeiten kann. In diesem Beispiel sind es 8.003 Anfragen pro Minute.
Weitere Top-Tools:
Es gibt einige Nachteile bei der Durchführung von Performance-Tests mit Open-Source-Software. Einer davon ist, dass alle simulierten Nutzer auf den Servern des Unternehmens ausgeführt werden. Das bedeutet, dass die Tests unter idealen Bedingungen stattfinden und nicht unter realen Gegebenheiten. Für kleine Unternehmen, die keinen erheblichen Lastanstieg erwarten, mag das völlig ausreichend sein. Wenn das Unternehmen jedoch wächst, wird es möglicherweise den Erwerb eines Premium-Performance-Testing-Tools in Betracht ziehen.
Hier ist eine kurze Liste einiger Premium-Tools für Performance-Tests:
Performance-Tests sind im Allgemeinen betriebssystemübergreifend sehr ähnlich. Viele der Performance-Testing-Tools für Mac funktionieren auch unter Windows.
Abschließende Gedanken
Performance-Tests sind ein unverzichtbarer Bestandteil, um die Zuverlässigkeit und Effizienz von Software sicherzustellen, insbesondere für SaaS-Unternehmen, die ein starkes Wachstum erleben. Durch den Einsatz der besten Tools erhalten QA-Leads wertvolle Einblicke in die Skalierbarkeit, Belastbarkeit und Fähigkeit ihrer Systeme, hohen Datenverkehr zu bewältigen. Abonnieren Sie unseren Newsletter für weitere Einblicke von Qualitätssicherungs-Profis!
