Übersicht
Softwarequalität wird auf der Basis verschiedener Dimensionen bewertet. Dazu gehören Zuverlässigkeit, Funktionalität
und Leistung (siehe Konzept:
Qualitätsdimensionen). Das Auslastungsanalysemodell (siehe Auslastungsanalysemodell) wird erstellt, um die verschiedenen
Variablen, die sich auf die Leistung einer Anwendung oder eines Systems auswirken, und die Messgrößen zu identifizieren
und zu definieren, die für die Bewertung der Leistung erforderlich sind. Die Auslastungsprofile, aus denen sich das
Modell zusammensetzt, sind Kandidaten für Bedingungen, die mit den Testzielelementen in einer oder mehreren
Testumgebungskonfigurationen simuliert werden können. Das Auslastungsanalysemodell wird von den folgenden Rollen
verwendet:
-
Der Testanalytiker (siehe Rolle:
Testanalytiker) verwendet das Auslastungsanalysemodell, um Testideen zu identifizieren und Testfälle für
unterschiedliche Tests zu definieren.
-
Der Testdesigner (siehe Rolle:
Testdesigner) verwendet das Auslastungsanalysemodell, um einen angemessenen Testansatz zu definieren und die
Testfähigkeitsanforderungen für die unterschiedlichen Tests zu identifizieren.
-
Der Tester (siehe Rolle: Tester) verwendet das Auslastungsanalysemodell, u m die
Ziele des zu implementierenden Tests besser zu verstehen, den Test auszuführen und die Testausführung ordnungsgemäß
zu analysieren.
-
Der Benutzervertreter (siehe Rolle:
Stakeholder) verwendet das Auslastungsanalysemodell, um die Angemessenheit der Arbeitslast und die Tests zu
bewerten, die erforderlich sind, um das Systemverhalten auf der Basis dieses Auslastungsanalysemodells effektiv
einzuschätzen.
Die Informationen im Auslastungsanalysemodell beziehen sich primär auf die Eigenschaften und Attribute in den folgenden
Bereichen:
-
Anwendungsfallszenarios (oder Instanzen, siehe Arbeitsergebnis: Anwendungsfall), die während der Tests
ausgeführt und ausgewertet werden sollen.
-
Akteure (siehe Arbeitsergebnis: Akteur), die während der Tests simuliert bzw.
emuliert werden sollen.
-
Auslastungsprofil, das die Anzahl und den Typ simultaner Akteurinstanzen, die von diesen Akteurinstanzen
ausgeführten Anwendungsfallszenarios und die Onlineantworten oder den Durchsatz der einzelnen
Anwendungsfallszenario darstellt.
-
Testumgebungskonfiguration (tatsächlich, simuliert oder emuliert), die für die Ausführung und Auswertung der Tests
verwendet werden sollen (siehe Arbeitsergebnis: Testumgebungskonfiguration). Schauen Sie sich
auch das Softwarearchitekturdokument, die Deployment-Sicht, an, die die
Basis für die Testumgebungskonfiguration bilden sollte.
Mit Tests sollen die Eigenschaften und das Verhalten des Testziels unter verschiedenen Lasten gemessen und ausgewertet
werden. Wenn Design, Implementierung und Ausführung dieser Tests erfolgreich sein sollen, müssen sowohl realistische
als auch Ausnahmedaten für diese Auslastungsprofile identifiziert werden.
Bei der Auswahl von Szenarios für diesen Typ von Test müssen zwei Aspekte berücksichtigt werden:
-
Kritische Anwendungsfälle enthalten die Schlüsselanwendungsfallszenarios, die
in den Tests gemessen und ausgewertet werden müssen.
-
Relevante Anwendungsfälle enthalten Anwendungsfallszenarios, die sich auf
das Verhalten der kritischen Anwendungsfallszenarios auswirken können.
Es werden unter Umständen nicht alle Anwendungsfallszenarios, die im Testziel implementiert werden, für diese Tests
benötigt. Zu den kritischen Anwendungsfällen gehören Anwendungsfallszenarios, die im Mittelpunkt des Tests stehen, d.
h. ihr Verwalten wird gemessen und ausgewertet.
Zum Identifizieren kritischer Anwendungsfälle müssen Sie die Anwendungsfallszenarios identifizieren, die mindestens
einem der folgenden Kriterien entsprechen:
-
Erfordern eine Messung und Bewertung auf der Basis des Auslastungsprofils.
-
Werden häufig von einem oder mehreren Endbenutzern (Akteurinstanzen) ausgeführt.
-
Machen einen hohen Prozentsatz der Systemverwendung aus.
-
Verbrauchen erhebliche Systemressourcen.
Listen Sie die Scanner für kritische Anwendungsfälle auf, die in den Tests berücksichtigt werden müssen. Wenn diese
identifiziert werden, muss der Ereignisablauf des Anwendungsfalls geprüft werden. Beginnen Sie damit, die spezifische
Ereignisabfolge zwischen dem Akteur (Typ) und dem System zu identifizieren, wenn das Anwendungsfallszenario ausgeführt
wird.
Stellen (oder überprüfen) Sie außerdem die folgenden Informationen zusammen:
-
Vorbedingungen für die Anwendungsfälle, z. B. Zustand der Daten (welche Daten müssen/dürfen nicht existieren) und
Zustand des Testziels.
-
Daten, die konstant (dieselben) bleiben oder in den einzelnen Anwendungsfallszenarios verschieden sein müssen.
-
Beziehung zwischen dem Anwendungsfall und anderen Anwendungsfällen, z. B. die Reihenfolge, in der die
Anwendungsfälle ausgeführt werden müssen.
-
Die Häufigkeit der Ausführung des Anwendungsfallszenarios, einschließlich der Merkmale, wie z. B. Anzahl simultaner
Instanzen des Anwendungsfalls und Prozentsatz der Gesamtlast, den jedes Szenario für das System darstellt.
Anders als kritische Anwendungsfallszenarios, deren Schwerpunkt auf dem Test liegt, sind relevante
Anwendungsfallszenarios solche, die sich auf das Leistungsverhalten der kritischen Anwendungsfallszenarios auswirken
können. Relevante Anwendungsfallszenarios entsprechen mindestens einem der folgenden Kriterien:
-
Sie müssen vor oder nach einem kritischen Anwendungsfall ausgeführt werden (abhängige Vorbedingung oder
Nachbedingung).
-
Sie werden häufig von einer oder mehreren Akteurinstanzen ausgeführt.
-
Sie machen einen hohen Prozentsatz der Systemverwendung aus.
-
Sie erfordern erhebliche Systemressourcen.
-
Sie werden routinemäßig im eingesetzten System ausgeführt, während kritische Anwendungsfallszenarios ausgeführt
werden, z. B. E-Mail- oder Hintergrunddruckfunktionen.
Wenn Sie die relevanten Anwendungsfallszenarios identifiziert und aufgelistet haben, überprüfen Sie den Ereignisablauf
des Anwendungsfalls und die zusätzlichen Informationen, wie Sie es für die kritischen Anwendungsfallszenarios getan
haben.
Für erfolgreiche Leistungstests müssen Sie nicht nur die Akteure identifizieren, die die kritischen und relevanten
Anwendungsfallszenarios ausführen, sondern auch das Akteurverhalten simulieren bzw. emulieren. Das bedeutet, eine
Instanz eines Akteurs kann mit dem Testziel unterschiedlich interagieren (länger brauchen, um auf Aufforderungen zu
reagieren, unterschiedliche Datenwerte eingeben usw.), während dasselbe Anwendungsfallszenario von einer anderen
Instanz dieses Akteurs ausgeführt wird. Schauen Sie sich die folgenden einfachen Anwendungsfälle an:
Akteure und Anwendungsfälle für einen Bankautomaten
Die erste Instanz des Akteurs "Kunde", die ein Anwendungsfallszenario ausführt, kann ein erfahrener
Geldautomatenbenutzer sein, während eine andere Instanz von "Kunde" im Umgang mit Geldautomaten unerfahren sein kann.
Der erfahrene Kunde navigiert schnell durch die Benutzerschnittstelle des Geldautomaten und verbringt wenig Zeit mit
dem Lesen der einzelnen Aufforderungen, sondern drückt die Tasten routinemäßig. Der unerfahrene Kunde hingegen liest
jede Aufforderung und benötigt zusätzliche Zeit, um die Informationen zu interpretieren, bevor er reagiert.
Realistische Auslastungsprofile spiegeln diesen Unterschied wider, um zu einer genauen Bewertung des Testzielverhaltens
zu gelangen.
Beginnen Sie mit der Identifizierung der Akteur für jedes der zuvor beschriebenen Anwendungsfallszenarios.
Identifizieren Sie anschließend die unterschiedlichen Akteurprofile, die die beiden Anwendungsfallszenarios ausführen
könnten. Im GA-Beispiel könnten Sie die folgenden Akteurstereotypen haben:
-
Erfahrener GA-Benutzer
-
Unerfahrener GA-Benutzer
-
Konto des GA-Benutzers befindet sich "innerhalb" des GA-Bankennetzes (Benutzerkonto ist bei der Bank, der der GA
gehört)
-
Konto des GA-Benutzers befindet sich außerhalb des GA-Bankennetzes (Konkurrenzbank)
Identifizieren Sie für jedes Akteurprofil die unterschiedlichen Attribute und ihre Werte, z. B.:
-
Bedenkzeit - Die Zeit, die es dauert, bis ein Akteur auf die einzelnen Aufforderungen eines Testziels reagiert.
-
Eingabegeschwindigkeit - Die Geschwindigkeit, mit der der Akteur mit der Schnittstelle interagiert.
-
Anforderungsgeschwindigkeit - Die Geschwindigkeit, mit der der Akteur Anforderungen an das Testziel stellt.
-
Wiederholungsfaktor - Wie oft ein Anwendungsfall oder eine Anforderung nacheinander wiederholt wird.
-
Interaktionsmethode - Die vom Akteur verwendete Interaktionsmethode, z. B. die Tastatur für die Eingabe von Werten,
das Navigieren zu einem Feld, die Verwendung von Direktaufruftasten usw. oder die Verwendung der Maus zum "Zeigen
und Klicken" "Ausschneiden und Einfügen" usw.
Identifizieren Sie außerdem für jedes Akteurprofil das Auslastungsprofil und geben Sie alle Anwendungsfallszenarios,
die sie ausführen, und den Prozentsatz der Zeit oder den Anteil des Aufwands an, den der Akteur für die Ausführung
dieser Szenarios aufbringen muss. Diese Informationen werden verwendet, um eine realistische Arbeitslast zu
identifizieren und zu erstellen (siehe Attribute "Last und Lastattribute").
Die spezifischen Attribute und Variablen der Testumgebungskonfiguration, die die Umgebung eindeutig kennzeichnen,
müssen ebenfalls identifiziert werden, da sich auch diese Attribute auf die Messung und Auswertung des Verhaltens
auswirken. Zu diesen Attributen gehören:
-
Physische Hardware (CPU-Geschwindigkeit, Hauptspeicher, Platten-Cache usw.)
-
Deployment-Architektur (Anzahl der Server, Verteilung der Verarbeitung usw.)
-
Netzattribute
-
Andere Software (und Anwendungsfälle), die simultan mit dem Testziel installiert und ausgeführt wird
Identifizieren und listen Sie die Systemattribute und Variablen auf, die in den Tests berücksichtigt werden müssen.
Diese Informationen können verschiedenen Quellen entnommen werden, z. B.:
Wie bereits erwähnt, ist die Auslastung ein wichtiger Faktor, der sich auf das Verhalten des Testziels auswirkt. Eine
akkurate Beschreibung des Auslastungsprofils, das für die Bewertung des Zielverhaltens verwendet wird, ist von
entscheidender Bedeutung. Auslastungstests werden normalerweise mehrfach mit unterschiedlichen Auslastungsprofilen
durchführt. Diese Auslastungsprofile stellen jeweils eine Variante der im Folgenden genannten Attribute dar:
-
Anzahl der Akteurinstanzen, die gleichzeitig mit dem Testziel interagieren
-
Profil der Akteure, die mit dem Testziel interagieren
-
Anwendungsfallszenarios, die von den einzelnen Akteurinstanzen ausgeführt werden
-
Häufigkeit und Wiederholung kritischer Anwendungsfallszenarios
Identifizieren Sie für jedes Auslastungsprofil, das für die Bewertung der Leistung des Testziels verwendet wird, die
Werte für jede der oben genannten Variablen. Die für die einzelnen Variablen unter den verschiedenen Lasten verwendeten
Werte, können durch Beobachtung oder Interview der Akteure oder aus dem Geschäftsanwendungsfallmodell (sofern
verfügbar) ermittelt werden. Es ist üblich, dass mindestens eines der folgenden Auslastungsprofile definiert wird:
-
Optimal - Ein Auslastungsprofil, das die bestmöglichen Deployment-Bedingungen darstellt, z. B. eine minimale Anzahl
von Akteurinstanzen, die mit dem System interagieren, die nur die kritischen Anwendungsfallszenarios mit nur
minimaler zusätzlicher Software und Arbeitslast während der Testausführung interagieren.
-
Durchschnitt (Normal) - Ein Auslastungsprofil, das die erwartete oder tatsächliche durchschnittliche Verwendung
darstellt.
-
Spontane Spitze - Ein Auslastungsprofil, das die erwartete oder tatsächliche spontane Spitzenauslastung darstellt,
die während des Normalbetriebs kurzfristig auftritt.
-
Spitze - Ein Auslastungsprofil, das die erwartete oder tatsächliche Spitzenauslastung darstellt, z. B. eine
maximale Anzahl von Akteurinstanzen, die Anwendungsfallszenarios in großem Umfang mit viel zusätzlicher Software
und Arbeitslast während des Tests ausführen.
Wenn die Auslastungstests Stresstests beinhalten (siehe Konzept:
Leistungstest und Technik:
Testtypen), müssen mehrere zusätzliche Lasten identifiziert werden. Jede dieser Lasten muss sich auf spezielle
Aspekte des Systems in abnormalen oder unerwarteten Zuständen konzentrieren, die die vom eingesetzten System
normalerweise erwartete Kapazität übersteigen.
Auslastungstests können nur erfolgreich sein, wenn die Tests gemessen und die Auslastungsverhalten ausgewertet werden.
Beim Identifizieren von Auslastungsmessungen und -kriterien müssen die folgenden Faktoren berücksichtigt werden:
-
Welche Messungen sollen vorgenommen werden?
-
Welches sind die kritischen Messpunkte im Testziel bzw. in der Anwendungsfallausführung und wo?
-
Welche Kriterien sollen für die Bestimmung eines akzeptablen Leistungsverhaltens verwendet werden?
Leistungsmessungen
Während der Testausführung können viele verschiedene Messungen durchgeführt werden. Identifizieren Sie die relevanten
Messungen und begründen Sie, warum dies die wichtigsten sind.
Im Folgenden finden Sie eine Liste mit Verhalten, die in der Regel überwacht und erfasst werden:
-
Testscriptzustand bzw. -status - Eine grafische Darstellung des aktuellen Zustands, Status oder Fortschritts der
Testausführung.
-
Antwortzeit/Durchsatz - Messung (bzw. Berechnung) der Antwortzeiten oder des Durchsatzes (gewöhnlich ausgedrückt
als Transaktionen pro Sekunde).
-
Traces - Erfassung der Nachrichten/Dialoge zwischen dem Akteur (Testscript) und dem Testziel
oder dem Datenfluss und/oder dem Prozessfluss.
Weitere Informationen hierzu finden Sie in Technik:
Schlüsselmesswerte des Tests.
Kritische Leistungsmesspunkte
In den Abschnitten "Anwendungsfälle" und "Anwendungsfallattribute" oben wurde beschrieben, dass nicht alle
Anwendungsfälle und ihre Szenarios für Leistungstests ausgeführt werden. Ebenso werden nicht alle Leistungsmessungen
für jedes ausgeführte Anwendungsfallszenario vorgenommen. Gewöhnlich werden nur spezielle Anwendungsfallszenarios für
Messungen herangezogen, oder es kann eine spezielle Abfolge von Ereignissen in einem bestimmten Anwendungsfallszenario
verwendet werden, um das Leistungsverhalten zu bewerten. Achten Sie darauf, für die Messung von Leistungsverhalten, die
Start- und Endpunkte auszuwählen, die am wichtigsten sind. Die wichtigsten Start- und Endpunkte sind die, an denen die
Ereignisfolgen am besten sichtbar sind, oder die, die durch Änderungen der Software oder Hardware direkt beeinflusst
werden können.
Im GA-Anwendungsfall "Bargeld abheben" könnten Sie beispielsweise die Leistungsmerkmale der gesamten
Anwendungsfallinstanz ab dem Punkt, an dem der Akteur die Operation einleitet, bis zu dem Punkt messen, an dem der
Anwendungsfall beendet ist, d. h. wenn der Akteur seine Scheckkarte zurück erhält und der Geldautomat eine neue Karte
annehmen kann. Dieser Fall wird durch die schwarze Linie ("Insgesamt abgelaufene Zeit") dargestellt.
Beachten Sie jedoch, dass es viele Ereignisfolgen gibt, die zur insgesamt abgelaufenen Zeit beitragen. Einige dieser
Folgen können Sie steuern (z. B. das Lesen der Karteninformationen, das Prüfen des Kartentyps, das Herstellen der
Verbindung zum Bankensystem, Elemente B, D und E), andere nicht (z. B. den Akteur, der seine PIN eingibt oder die
Aufforderungen erst liest, bevor er den Auszahlungsbetrag eingibt, Elemente A, C und F). Im obigen Beispiel könnten Sie
zusätzlich zur insgesamt abgelaufenen Zeit die Antwortzeiten für die Ereignisse B, D und E messen, da diese Ereignisse
für den Akteur am deutlichsten spürbar sind (und Sie sie über die Deployment-Software/Hardware beeinflussen können).
Kriterien für die Leistungsmessung
Nachdem Sie die kritischen Leistungsmessungen und Messpunkte identifiziert haben, müssen Sie die Leistungskriterien
überprüfen. Leistungskriterien werden in den ergänzenden Spezifikationen formuliert (siehe Arbeitsergebnis: Ergänzende Spezifikationen). Überarbeiten Sie die
Kriterien, sofern erforderlich.
Im Folgenden finden Sie eine Liste mit Kriterien, die häufig für Leistungsmessungen herangezogen werden:
-
Antwortzeit time (Onlineantwort)
-
Durchsatzrate
-
Antwortzeitperzentile
Das Hauptkriterium sind Onlineantwortzeiten, gemessen in Sekunden, oder die Transaktionsdurchsatzrate, gemessen in der
Anzahl der verarbeiteten Transaktionen (oder Nachrichten).
Wenn Sie beispielsweise den Anwendungsfall "Bargeld abheben" verwenden, kann dieses Kriterium wie folgt ausgedrückt
werden "Ereignisse B, D und E (siehe Abbildung oben) müssen innerhalb von 3 Sekunden (im Kombination 9 Sekunden)
erfolgen". Wenn während der Tests festgestellt wird, dass eines der mit B, D oder E identifizierten Ereignisse länger
als die angegebenen 3 Sekunden braucht, notieren Sie einen Fehler.
Perzentilmessungen werden mit Antwortzeiten und/oder Durchsatzraten kombiniert und werden verwendet, um Messungen, die
außerhalb der genannten Kriterien liegen, "statistisch zu ignorieren". Das Leistungskriterium für den Anwendungsfall
"Bargeld abheben" heißt jetzt: "für das 90-Prozent-Perzentil müssen die Ereignisse B, D und E jeweils innerhalb von 3
Sekunden erfolgen...". Wenn während der Testausführung festgestellt wird, dass 90 Prozent aller Leistungsmessungen
innerhalb der genannten Kriterien liegen, wird kein Fehler notiert.
|