Leistungstests beurteilen die Systemleistung oder Anwendungsleistung mit Lasten unterschiedlicher Größe.
Zu den wichtigsten Kriterien zählen Geschwindigkeit (wie schnell es arbeitet), Stabilität (ob es ohne Abstürze funktioniert), Skalierbarkeit (wie reibungslos steigende Lasten bewältigt werden) und Reaktionsfähigkeit (wie schnell es auf Benutzer-Prompts reagiert).
Das Konzept der Software-Performance liegt jeder Computernutzung zugrunde, und eine schlechte Performance kann die Bemühungen eines Unternehmens um eine hochwertige Benutzererfahrung zunichte machen. Wenn Entwickler die Leistungstests nicht ausreichend überwachen oder nicht häufig genug durchführen, kann es zu Leistungsengpässen kommen. Diese Situation kann dazu führen, dass ein System selbst seine typischen Datenverkehrslasten während erwarteter Zeiträume nicht mehr bewältigen kann. Noch problematischer wird es, wenn unerwartete Spitzenauslastungen zu zusätzlicher Nachfrage führen.
Diese Herausforderung könnte den gesamten öffentlichen Betrieb eines Unternehmens gefährden. Der Ruf für dauerhafte Qualität entwickelt sich in der Regel erst nach langer Zeit. Sie können jedoch schnell und dauerhaft beschädigt werden, wenn die Öffentlichkeit anfängt, sich zu fragen, ob ein System oder eine Anwendung zuverlässig funktioniert. Die Geduld der Endbenutzer wird zunehmend zu einem begrenzten Gut. Da der Ruf eines Unternehmens oft auf dem Spiel steht, ist viel auf dem Spiel, wenn Leistungsprobleme zum Thema werden.
Branchen-Newsletter
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und mehr auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.
Definieren wir zunächst die Methodik, die in den meisten Performance-Test-Szenarien verwendet wird. Sechs Schritte definieren den typischen Leistungstestprozess.
Der erste Schritt im Leistungstestprozess umfasst die Festlegung nützlicher Parameter, wie beispielsweise die Festlegung der Leistungsziele der Anwendung.
Legen Sie anschließend fest, was akzeptable Leistungskriterien sind (wie Reaktionszeiten, Durchsatz, Ressourcenauslastung und Fehlerquoten).
In dieser Phase identifizieren die Mitarbeiter auch KPIs, um die Leistungsanforderungen und geschäftlichen Prioritäten sinnvoll zu unterstützen.
Nicht alle Tests sollten in jeder Situation angewendet werden. Entwickler oder andere Tester müssen definieren, was der Test analysieren soll.
Sie beginnen damit, die wichtigsten Nutzungsszenarien zu identifizieren und Testfälle zu entwerfen, die reale Benutzerinteraktionen widerspiegeln. Der nächste Schritt besteht darin, die Testdaten und die Workload anzugeben, die während des Testprozesses verwendet werden.
Nach dem Sperren dieser Variablen wählen die Tester die zu verwendenden Leistungstest-Tools, Testskripte und Testtechniken für die Leistung aus. Dieser Schritt umfasst die Einrichtung von Gating, dem Prozess, bei dem codebasierte Qualitätskontrollen den Zugang zu späteren Produktionsschritten entweder gewähren oder verweigern.
Bei Leistungstests wird auch die Bandbreite überprüft, um sicherzustellen, dass die Datenübertragungsraten für den Workload-Verkehr ausreichend sind.
Bevor der Leistungstest offiziell beginnen kann, muss noch ein letzter Schritt durchgeführt werden. Tester erstellen eine Testumgebung, die die reale Produktionsumgebung des Systems exakt nachahmt, und bestätigen dann, dass die zu testenden Software-Anwendungen (Application Under Test, AUT) in der Testumgebung bereitgestellt wurden.
Die abschließende Vorbereitung umfasst die Integration von Überwachungstools, um die vom System während des Tests generierten Leistungskennzahlen zu erfassen.
Nachdem die Testparameter nun klar definiert sind, ist es an der Zeit, die Leistungstests durchzuführen. Tester oder Automatisierung führen die ausgewählten Testszenarien durch, und diese Tests werden zusammen mit Tools für Leistungstests verwendet.
Tester überwachen in der Regel die Systemleistung in Echtzeit, um den Durchsatz, die Reaktionszeiten und die Ressourcennutzung zu überprüfen. Während der gesamten Testszenarien überwachen die Tester das System auf Leistungsengpässe oder andere leistungsbezogene Unregelmäßigkeiten, die sich in den Testmetriken widerspiegeln.
Als Nächstes werten die Tester die Leistung aus, die während des Testprozesses gesammelt wurde. Sie analysieren die gesammelten Daten und suchen nach Bereichen der Leistung, die verbessert werden müssen.
Dann vergleichen die Tester diese Ergebnisse mit den Benchmarks, die im ersten Schritt des Testprozesses festgelegt wurden. Durch diesen Vergleich können die Tester erkennen, wo die Testergebnisse von der erwarteten Leistung abweichen und wo es zu Engpässen gekommen sein könnte.
Nachdem Leistungsprobleme durch die Analyse von Testdaten identifiziert wurden, arbeiten die Entwickler mit dem Code, um ihn mit dem System zu aktualisieren. Sie verwenden Code-Optimierungen, Ressourcen-Upgrades oder Konfigurationsänderungen, um die genannten Leistungsprobleme zu beheben.
Nach der Implementierung von Änderungen wiederholen Entwickler die Software-Testsequenz, um zu bestätigen, dass sie die Änderungen erfolgreich angewendet haben. Entwickler wiederholen die Verfahren so lange, bis die Leistungsergebnisse mit den definierten Benchmarks übereinstimmen.
Leistungstests gehen tief „unter die Haube“, um die System- oder Anwendungsleistung zu überprüfen. Daher ist es naheliegend, dass Softwareentwicklungs-Teams die häufigsten Nutzer von Leistungstestmethoden sind. Zu dieser ersten Benutzergruppe gehören Fachleute, die aktiv am Entwicklungsprozess beteiligt sind: Entwickler, Qualitätssicherungsingenieure (QA) und DevOps-Teams. Jeder erhält etwas Einzigartiges aus den Leistungstests:
Die nächsten Nutzer sind zwar keine Entwickler, aber sie arbeiten dennoch an der Basis und haben das Systemleistungsmanagement als wichtigen Bestandteil ihrer Arbeit:
Aber nicht nur die Unternehmensleitung führt Leistungstests durch. Viele Unternehmen und Unternehmen jeder Größe nutzen Leistungstests auch häufig für verschiedene Zwecke:
Entwickler führen verschiedene Arten von Leistungstests durch, um bestimmte Arten von Ergebnisdaten zu erhalten und eine bestimmte Teststrategie zu unterstützen. Hier sind die gängigsten Testarten.
Lasttests geben an, wie sich das System bei der Arbeit mit den erwarteten Lasten verhält. Das Ziel von Lasttests ist es, das Systemverhalten bei Workloads in routinemäßiger Größe unter normalen Arbeitsbedingungen mit einer durchschnittlichen Anzahl von gleichzeitigen Benutzern zu zeigen.
Beispiel: Für eine E-Commerce-Website simuliert ein Tester, ein Benutzer der Website zu sein und die Schritte des Einkaufens von Artikeln, des Platzierens von Produkten in den Einkaufswagen und des Bezahlens dieser Käufe durchzugehen.
Lasttests zeigen, ob das System normale Lastbedingungen unterstützen kann. Die Skalierbarkeit setzt das System unter Druck, wenn das Datenvolumen oder die Benutzerlast zunimmt. Sie zeigt, ob ein System ein erhöhtes Tempo einhalten und dennoch etwas leisten kann.
Beispiel: Bei der vertikalen Skalierung könnte ein Entwickler die CPU und den Speicher eines Datenbankservers aufbauen, damit dieser eine größere Menge an Datenabfragen aufnehmen kann.
Stresstests sind vergleichbar mit einem Tauchtest, der von einer U-Boot-Besatzung durchgeführt wird. Hier wird das System bis an seine bekannten Betriebsgrenzen gebracht – und sogar noch darüber hinaus –, um genau zu bestimmen, wie viel das System aushalten kann, bevor es seinen Bruchpunkt erreicht.
Beispiel: Failover-Tests sind eine extreme Form von Stresstests, die mit der Simulation von Komponentenausfällen beginnen. Ziel ist es, zu sehen, wie lange es dauert, bis sich das System erholt und den Betrieb wieder aufnimmt.
Hier testen wir eine andere Art von Belastung – wenn der Benutzerverkehr oder das Datenvolumen plötzlich einen starken und drastischen Anstieg der Aktivität verzeichnet. Das System muss verschiedene Änderungen absorbieren, während es seinen normalen Betrieb fortsetzt.
Beispiel: Unternehmen, die Websites betreiben, müssen sich nicht nur auf Ausfälle vorbereiten, sondern auch auf den Anstieg von Nutzern, die versuchen, gleichzeitig auf die Website zuzugreifen, sobald diese wieder online ist. Sie müssen auch beurteilen, ob das System diesen plötzlichen Anstieg der Nachfrage bewältigen kann. Mit Spike-Tests lässt sich berechnen, wie reibungslos ein Ablauf voraussichtlich verlaufen wird.
Manchmal geht es bei der Leistung auch um den Benutzerverkehr. Im Gegensatz dazu befasst sich der Volumentest damit, wie ein System große Datenmengen verwaltet. Kann das System die Daten vollständig verarbeiten und eine Datenspeicherung ohne Datenverschlechterung bereitstellen?
Beispiel: Eine medizinische Klinik verwaltet riesige Mengen an Patientendaten und ist gesetzlich verpflichtet, auf diese Patientenakten und zugehörige medizinische Daten zugreifen zu können. Dieser ständige Zustrom von Daten kann ein System belasten. Durch Volumentests können Benutzer feststellen, ob ihr System der Herausforderung gewachsen ist, ständig mehr Daten zu verarbeiten.
Betrachten Sie es als Langzeit-Leistungstest. Die eigentlichen Ursachen, nach denen bei Ausdauertests (auch Soak-Tests genannt) gesucht wird, sind Datenverluste und Probleme mit Speicherlecks, die häufig über einen längeren Zeitraum auftreten.
Beispiel: Social-Media-Plattformen sind rund um die Uhr in Betrieb, und ihre kontinuierliche Nutzung kann zu Problemen mit der Plattformstabilität, der Datenspeicherung und den Benutzerkonten führen. Dauertests vermitteln Ihnen ein Bild des aktuellen Betriebs und geben Hinweise auf die zukünftige Leistung.
Entwickler und Tester können aus zahlreichen Tools für Leistungstests wählen. Hier sind einige der Beliebtesten.
Wie bei fast allen Themen rund um Computer sorgt auch die künstliche Intelligenz (KI) dafür, dass Softwaretests jetzt ein ganz neues Effizienzniveau erreichen. Dadurch wird der gesamte Prozess der Leistung schneller, genauer und einfacher zu automatisieren.
Insbesondere kann KI kürzere Testzyklen nutzen, sodass die Durchführung von Tests weniger Zeit in Anspruch nimmt. Dank der akribischen Genauigkeit der KI sind selbst subtilere Leistungsänderungen erkennbar, die menschlichen Testern möglicherweise entgehen würden. Außerdem kann KI mithilfe von prädiktiven Analysen Betriebstrends und historische Daten auswerten und vorhersagen, wo und wann die nächsten Engpässe auftreten könnten. Es kann auch dieses vorausschauende Systemverhalten nutzen und sogar die Testparameter auf dieser Grundlage anpassen.
Das mit Abstand Bedeutendste, was KI (bislang) für Leistungstests geleistet hat, ist jedoch die Unterstützung ihrer Bemühungen in großem Maßstab durch die Ermöglichung von Automatisierung. Diese Automatisierung ist insofern bemerkenswert, als sie in der Lage ist, den gesamten Prozess der Leistungsprüfung vollständig durchzuführen.
KI kann nicht nur die Durchführung von Tests automatisieren, sondern auch die für die Ausführung vorgesehenen Testskripte schreiben. Darüber hinaus kann es Testergebnisse im Backend interpretieren und Anleitungen zur Behebung von Problemsituationen anbieten.
Eine der interessantesten und vielversprechendsten Auswirkungen der KI auf Leistungstests ist die zunehmende Zusammenarbeit zwischen Mensch und KI. Diese Anordnung macht deutlich, dass menschlicher Instinkt und Wissen nach wie vor eine wichtige Rolle spielen. Tatsächlich ist es in manchen Situationen immer noch das Wichtigste, den menschlichen Impulsen zu folgen.
Einige Experten sind davon überzeugt, dass die Leistungsprüfung der Zukunft auf diesem hybriden Ansatz beruht. Es verbindet die Mentalität und Rechenleistung eines Computers mit dem menschlichen Gespür für Zusammenhänge und Nuancen.
Automatisieren Sie die Software-Bereitstellung für jede Anwendung On-Premises, in der Cloud oder auf dem Mainframe.
Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.