AllgemeinPortfolio |

ISTQB Zertifizierung für Performanztests

Lara hat die ISTQB-Zertifizierung für Performanztests abgeschlossen und beleuchtet in diesem Beitrag die Grundlagen und wie diese Aktivitäten im ISTQB-Testprozess integriert werden.

Stetige Weiterentwicklung und Zertifizierungen sind ein wichtiger Bestandteil unserer Arbeit in Kundenprojekten. Ich habe die ISTQB-Zertifizierung für Performanztests abgeschlossen und beleuchte in diesem Beitrag die Grundlagen und wie diese Aktivitäten im ISTQB-Testprozess integriert werden. Insbesondere wird der Fokus auf die Identifikation und Erstellung von Nutzungsprofilen sowie die Ausarbeitung von Lastprofilen gelegt. Durch die richtige Anwendung verschiedener Performanztestarten wird die Reaktionsfähigkeit des Systems unter unterschiedlichen Belastungen bewertet. Schließlich wird die Analyse der Testergebnisse und die Berichterstattung betrachtet, um fundierte Empfehlungen für die Optimierung des Systems abzuleiten.

Grundlagen Performanztests

Die Performanz eines Systems ist ein wesentlicher Aspekt, um Usern ein „gutes Gefühl“ zu bieten. Im Standard ISO 25010 ist Performanz im Produktqualitätsmodell als nicht-funktionales Qualitätsmerkmal mit drei Teilmerkmalen kategorisiert:

  • Zeitverhalten: Der Grad, zu dem eine Komponente oder ein System ihre erforderlichen Funktionen innerhalb der erforderlichen Antwortzeiten, Verarbeitungszeiten und Durchsatzraten erfüllen kann.
  • Ressourcennutzung: Der Grad, bis zu dem die Ressourcen gemäß den in den Anforderungen definierten Mengen und Arten genutzt werden können, wenn eine Komponente oder ein System ihre bzw. seine Funktionen ausführt.
  • Kapazität: Der Grad, zu dem die Höchstgrenzen eines Komponenten- oder Systemparameters Anforderungen erfüllen.

Die Priorisierung dieser Teilmerkmale hängt von den ermittelten Risiken und den Bedürfnissen der verschiedenen Stakeholder ab. Bei der Analyse der Testergebnisse können weitere Risikobereiche identifiziert werden, die zu berücksichtigen sind.

Performanztestaktivitäten

Die Performanztestaktivitäten orientieren sich an den Phasen des ISTQB Testprozesses und werden je nach Art des verwendeten Entwicklungsmodell unterschiedlich organisiert und durchgeführt. Unabhängig vom verwendeten Entwicklungsmodell können verschiedene Testarten für Performanztests verwendet werden. Die wichtigsten sind der statische und dynamische Test. Der statische Test beinhaltet die manuelle Prüfung der Arbeitsergebnisse, dynamische Tests dagegen erfordern die Ausführung der Software.

Statischer und dynamischer Performanztest

Statische Testaktivitäten sind bei Performanztests oft wichtiger als bei Funktionstests. Grund dafür ist, dass viele kritische Performanzfehler in der Architektur und dem Entwurf des Systems begründet sind. Ist die Performanz für ein System ausschlaggeben, sollte dies auch Leitsicht in der Architektur sein.

Dynamische Testaktivitäten sollten im Laufe der Softwareentwicklung so frühzeitig wie möglich begonnen werden. Schon in der Komponentenstufe können potenzielle Engpässe ermittelt und die Ressourcennutzung kann bewertet werden. Im Systemintegrationstests werden Performanztests mit dem gesamten System, das für die Produktionsumgebung repräsentativ ist, durchgeführt. Abschließend erfolgt der Abnahmetest, um zu validieren, dass die Performanz des Systems die ursprünglich spezifizierten Userbedürfnisse und Abnahmekriterien erfüllt.

Nutzungsprofile identifizieren und erstellen

Nutzungsprofile definieren unterschiedliche Interaktionsmuster mit einer Anwendung. Sie ermöglichen einen wiederholbaren, schrittweisen Ablauf durch die Anwendung für eine bestimmte Verwendung des Systems. Das Aggregieren dieser Nutzungsprofile führt zu einem Lastprofil (im Allgemeinen als Szenario bezeichnet).

Nutzungsprofile identifizieren und erstellen

Zuerst werden die vorhandenen Daten identifiziert. Verschiedene Arten von Benutzer-Personas und ihre Rollen werden bestimmt. Diesen werden generische Aufgaben zugeordnet, die von diesen Benutzern/Rollen ausgeführt werden. Abschließend wird die geschätzte Anzahl von Benutzer für die jeweilige Rolle/Aufgabe pro Zeiteinheit erfasst. Diese Angaben sind besonders für das spätere Erstellen der Lastprofile hilfreich.

Die dafür benötigten Daten können auf verschiedene Arten gesammelt werden. Beispielsweise durch Durchführung von Interviews oder Workshops mit Stakeholdern wie Product-Owner, Vertriebsmanager und Endbenutzern. Funktionale Spezifikationen und Anforderungen können auf beabsichtigte Nutzungsmuster, Nutzertypen und deren Nutzungsprofile durchsucht werden. Eine weitere Informationsquelle kann die Auswertung von Nutzungsdaten und Metriken aus ähnlichen Anwendungen darstellen, aus denen erfasste Überwachungsdaten, Logs und Nutzungsdaten analysiert werden können.

Lastprofil

Ein Lastprofi spezifiziert die Arbeitslast, die eine zu testende Komponente oder ein zu testendes System in der Produktion erfahren könnte. Das Lastprofil besteht aus einer bestimmten Anzahl von Instanzen (virtuellen Benutzern), die die Aktionen vordefinierter Nutzungsprofile über einen bestimmten Zeitraum ausführen. Folgende Informationen sind zur Erstellung eines realistischen und wiederholbaren Lastprofils erforderlich:

  • Performanztestziel (z.B. Bewertung des Systemverhaltens unter Stresslasten)
  • Nutzungsprofile, die individuelle Nutzungsmuster genau darstellen
  • Mengen- und Zeitverteilung, mit der die Nutzungsprofile ausgeführt werden sollen
    • Ramp-up: Stetig zunehmende Last (z.B. einen virtuellen Benutzer pro Minute hinzufügen)
    • Ramp-down: Stetig abnehmende Last
    • Stufen: Augenblickliche Änderungen der Last (z.B. alle fünf Minuten 100 virtuelle Benutzer hinzufügen)

Performanztestarten

Das erstellte Lastprofil wird schließlich zu einem Performanztest ausgearbeitet. Der Begriff Performanztest ist hierbei der Oberbegriff für jegliche Art von Tests, die auf die Performanz (Reaktionsfähigkeit) des Systems oder einer Komponente unter unterschiedlicher Last ausgerichtet sind. Es lassen sich verschiedene Arten von Performanztests definieren. Jede dieser Arten kann je nach den Testzielen bei einem bestimmten Projekt angewendet werden:

Performanztestarten

Analyse der Ergebnisse und Berichterstattung

Funktionale Tests profitieren in der Regel von genau definieren Testorakeln, da die erwarteten Ergebnisse normalerweise klar definiert sind und die Testergebnisse eindeutig interpretiert werden können. Die Anforderungen an die Performanz bilden die Grundlage für die Analyse der Tests. Die im Voraus definierten Metriken legen fest, was im Testlauf gemessen werden muss. Die gesammelten Messdaten der Tests werden daraufhin mit den Zielen der Performanztests verglichen.
Typischerweise werden die folgenden Daten analysiert:

Analyse der Ergebnisse und Berichterstattung

Grafische Darstellungen erleichtern das Sichten der Daten und das Erkennen von Trends. Um aussagekräftige Metriken zu erhalten, sollten verschiedene Werte in Relation gesetzt werden. Die Metrik der Antwortzeit kann beispielsweise in Hinblick auf die Tageszeit, die Anzahl gleichzeitiger Benutzer, die zu verarbeitende Datenmenge usw. genauer definiert sein.

Die Ergebnisse der Tests werden zunächst mit den Zielen der Performanztests verglichen. Sobald das Verhalten verstanden wurde, können Schlussfolgerungen gezogen werden, welche einen aussagekräftigen Bericht einschließlich von Empfehlungen ergeben. Es können beispielsweise Empfehlungen für technische Änderungen ausgesprochen werden, wie die Neukonfiguration von Hardware, Software oder der Netzwerkinfrastruktur. Bereiche für weitere Analysen und für zusätzliche Überwachung können ebenfalls identifiziert werden.

Ein effektives Performanztestverfahren ist entscheidend, um sicherzustellen, dass IT-Systeme den Anforderungen und Erwartungen der User gerecht werden. Wenn Sie sich fragen, wie sie Performanztests optimal in Ihren Entwicklungsprozess integrieren können, zögern Sie nicht, mit uns ins Gespräch zu treten.