Olivier Le Moal - Fotolia
Die drei wichtigsten Ziele für Software-Performance-Tests
Beim Testen der Anwendungsleistung müssen Faktoren wie Ergebnisanalyse, Messverfahren und Testdesign berücksichtigt werden. Die wichtigsten Ziele im Überblick.
Es ist kein Geheimnis: Langsame Anwendungen sind bei Benutzern wenig beliebt. Und wenn eine Software auch noch zeitweise oder gar dauerhaft abstürzt, werden Anwender sie wahrscheinlich in Zukunft nicht mehr einsetzen.
Machen Entwickler Leistungstests, besteht ihr Hauptziel darin, herauszufinden, wo eine Anwendung langsamer wird oder abstürzt. In der Regel treten Leistungsprobleme in unterschiedlichen Mustern auf. Diese können Tester erkennen, nachdem sie die Ergebnisse von mehreren Leistungstests analysiert haben.
Performance-Tests sind wichtig für den Erfolg einer Anwendung. Tester führen diese allerdings häufig nur nach Gefühl während Funktions- und Regressionstests aus – wenn sie überhaupt testen. Das kann bedeuten, dass ein Qualitätssicherungsexperte einfach die Zeit stoppt oder manuell testet, ob eine Seite geladen wird oder langsamer als erwartet funktioniert. Eine wissenschaftliche oder quantifizierbare Methode für diese Form der Leistungsprüfung gibt es nicht.
Leistungstests müssen aber nicht so fragwürdig sein, wie eben dargestellt. Tester können die Softwarequalität verbessern, indem sie Leistungstests gleichzeitig mit oder unmittelbar nach Funktions-, Feature- oder Story-Tests entwickeln und ausführen. Um Leistungstests zu erstellen, die die Qualität der Software signifikant prüfen, sollte man folgende Punkte beachten.
1. Ziel von Leistungstests: Erkenntnisse gewinnen
Das Hauptziel von Leistungstests ist, Erkenntnisse auf Basis der Analyse der Testergebnisse zu gewinnen. Viele Softwareentwicklungsteams erstellen Leistungstests und führen diese mit Anwendungen durch, versäumen es aber, die Ergebnisse vollständig zu analysieren. Oft überprüfen Unternehmen nur die Ladezeiten von Seiten oder suchen nach allgemeinen Ladeproblemen.
In vielen Fällen entwickelt ein Team Tests im laufenden Betrieb ohne Design-Input eines Experten für Performance-Tests. Oft beschränkt sich dies auf simple Ladetests. Wenn Sie aber nur testen, wie schnell die Seite geladen wird, fehlen Ihnen alle anderen Funktionen. Hier einige Beispiele:
- Wie lange dauert es, einen Datensatz auszuwählen und die nächste Seite zu laden?
- Wie lange dauert es innerhalb einer Workflow-Funktion, um Daten nach dem Aktualisieren der Seite abzurufen und zurückzusenden?
- Wenn man zum Beispiel eine Adresse in einem Formular bearbeitet und dann die Änderung speichert: Wird die Seite mit der neuen Eingabe schnell geladen?
Diese Art von Tests geht über das bloße Testen der Ladezeit einer Seite hinaus. Sie testen in diesem Fall, wie der Benutzer die Leistung in der App selbst erfährt.
Bei der Erstellung von Performance-Test-Suiten sollten die Tester ebenfalls planen, Testfälle mindestens einmal pro Release-Zyklus auszuführen und die Ergebnisse vollständig zu analysieren. Auf diese Weise lässt sich feststellen, wo eine Anwendung ausfällt oder wo das Entwicklungsteam sie verbessern kann.
Wenn Entwickler Leistungstests für Anwendungen planen, sollten sie auch Zeit einplanen, um die Ergebnisse vollständig zu analysieren. Das Ausführen von Testskripten reicht nicht aus. Entwickler müssen die Ergebnisse durchdenken und Daten sammeln, die sie aktiv zum Verbessern der Anwendungen verwenden können.
Tools für Leistungstest sind nützlich, aber Tester müssen lernen, wie sie verwendet werden. Beispielsweise müssen sie wichtige Datenmetriken lesen können, die ein Tool ausgibt. Ein Unternehmen muss sich entscheiden, ob es lieber in ein Tool investieren möchte oder einfach in einen Entwickler investiert, der eine Suite für Leistungstests erstellen kann. Entwickler können eine Testsuite generieren, die sich auf ihr Wissen über den Code der Anwendung und die Verbindungen der Anwendung wie APIs und Datenbanken stützt.
2. Ziel von Leistungstests: Messungen definieren
Die IT-Abteilung muss festlegen, was für die Anwendung schnell genug ist, um jede Funktion auszuführen. Und analog muss sie definieren, was schnell genug ist, damit Seiten geladen und Datenanforderungen erfüllt werden. Diese Messungen geben Aufschluss über die Qualität der Software.
Beispielsweise muss eine Anwendung zum Planen von Flügen und Hotelaufenthalten viele Optionen für eine bestimmte Abfrage durchsuchen. Das Herunterladen von Daten darf jedoch nicht so lange dauern, dass die Software dem Benutzer keine zeitnahe Antwort geben kann. Die Leute warten nicht lange und ein ansprechendes Icon hilft hier auch nicht.
Softwareteams müssen entscheiden, wie schnell eine Anwendung funktionieren soll, und überprüfen, ob sie diese Ziele erreicht. Sobald Qualitätssicherungsexperten die Zielwerte kennen, müssen sie eine Performane-Test-Suite für jede gewünschte Funktion entwickeln und die Tests ausführen. Am besten führen sie die Tests ein- bis dreimal aus, um die grundlegenden Performance-Zahlen der Anwendung zu generieren. Die Baseline repräsentiert die typische App-Leistung und bietet einen Ausgangspunkt für den Vergleich nach Updates und Verbesserungen.
Tester können eine Baseline erhalten, indem sie reale Daten von Leistungstests sammeln. Das Team kann wählen, ob der Leistungstest bei jeder Code-Bereitstellung durchgeführt werden soll oder zu Beginn, in der Mitte und am Ende eines Release-Zyklus. Wenn ein Team die Ergebnisse analysiert, kann es überprüfen, ob die Anwendung die vordefinierten Messungen erfüllt hat. Wenn nicht, dann weiß das Team, wo der Anwendungscode verbessert werden muss.
Das Team kann die Leistungstests noch weiter verfeinern. Zum Beispiel können die Tester die Reaktionsgeschwindigkeit unter verschiedenen Belastungen überprüfen. Dies kann zum Beispiel eine kurze Benutzerspitze sein oder eine anhaltende hohe Benutzeraktivität. Die Qualitätssicherung kann auch nach Stabilitätsproblemen suchen, zum Beispiel, wenn die Anwendung unter erhöhter Last häufig abbricht. Diese Tests helfen außerdem dabei herauszufinden, unter welchen Bedingungen eine Anwendung die beste Leistung erbringt. Das Messen der Anwendungsleistung ist die einzige Möglichkeit, um zu erfahren, wie gut die Anwendung skaliert und Verbesserungen durchzuführen, bevor die Entwickler neuen Code freigeben.
3. Ziel von Leistungstests: Ein gründliches Test-Design erstellen
Zwar sind einige Tester der Meinung, dass die kostenlosen Add-Ons, die mit den meisten Tools geliefert werden, für Leistungstests ausreichen. Eine solche Auffassung ist allerdings weit von der Wahrheit entfernt. Leistungstests sind zu wichtig für den Erfolg der Anwendung. Die mit diesen Add-Ons erstellten Leistungstests bleiben oft hinter dem zurück, was die Tester zu erreichen hoffen.
Performance-Tests ohne richtige Planung zusammenzustellen oder vorgefertigte Tools zu verwenden, ist nicht die Lösung. Unternehmen sollten einen Entwickler mit spezifischem Domänenwissen einsetzen oder einem Entwicklungsteam und seinen Testern erlauben, gründliche und genaue Anwendungstests zu entwerfen und zu planen.
Ziehen Sie in Erwägung, Tests für bestimmte Funktionsmerkmale zu entwickeln. Oder erstellen Sie einen Test für jede wichtige Funktion in der Anwendung. Wie bei jeder Testentwicklung kann ein Experte für Qualitätssicherung vorhandene Funktionstests oder Regressionssuiten wiederverwenden und eine Reihe von priorisierten Optionen für Leistungstests erstellen.
Ein Performance-Tester oder Entwickler kann Tests nutzen, um einen genaueren Blick auf den Code zu werfen und Unit-Typ-Tests entwerfen, oder Unit-Tests integrieren, die jede Funktion ausführen. Fügen Sie Tests für API- und Datenbankverbindungen ein sowie für alle anderen Drittanbieter- und Backend-Verarbeitungs-Engines, die die Anwendung verwendet.
Das Testdesign steht gleichberechtigt neben den anderen Zielen von Leistungstests. Stellen Sie sicher, dass Entwickler und Qualitätssicherung genügend Zeit haben, um hochwertige Leistungstests zu erstellen. Sobald Sie über eine leistungsfähige Performance-Testsuite verfügen, können die Tester sie während der regelmäßigen Qualitätssicherung verwenden, sodass die Tests kontinuierlich einen geschäftlichen Nutzen bringen.
Die Anwendungsleistung ist ein wesentlicher Bestandteil des Geschäftserfolgs. Nehmen Sie die Performance ernst – und testen Sie gründlich.