Lasttests für Anwendungen bestimmen den Geschäftserfolg
Lasttest-Tools stellen sicher, dass Anwendungen Spitzen- und normalem Traffic standhalten. Erfahren Sie, wie diese Tools funktionieren und welche Vorteile sie bieten.
Lasttests sind für Web- und Mobilgeräte-Anwendungen von entscheidender Bedeutung. Stichhaltige Gründe dafür gibt es viele: Ein ganz zentrales Motiv für die Nutzung von Lasttests ist, dass die Kundenzufriedenheit direkt von der Funktionsfähigkeit und der Performance einer Anwendung abhängt. In der Praxis merkt man davon allerdings oft wenig: Allzu oft lassen IT-Teams Lasttests aufgrund von Zeit- oder Ressourcenbeschränkungen links liegen – was den Erfolg einer Anwendung gravierend beeinträchtigen kann.
Lasttests sind eine Erweiterung von Leistungstests. Solche Tests informieren Entwickler darüber, ob eine Anwendung Stoßzeiten standhält und die nötige Leistung erbringt. Das ist besonders wichtig im E-Commerce-Umfeld. Dort gilt die Devise „der Kunde ist König“ und deshalb ist es von zentraler Bedeutung, dass die Applikationen entsprechend den Erwartungen der Benutzer funktionieren.
Gut dokumentierte und bekannte Beispiele für Ausfälle von Anwendungssystemen, die auf eine schlechte Performance und fehlende Lasttests zurückzuführen sind, gibt es eine ganze Reihe. Die verschiedenen Vorfälle zeigen, dass die Ignoranz gegenüber Leistungs- und Lasttests schlicht und einfach schlechtes Geschäftsmanagement ist. Dies gilt unabhängig davon, ob es sich bei der Anwendung um ein Mobile-, Web- oder Client/Server-Design handelt.
Unternehmen sollten Lasttests als ersten Schritt zur Performance-Sicherung in ihre Softwareentwicklungspläne aufnehmen. Damit die Anwendung den Kundenstandards entspricht, sollten auch dedizierte Ressourcen für die Entwicklung, Ausführung und Aktualisierung von Lasttests eingeplant werden.
Das kostet natürlich Geld – doch die Investitionen lohnen sich: Kunden haben auf dem Markt viele Möglichkeiten und erwarten, dass eine Anwendung unabhängig von der konkreten Anforderung in einem angemessenen Zeitrahmen ausgeführt wird. Unternehmen müssen sicherstellen, dass die Anwendung auch bei hoher Benutzerlast, bei Traffic-Spitzen, Failover Switches und Situationen mit variablen Netzwerkgeschwindigkeiten gut funktioniert.
Unterarten von Lasttests
Eine gute Suite zum Testen der Anwendungslast ermittelt die normale und maximale Betriebskapazität einer Anwendung. Daneben kann sie aber auch die Leistung einer Anwendung während der Nutzungsspitzen nach oben und unten feststellen.
Lasttests sind die einfachste Form von Tests. Der normale Lasttest zeigt, wie sich ein System unter Normalbedingungen bei einer Vielzahl von regelmäßigen, erwarteten Anfragen verhält. Solche Tests werden in der Regel durchgeführt, um das Verhalten des Systems unter einer bestimmten erwarteten Last zu verstehen.
Daneben gibt es weitere Testtypen. Stresstests werden gemacht, um zu ergründen, wie sich Software unter Höchstanforderungen verhält. Während normale Lasttests die Breite prüfen, checken Stresstests die Spitze der Anforderungen. Stresstests sind aber nicht nur wichtig, um die Performance, Response Time und Erholung des Systems zu testen, sondern auch, um Sicherheitslücken zu schließen.
Stresstests lassen sich weiter unterteilen in Soak Testing und Spike Testing. Beim Soak Testing wird die Belastung langsam erhöht. Diese Tests liefern nützliche Messungen bei Erhöhung der Anforderung im Laufe der Zeit und bei variablen Bedingungen. Sie werden ausgeführt, um festzustellen, ob das System die kontinuierliche erwartete Belastung aushalten kann.
Im Gegensatz dazu wird beim Spike Testing die Belastung nicht langsam, sondern schlagartig erhöht. Diese Tests sollen sicherstellen, dass die Anwendung extreme und unvorhersehbare Belastungen bewältigen kann. Stresstests sind zum Beispiel für Websites ein wichtiger Indikator, um zu erkennen, wie sich diese bei einem Ansturm von Nutzern verhalten.
Anders als normale Lasttests muss man Stresstests nicht beständig durchführen. Gelegentliche Stresstests helfen jedoch dabei, sicherzustellen, dass die Software auch härtesten Anforderungen gewachsen ist – vor allem vor größeren Ereignissen.
Der Zweck all dieser Lasttestvariationen besteht darin, dass die Entwickler erfahren, wo die Anwendung verbessert werden muss, um unter verschiedenen Echtzeitbedingungen effektiv arbeiten zu können. Erfolgreiche Lasttests für Anwendungen können auch Mängel aufdecken, bevor die Anwendung für Kunden verfügbar gemacht wird.
Außerdem zeigen Lasttest-Tools auf, wie effektiv ein Server- oder Cloud-Failover-Plan funktioniert. So können Tester beispielsweise überprüfen, wie die Anwendung in der Zeit agiert, während ein Server-Failover auftritt. Die Anwendung kann eine Pause einlegen, sollte jedoch nicht abstürzen, und die Benutzer sollten nicht über die Mechanismen informiert werden, die auf dem Backend stattfinden. Lasttests identifizieren außerdem Probleme mit der Fehlerbehandlung in einer Anwendung.
Bei Mobile- und Webanwendungen müssen die Entwickler wissen, ob die Applikation bei hoher Nachfrage über eine niedrige Netzwerkgeschwindigkeit mithalten kann. Die Benutzer mobiler Apps erwarten Geschwindigkeit und Effizienz und werden langsame oder schlecht funktionierende Anwendungen nicht tolerieren – unabhängig von dem sonstigen Komfort. Dasselbe gilt für Benutzer moderner Webanwendungen.
Vorteile von Lasttest-Tools
Entwickler können Lasttests ohne Hilfsmittel programmieren. Es gibt jedoch auch zahlreiche Qualitätswerkzeuge, die den Prozess vereinfachen, ohne dabei die Entwicklungsressourcen zu überfordern.
Lasttestwerkzeuge sind so konzipiert, dass sie mit einer großen Vielfalt an Hindernissen umgehen können, auf die eine Anwendung stößt. Web- und mobile Anwendungen können aus verschiedensten Gründen ausfallen: Aufgrund von langsamen Netzwerkverbindungen beispielsweise, wegen Internet-Verbindungsfehlern, langsamen Reaktionszeiten oder Problemen mit der Plattformkompatibilität.
Auch Serverausfälle, niedrige Geschwindigkeiten oder Fehler können jede Anwendung zum Entgleisen bringen. Ein gutes Lasttest-Tool bietet eine Reihe von Optionen zur Erstellung valider Lasttests. Sie decken unabhängig von der Codierungsstruktur viele mögliche Ausfallpunkte ab und tragen der Vielfalt der mobilen und Webgeräte Rechnung.
Lasttest-Tools bieten auch einen Startpunkt und einen Speicherort für die Tests sowie die Möglichkeit, Testläufe zu automatisieren und zu planen. Die meisten Tools beinhalten Schulungen oder bieten kostenpflichtige Trainings an. Allerdings benötigen die wenigsten Benutzer formelle Schulungen, um solche Tools zu verwenden. Alle Plattformen für Lasttests umfassen Online-Ressourcen und Benutzer-Support-Sites.
Ähnlich wie Testmanagement-Tools können Lasttest-Tools andere Leistungstests speichern und ausführen. Tools zum Testen der Anwendungslast verfügen über eine einzige Quelle für Daten zur Anwendungsleistung, die Administratoren in einem einzigen Bereich bearbeiten und verwalten können. Mehrere Teams können auf das Tool zugreifen und Tests wiederverwenden, um vielfältige Anforderungen abzudecken.
Die Testgrundlage erstellen
Ebenso wie Leistungstests erfordern Lasttests eine dedizierte Testumgebung mit gültigen Testdaten. Lasttests auf bereits vorhandenen Testsystemen sind nicht realistisch und werden wahrscheinlich keine genauen Ergebnisse liefern. Ein gutes Qualitätssicherungsteam (Quality Assurance, QA) wird nämlich Daten manipulieren und Fehlerbedingungen einrichten wollen. Dadurch wird eine große Menge an Testdaten erzeugt, die möglicherweise nicht gültig sind. Die Testdaten sind nicht statisch, stehen nicht still und können nicht in einen ursprünglichen Zustand zurückversetzt werden. Wenn sich Lasttests nachteilig auf das QA-System auswirken, können die Testbemühungen unterbrochen oder verzögert werden.
Tester sollten Lasttests idealerweise auf ihrem eigenen System ausführen, auf dem die Tester gültige Beispiele für Testdaten erstellen und mit einer Vielzahl von Backend-Plattformen innerhalb des Werkzeugs verknüpfen. Auch die Problemdefinition ist in einem separaten System sauberer.
Eine effektive Trennung von Anwendungstests stellt sicher, dass die Ausführungsmetriken genau sind – je sauberer die Daten und Metriken, desto genauer die Ergebnisse der Lasttests.
Wenn Sie Lasttestszenarien innerhalb des Tools entwickeln, halten Sie die Testumgebungen getrennt, um im Vergleich zu kombinierten Systemen Wartungszeit zu sparen. Ähnlich wie viele automatisierte Testwerkzeuge erfordert das Lasttest-Tool einwandfreie Daten zum Vergleich mit neuen Ergebnismengen. Andernfalls verbringen die Teams Zeit mit dem Debuggen von Tests, anstatt die Ergebnisse zu analysieren.
Nützliche Managementmetriken
Lasttestwerkzeuge liefern automatisch eine Vielzahl wichtiger Metriken. Dazu gehören etwa Anwendungs- und Serverdurchsatz, Fehlerrate und Antwortzeiten auf einzelne Funktionen innerhalb der Anwendung sowie CPU-Auslastung, RAM-Auslastung und Wartezeiten. Diese Metriken geben Hinweise darauf, welche Funktionsbereiche Performance Fixes benötigen.
Durch die Eingrenzung, wo während des Tests Fehler auftreten, verbringen Entwickler weniger Zeit damit, Fehler zu suchen, und können einen Fix schneller entwerfen und codieren. Die meisten Lasttest-Tools messen und melden außerdem Metriken, aus denen hervorgeht, wie viele Benutzer die Anwendung parallel verarbeiten kann, bevor die Leistung nachlässt. Außerdem liefern sie die Anzahl der Anfragen pro Sekunde, die die Anwendung verarbeiten kann.
Lasttest-Tools können auch die Anzahl und die Art der fehlgeschlagenen Transaktionen erkennen und so Probleme mit dem Kunden vermeiden. Brechen Benutzer zum Beispiel eine Anwendung an einem bestimmten Punkt ab oder während sie eine bestimmte Funktion ausführen? Mit Unterstützung von Lasttestmetriken lassen sich Probleme bei Abbruchpunkten feststellen.
Alle Mitglieder des Softwareentwicklungsteams – vom Produktmanager und Entwickler bis zum QA-Tester – profitieren von der Analyse der Lastmetriken. Produktmanager erkennen möglicherweise die Notwendigkeit, eine Funktion neu zu entwerfen. Oder sie sehen, dass ein neuer Workflow erstellt werden muss, der dem Kunden besser dient und effizienter in der Anwendung arbeitet. In diesem Fall können mehr Fehlermeldungen oder eine bessere Methode zur Fehlerbehandlung erforderlich sein.
Für die Mitglieder des QA-Teams bieten Lasttestwerkzeuge ein breites Spektrum an Möglichkeiten, die über die typischen Testanwendungen hinausgehen. Sie verhindern Fehler, die in anderen Systemen möglicherweise nicht sofort sichtbar sind.