Die Funktionalität eines Produktes ist heute zweifellos ein wichtiger und integraler Bestandteil des Testprozesses. Aber auch Reaktionszeit, Zuverlässigkeit, Ressourcennutzung und Skalierbarkeit spielen eine Rolle. Leistungstests sind eine separate Art von Tests, mit denen sichergestellt werden kann, dass Softwareanwendungen unter der erwarteten Arbeitsbelastung problemlos funktionieren.
Unter den Bedingungen für die Entwicklung automatisierter Tests gibt es eine Vielzahl vorgefertigter Tools, mit denen Lasten generiert, Skripte aufgezeichnet und nach einem Zeitplan ausgeführt werden können. Aber bevor Sie damit beginnen, müssen Sie die grundlegenden Konzepte von Leistung und die wichtigsten Parameter der Leistung kennen, und wissen, wie Sie sie beeinflussen können. Letztlich wird dadurch die Automatisierung von Lasten objektiver und Sie können die richtigen Daten verwenden, sinnvolle Szenarien entwerfen und die Ergebnisse kompetent analysieren.
Daher werden wir heute die folgenden Punkte berücksichtigen:
- was sollen wir testen
- technische Anforderungen und deren Arten
- Liste der Leistungstesten-Tools
- Ziele des Leistungstestens
- Leistungstests
- Lastmodelle
- Leistungskennzahlen
- Ursachen von Problemen
Was sollen wir testen?
Definitionen des Leistungstestens
Effizienz – eine Reihe von Attributen, die sich auf das Verhältnis zwischen dem Qualitätsniveau der funktionierenden Software und der Menge der verwendeten Ressourcen unter den gegebenen Bedingungen beziehen.
Effizienzmerkmale:
- Zeitverhalten – die Softwareattribute in Bezug auf die Reaktions- und Verarbeitungszeiten und die Ausführungsgeschwindigkeit ihrer Funktionen.
- Ressourcenverhalten – Attribute der Software in Bezug auf die Menge der verwendeten Ressourcen und die Dauer dieser Nutzung bei der Ausführung der Funktion.
Dies sind die 2 Merkmale, die wir versuchen, bei der Durchführung von Leistungstests zu überprüfen – ob die Art der Änderung mit Zeit und Ressourcen den Anforderungen entspricht
Wenn wir uns an die Grundlagen des Testdesigns erinnern, sollten wir wissen, dass die interessantesten Fehler an den Grenzen der Werte auftreten. Das interessanteste Verhalten des Systems beginnt also, wenn die Ressourcen nachlassen – CPU, Speichernetzwerk, Festplatte usw. Und wenn wir die Grenzwerte der Ressourcen erreichen, kommt es beim Server zu Leistungsproblemen und damit zu Funktionsproblemen.
Daher achten wir bei Leistungstesten einerseits auf Effizienz (Ressourcenverbrauch) und andererseits auf Funktionsdefekte, die auftreten, wenn die Grenzen der verfügbaren Server-Ressourcen erreicht sind.
Zuverlässigkeit – eine Reihe von Attributen, die sich auf die Fähigkeit der Software beziehen, ihr Leistungsniveau unter den gegebenen Bedingungen für einen bestimmten Zeitraum aufrechtzuerhalten.
Zuverlässigkeitsmerkmale:
- Stabilität (Reife) – Attribute der Software, die sich auf die Ausfallrate bei Softwarefehlern beziehen.
- Fehlertoleranz – Attribute der Software, die sich auf ihre Fähigkeit beziehen, ein bestimmtes Leistungsniveau bei Softwarefehlern oder -verletzungen aufrechtzuerhalten.
- Wiederherstellbarkeit – Softwareattribute in Bezug auf die Fähigkeit, das Leistungsniveau und die im Fehlerfall direkt beschädigten Daten wiederherzustellen, sowie den dafür erforderlichen Zeit- und Arbeitsaufwand.
Diese drei Merkmale sollten in Leistungstesten einbezogen werden, d.h. Leistungstesten ist Testen der Zuverlässigkeit + Testen der Effizienz unter Verwendung der gleichen Tools und der gleichen Datenanalyseansätze.
Technische Anforderungen
Die Anforderungen an die Vollständigkeit der Präsentation lassen sich in detaillierte und informelle Anforderungen unterteilen.
Detaillierte Anforderungen sind nicht immer gut, wie es scheinen mag, denn sie können den Tester entspannen. Informelle Anforderungen hingegen bieten mehr Freiraum für Kreativität. Am besten geeignet ist die Option mit unvollständig beschriebenen Anforderungen. Und streng eingehaltene Anforderungen werden Sie kaum sehen.
Drei grundlegende Komponenten der technischen Anforderungen:
- Lasterzeugung – die Last muss für Belastungstesten erzeugt werden;
- Überwachung der Leistungsmerkmale – Da die Serverlast hoch ist, ist es notwendig, eine ausreichend große Anzahl von Indikatoren zu lesen, und wenn Sie sie für die Analyse verwenden möchten, müssen Sie sie zuerst sammeln;
- Ergebnisanalyse – Mittelwertbildung verschiedener Parameter sowie Analyse schwerwiegender Auffälligkeiten (Anomalien).
Tools des Leistungstestens
Tools zur Lasterzeugung
Tools zur Lasterzeugung werden verwendet, um eine große Anzahl von Anfragen zu generieren, die Skripte zu schreiben und die letzten aufzuzeichnen/abzuspielen. Nachfolgend finden Sie eine Liste mit einigen der beliebtesten Tools.
- JMeter
- Grinder
- Multi-mechanize
- Gatling
- Tsung
- LoadUI
- Curl-loader
- BlazeMeter
- Blitz
- Load Impact
- LoadStorm
- SOASTA
Monitoring tools
Mit dieser Art von Tools können Sie das Hauptmerkmal – die Reaktionszeit – auf der Client-Seite und nicht auf dem Server messen.
- integrierte Tools
- Betriebssystem-Tools
- Mittel von Servern, DBMS
- spezialisierte Mittel
- Zabbix, Nagios, Hyper
Analyse von Ergebnistools
Wenn man über die Ergebnisanalyse bei Leistungstests spricht, bedeutet dies zunächst die Möglichkeit, verschiedene Diagramme zu erstellen. Folgende Tools können verwendet werden:
- integrierte Tools.
- Tabellenkalkulationen.
- Pakete für die statistische Datenverarbeitung.
Ziele des Leistungstestens
Einfach ausgedrückt lautet das Ziel des Leistungstests wie folgt: „Leistungsinformationen abrufen und den Interessengruppen zur Verfügung stellen, damit sie diese verwenden können, um einige Entscheidungen zu treffen“. Wie können diese Informationen weiter verwendet werden?
- Um die Einhaltung der Anforderungen zu überprüfen.
- Um verschiedene Versionen oder Systemkonfigurationen zu vergleichen.
- Um Engpässe zu erkennen.
Lastmodelle
Abhängig von der Art des Leistungstests sollten Sie eines der Standardlastmodelle kennen und verwenden.
Lastmodell – wie viele Auswirkungen Sie zu einem bestimmten Zeitpunkt auf das System haben müssen.
1. Konstante Last
Das bedeutet, dass wir über einen langen Zeitraum ungefähr die gleiche Anzahl von Anfragen senden. Und wir beobachten die Reaktionszeit, sie sollte während der gesamten Dauer der Last ungefähr konstant bleiben. Das Hauptziel der konstanten Last ist die Einhaltung der Reaktionszeit – sie sollte während dieser Zeit unverändert bleiben.
2. Kontinuierlich steigende Last
Im Gegensatz zum Vorgängermodell, bei dem es bei gleichmäßiger Last keine Probleme geben sollte, erwarten wir hier Probleme bei steigender Last. Das Hauptziel dieses Modells ist es, einen Sättigungspunkt zu finden, nach dem ernsthafte Probleme im System auftreten – Abweichungen vom erwarteten Verhalten (Ausfälle).
3. Konstante Last, nahe an der Grenze
Nach kontinuierlicher Erhöhung der Last sollten wir die Stabilität des Systems in Zuständen nahe dem kritischen Bereich überprüfen. Dazu müssen wir einen Wert von zwei Dritteln des kritischen Wertes nehmen und überprüfen, ob das System unter solchen Lasten stabil funktioniert. Und dann müssen wir den gleichen Test für einen Wert durchführen, der 10 Prozent niedriger ist als der kritische Wert. Der letzte ermöglicht es Ihnen, die Ressourcenlecks zu erkennen. Diese Art von Last bietet also das Stabilitätstesten des Systems unter Lasten, die nahe an den Grenzlasten liegen.
Belastungstests-Metriken
Metrik ist ein Standard zum Messen einer Computerressource. Metriken können sich entweder auf eine Ressource und Maßeinheiten oder auf die für diese Ressource gesammelten Daten beziehen.
Die beschriebenen Belastungstests-Metriken sind wichtige Leistungsindikatoren für Ihre Webanwendung oder Website. Reaktionsmetriken zeigen die Leistungsmessung aus der Benutzerperspektive, während Volumenmetriken den Datenverkehr zeigen, der vom Belastungstest-Tool für die Zielwebanwendung generiert wird. Die gängigsten Leistungskennzahlen sind unten aufgeführt:
- Reaktionszeit – die einfachste Kennzahl, eine lange Reaktionszeit – sowohl der Mittelwert als auch die einzelnen Anomalien und Abweichungen, die zu Verzögerungen führen.
- Anzahl der Ausfälle – Fehler auf dem Server aufgrund von Last.
- Ressourcenverbrauch – wie viele Ressourcen vom Server verbraucht werden.
Es gibt andere Leistungsindikatoren, die Sie je nach Projekt, Server, Anforderungen und Problemen messen können. Aber die oben beschriebenen Metriken sind die Kernwerte.
Ursachen von Problemen
Die folgenden Hauptgründe, die die Problemstellen sein können, sind bekannt.
- Mangel an Ressourcen – CPU-Zeit, RAM, Netzwerkbandbreite, Betriebszeit des Festplattensubsystems
- Nicht optimale Algorithmen – der Computer rechnet langsam, verwendet solche Algorithmen, was zu einer langen Rechenzeit führt
- Falscher Lastenausgleich – ein Server ist überlastet, während der andere Server unterlastet ist
- Falsches Ressourcen-Caching – häufig verwendete Daten verbrauchen so viele Ressourcen, als wenn wir sie zum Beispiel zum ersten Mal anfordern.
- Falsche Warteschlangenverwaltung – einer Anfrage werden mehr Ressourcen zugewiesen als einer anderen.
- Funktionsfehler – Bugs im Produkt können zu Leistungsproblemen führen
Zusammenfassung
Leistungstests schützen Investitionen vor Produktausfällen. Die Kosten für Leistungstests werden in der Regel durch eine verbesserte Kundenzufriedenheit und -bindung mehr als ausgeglichen.
Und in diesem Artikel haben wir die wichtigsten Aspekte behandelt, die Sie wissen sollten, um automatisierte Leistungstests Ihres Produkts zu erstellen. Leistungstests sind nicht von Natur aus schwierig. Berücksichtigen Sie zu Beginn die Grundlagen der Leistungstests, bewerten Sie das Benutzerverhalten und die Arbeitsabläufe und seien Sie auf reale Szenarien vorbereitet.
Über QAwerk
QAwerk ist ein ukrainisches Unternehmen, das Offshore-Testdienste auf Anfrage anbietet. Die Fachkenntnisse des Teams umfassen alle Teststufen und -methoden, die es ermöglichen, die Stabilität einzelner Einheiten und des Gesamtsystems zu überwachen, Integrationsmöglichkeiten bereitzustellen und ein positives Feedback Ihrer Kunden zu gewährleisten. Damit dient QAwerk als One-Stop-Shop für die Qualitätssicherung Ihres Projekts.
HELEN, QA
Software QA services take a significant role within the development process. Nowadays standards for soft products are high, and the only way to meet them is to perform comprehensive testing procedures.