LEISTUNGSTESTS: Was ist das und wie funktioniert es?

Performance Testing
Simplilearn

Leistungstests, allgemein bekannt als „Perf Testing“, sind eine Art von Tests, mit denen ermittelt wird, wie sich Software oder Anwendungen unter Stress in Bezug auf Reaktionsfähigkeit und Stabilität verhalten. Der Zweck eines Leistungstests besteht darin, Leistungsengpässe in einer Anwendung zu entdecken und zu beseitigen. In dieser Tutorialreihe behandeln wir ausführliche Details wie Leistungstesttypen, deren Funktionsweise, Prozesse und Tools. Lasst uns anfangen.

Was ist Leistungstest?

Leistungstests sind eine Art von Tests, die die Geschwindigkeit, Reaktionsfähigkeit und Stabilität eines Computers, Netzwerks, einer Softwareanwendung oder eines Geräts unter Last bewerten. Unternehmen führen Leistungstests durch, um Leistungsengpässe aufzudecken.

Der Zweck von Leistungstests besteht darin, Leistungsengpässe in Softwareanwendungen zu erkennen und zu beseitigen und so zur Sicherung der Softwarequalität beizutragen. Langsame Reaktionszeiten und ungleichmäßige Erfahrungen zwischen Benutzern und dem Betriebssystem (OS) können die Systemleistung beeinträchtigen, wenn keine Leistungstests durchgeführt werden.

Lesen Sie auch: BENUTZERTESTS: Bedeutung, Bewertung, Apps & Leitfaden

Darunter leidet die gesamte User Experience (UX). Durch Leistungstests wird ermittelt, ob ein produziertes System unter Last die Kriterien Geschwindigkeit, Reaktionsfähigkeit und Stabilität erfüllt, was zu einer positiveren UX führt. Nachdem die Funktionstests abgeschlossen sind, sollten Leistungstests durchgeführt werden.

Entwickler können Leistungstests schreiben und diese können auch in Code-Review-Prozesse einbezogen werden. Szenarios für Leistungstests können zwischen Umgebungen verschoben werden, beispielsweise zwischen Entwicklungsteams, die in einer Live-Umgebung testen, und Umgebungen, die von Betriebsteams überwacht werden. Leistungstests können auch quantitative Tests umfassen, die in einem Labor oder in einer Produktionsumgebung durchgeführt werden.

Leistungstests sollten Anforderungen identifizieren und testen. Typische Kriterien sind beispielsweise Verarbeitungsgeschwindigkeit, Datenübertragungsraten, Netzwerkbandbreite und -durchsatz, Workload-Effizienz und Zuverlässigkeit.

Arten von Leistungstests

Zunächst ist es wichtig zu verstehen, wie die Software auf den Systemen ihrer Benutzer funktioniert. Beim Softwaretest können verschiedene Arten von Leistungstests eingesetzt werden. Sie sind wie folgt:

#1. Belastungstest

Beim Lasttest wird die Systemleistung bei steigender Arbeitslast bewertet. Diese Belastung könnte mehrere gleichzeitige Benutzer oder Transaktionen umfassen. Wenn die Arbeitslast steigt, wird das System überwacht, um die Reaktionszeit und die Systemausdauer zu ermitteln. Dieser Arbeitsaufwand liegt im Rahmen normaler Arbeitsbedingungen.

#2. Belastbarkeitstest

Stresstests, auch Ermüdungstests genannt, sollen im Gegensatz zu Lasttests die Systemleistung außerhalb der Einschränkungen normaler Betriebsbedingungen messen. Weitere Benutzer oder Transaktionen können von der Software verwaltet werden. Der Zweck des Stresstests besteht darin, die Stabilität der Software zu ermitteln. Wann fällt eine Software aus und wie kann sie nach diesem Fehler wiederhergestellt werden?

#3. Spike-Test

Beim Spike-Testing handelt es sich um eine Art Stresstest, bei dem die Softwareleistung bei schnell und wiederholt steigender Arbeitslast untersucht wird. Für kurze Zeit übersteigt die Arbeitsbelastung die normalen Erwartungen.

#4. Ausdauertest

Ausdauertests, oft auch als Soak-Tests bezeichnet, bewerten, wie die Software über einen langen Zeitraum hinweg bei einer typischen Arbeitslast funktioniert. Der Zweck von Dauertests besteht darin, nach Systemproblemen wie Speicherlecks zu suchen. (Ein Speicherverlust tritt auf, wenn ein System verbrauchten Speicher nicht ordnungsgemäß entsorgt. Speicherverluste können die Systemleistung beeinträchtigen oder zu Fehlfunktionen des Systems führen.)

#5. Skalierbarkeitstests

Skalierbarkeitstests werden durchgeführt, um zu überprüfen, ob die Software steigende Arbeitslasten angemessen bewältigen kann. Dies kann ermittelt werden, indem die Benutzerlast oder das Datenvolumen schrittweise erhöht und gleichzeitig die Systemleistung überwacht wird. Darüber hinaus kann die Arbeitslast konstant bleiben, während Ressourcen wie CPUs und Speicher geändert werden.

#6. Volumentest

Volumentests bestimmen, wie gut Software mit enormen Mengen vorhergesagter Daten funktioniert. Da der Test das System mit Daten überflutet, wird er auch als Fluttest bezeichnet.

So führen Sie Leistungstests durch

Die einzelnen Phasen der Leistungstests unterscheiden sich je nach Unternehmen und Anwendung. Es kommt darauf an, welche Leistungskennzahlen für das Unternehmen am wichtigsten sind. Dennoch sind die Hauptziele von Leistungstests weitgehend die gleichen, weshalb die meisten Teststrategien einem ähnlichen Ansatz folgen.

#1. Bestimmen Sie die Testumgebung und die Tools

Bestimmen Sie Ihre Produktionsumgebung, Testumgebung und Testtools. Um die Kohärenz aufrechtzuerhalten, dokumentieren Sie die Hardware, Software, Infrastrukturspezifikationen und Einstellungen sowohl in Test- als auch in Produktionsumgebungen. Einige Leistungstests können in der Produktionsumgebung durchgeführt werden, es müssen jedoch strenge Schutzmaßnahmen vorhanden sein, um zu verhindern, dass sich die Tests auf die Produktionsaktivitäten auswirken.

#2. Legen Sie akzeptable Leistungskriterien fest

Bestimmen Sie die Grenzen, Ziele und Schwellenwerte, die den Testerfolg anzeigen. Obwohl die Kernkriterien direkt aus den Projektspezifikationen abgeleitet werden, sollten die Tester ausreichend befugt sein, eine breitere Palette von Tests und Benchmarks zu entwerfen.

#3. Planen und erstellen Sie Tests

Überlegen Sie, wie weit die Verwendung variieren dürfte, und erstellen Sie dann Testszenarien, die alle möglichen Nutzungssituationen abdecken. Erstellen Sie die entsprechenden Tests und erläutern Sie die zu erfassenden Metriken.

#4. Richten Sie die Testumgebung und die Tools ein

Richten Sie vor dem Ausführen der Leistungstests die Testumgebung ein. Bereiten Sie Ihre Prüfausrüstung vor.

#5. Führen Sie die Leistungstests aus

Führen Sie die Prüfungen durch. Erfassen und verfolgen Sie die Ergebnisse.

#6. Bestimmen und erneut testen

Testergebnisse sollten konsolidiert und analysiert werden. Informieren Sie das Projektteam über Ihre Ergebnisse. Optimieren Sie die Anwendung, indem Sie die identifizierten Leistungsprobleme beheben. Wiederholen Sie den Test, um sicherzustellen, dass jedes Problem endgültig behoben wurde.

Cloud-Leistungstests

Entwickler können Leistungstests auch in der Cloud durchführen. Cloud-Performance-Tests ermöglichen es Ihnen, Apps in größerem Umfang zu testen und gleichzeitig von den wirtschaftlichen Vorteilen der Cloud zu profitieren.

Ursprünglich glaubten Unternehmen, dass die Verlagerung von Leistungstests in die Cloud den Prozess einfacher und skalierbarer machen würde. Sie kamen zu dem Schluss, dass sie den Prozess in die Cloud auslagern könnten, was alle ihre Schwierigkeiten lösen würde. Als Unternehmen jedoch begannen, dies zu tun, stellten sie fest, dass die Durchführung von Leistungstests in der Cloud immer noch Herausforderungen mit sich brachte, da das Unternehmen auf Seiten des Cloud-Anbieters nicht über umfassendes Fachwissen verfügte.

Eine der Schwierigkeiten bei der Migration einer Anwendung vom lokalen Standort in die Cloud ist Selbstzufriedenheit. Entwickler und IT-Mitarbeiter können davon ausgehen, dass die Anwendung weiterhin in der Cloud funktioniert. Möglicherweise verzichten sie zugunsten einer zügigen Markteinführung auf Tests und Qualitätssicherung. Da die Anwendung auf der Hardware eines anderen Anbieters getestet wird, sind die Tests möglicherweise weniger genau als Tests vor Ort.

Entwicklungs- und Betriebsteams sollten nach Sicherheitslücken suchen, Lasttests durchführen, die Skalierbarkeit bewerten, die Benutzererfahrung berücksichtigen und Server, Ports und Pfade zuordnen. Die Kommunikation zwischen Anwendungen kann einer der schwierigsten Aspekte bei der Migration eines Programms in die Cloud sein. Die interne Kommunikation in Cloud-Systemen unterliegt häufig strengeren Sicherheitsbeschränkungen als in lokalen Umgebungen. Vor der Migration in die Cloud sollte ein Unternehmen eine detaillierte Karte der Server, Ports und Kommunikationswege erstellen, die die Anwendung nutzt. Auch die Überwachung der Leistung kann von Vorteil sein.

Die häufigsten bei Leistungstests beobachteten Probleme

Beim Testen der Softwareleistung prüfen Ingenieure, ob Leistungssymptome und -probleme vorliegen. Geschwindigkeitsprobleme wie langsame Antworten und längere Ladezeiten werden häufig gemeldet und behoben. Weitere Leistungsprobleme können beobachtet werden:

  • Engpass – Ein Engpass entsteht, wenn der Datenfluss aufgrund mangelnder Kapazität zur Bewältigung der Aufgabe unterbrochen oder gestoppt wird.
  • schlechte Skalierbarkeit – Wenn die Software nicht in der Lage ist, die erforderliche Anzahl gleichzeitiger Prozesse zu verwalten, können sich die Ergebnisse verzögern, Fehler können zunehmen oder es kann ein anderes unerwartetes Verhalten auftreten, das sich auf den Festplattenverbrauch, die CPU-Auslastung, Speicherlecks, Betriebssystembeschränkungen und eine schlechte Netzwerkkonfiguration auswirkt.
  • Probleme mit der Softwarekonfiguration – Häufig werden die Einstellungen nicht ausreichend angepasst, um der Nachfrage gerecht zu werden.
  • Unzureichende Hardwareressourcen – Leistungstests können physische Speichergrenzen oder CPUs mit schlechter Leistung aufdecken.

Tools für Leistungstests

Abhängig von seinen Zielen und Vorlieben kann ein IT-Team eine Reihe von Leistungstesttechnologien einsetzen. Im Folgenden finden Sie einige Beispiele für Leistungstesttools:

#1. Akamai CloudTest

Dies wird für die Leistungs- und Funktionstests von Mobil- und Webanwendungen verwendet. Für Lasttests können auch Millionen gleichzeitiger Benutzer simuliert werden. Anpassbare Dashboards; Stresstests auf AWS, Microsoft Azure und anderen Clouds; ein visueller Wiedergabeeditor; und visuelle Testgenerierung gehören zu seinen Fähigkeiten.

#2. BlazeMeter

Perforce Software hat diese Software erworben, die verschiedene Testsituationen simuliert und Last- und Leistungstests durchführt. Es unterstützt Echtzeitberichte und lässt sich in Open-Source-Tools, Anwendungsprogrammierschnittstellen und andere Technologien integrieren. Kontinuierliche Tests für Mobil- und Mainframe-Apps sowie Echtzeitberichte und -analysen sind in dieser Testlösung enthalten.

#3. JMeter

Lasttests für Web- und Anwendungsdienste können mit einem Apache-Leistungstesttool generiert werden. JMeter-Plugins bieten Lasttestfunktionen, indem sie Themen wie Diagramme, Thread-Gruppen, Timer, Funktionen und Logikcontroller abdecken. JMeter umfasst eine integrierte Entwicklungsumgebung zum Aufzeichnen von Testergebnissen für Browser oder Webanwendungen sowie einen Befehlszeilenmodus zum Auslastungstest von Java-basierten Betriebssystemen.

#4. LoadRunner

Micro Focus hat ein Tool entwickelt, das die Leistung von Apps unter Last testet und misst. LoadRunner ist in der Lage, Tausende von Endbenutzern zu simulieren und Lasttests aufzuzeichnen und zu analysieren. Die Software generiert im Rahmen der Simulation Nachrichten zwischen Anwendungskomponenten und Endbenutzeraktivitäten, analog zu Tastenklicks oder Mausbewegungen. LoadRunner gibt es auch in cloudoptimierten Varianten.

#5. LoadStorm

CustomerCentrix hat eine skalierbare, cloudbasierte Testplattform für Online- und mobile Anwendungen erstellt. Es eignet sich für Anwendungen mit hohem täglichen Datenverkehr und simuliert eine große Anzahl virtueller Benutzer, um Lasttests in Echtzeit durchzuführen. Wichtige Aspekte sind Skalierbarkeitsprüfungen von Web- und Mobilanwendungen sowie das Reporting für Leistungsstatistiken unter Lasttests.

#6. NeoLoad

Die Last- und Stresstests von Neotys für Web- und Mobilanwendungen wurden speziell entwickelt, um Apps vor der Veröffentlichung für DevOps und Continuous Delivery zu testen. Das Tool kann von einem IT-Team zur Überwachung von Web-, Datenbank- und Anwendungsservern verwendet werden. NeoLoad kann Millionen von Benutzern simulieren und Tests vor Ort oder in der Cloud durchführen.

Was ist der Unterschied zwischen Performance Testing und Performance Engineering?

Leistungstests und Leistungstechnik sind zwei unterschiedliche, aber verwandte Begriffe. Leistungstests sind ein Teilbereich der Leistungstechnik, der sich hauptsächlich mit der Bestimmung der aktuellen Leistung einer Anwendung unter verschiedenen Lasten befasst.

Um den Anforderungen einer schnellen Anwendungsbereitstellung gerecht zu werden, benötigen moderne Softwareteams eine ausgefeiltere Strategie, die neben herkömmlichen Leistungstests auch eine durchgängige, integrierte Leistungsentwicklung umfasst. Das Testen und Optimieren von Software zum Erreichen eines bestimmten Leistungsziels wird als Performance Engineering bezeichnet. Performance Engineering findet viel früher im Softwareentwicklungsprozess statt und zielt darauf ab, Leistungsprobleme von Anfang an zu verhindern.

Was sind die verschiedenen Arten von Leistungstests?

Es gibt fünf Hauptformen von Leistungstests:

  • Kapazitätstest.
  • Belastungstest.
  • Volumentests.
  • Stresstest.
  • Einweichtest.

Was ist ein Leistungstestzyklus?

Der Performance Testing Life Cycle ist ein methodischer Ansatz zum nichtfunktionalen Testen eines Softwaresystems oder einer Anwendung. Die meisten Softwareunternehmen verwenden diese Technik, um Leistungstestaktivitäten zu planen und Leistungsengpässe in Softwaresystemen zu identifizieren.

Welcher Faktor beeinflusst Leistungstests?

Die folgenden Elemente beeinflussen Leistungstests:

  • Durchsatz 
  • Reaktionszeit
  • Latency
  • Tuning
  • Benchmarking
  • Kapazitätsplanung 

Wie werden Leistungstests durchgeführt?

Leistungstests können quantitative Tests umfassen, die in einem Labor oder in einer Produktionsumgebung durchgeführt werden. Leistungstests sollten Anforderungen identifizieren und testen. Typische Kriterien sind beispielsweise Verarbeitungsgeschwindigkeit, Datenübertragungsraten, Netzwerkbandbreite und -durchsatz, Workload-Effizienz und Zuverlässigkeit.

Was ist der Zweck des Leistungstests?

Die Untersuchung der Reaktionsfähigkeit und Stabilität eines Systems unter einer bestimmten Arbeitslast wird als Leistungstest bezeichnet. In der Regel werden Leistungstests durchgeführt, um Geschwindigkeit, Belastbarkeit, Zuverlässigkeit und Anwendungsgröße zu bewerten. Der Zweck von Leistungstests besteht darin, Leistungsengpässe in Softwareanwendungen zu erkennen und zu beseitigen und so zur Sicherung der Softwarequalität beizutragen.

Wie führt man einen Leistungstest durch?

Die Durchführung von Leistungstests umfasst die folgenden Schritte:

  • Identifizieren Sie die Testumgebung und die Tools
  • Definieren Sie akzeptable Leistungskriterien
  • Planen und entwerfen Sie Tests
  • Bereiten Sie eine Testumgebung und Tools vor
  • Führen Sie die Leistungstests aus.
  • Lösen und erneut testen.

Zusammenfassung

Leistungstests sind eine Art Softwaretest, der sich darauf konzentriert, wie ein System unter einer bestimmten Last funktioniert. Ich bin zuversichtlich, dass Ihnen diese Lektion eine Fülle von Informationen über Leistungstests und die Durchführung eines erfolgreichen Leistungstests mit unserer oben beschriebenen bewährten Strategie geliefert hat.

Bibliographie

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *

Das Könnten Sie Auch Interessieren