ITGAIN Last- und Performancetester
Das Durchführen von Last- und Performancetests ist ein wichtiger Bereich in der Qualitätssicherung von Software. Es handelt sich um eine Disziplin, bei der die technischen und nicht die funktionalen Aspekte untersucht werden. Dies betrifft sowohl einzelne Anwendungen als auch komplexe Systeme mit vielen Komponenten.
Betrachtet werden das Zeitverhalten (Performance) und das Ressourcenverhalten (Effizienz) des zu prüfenden Systems während seiner Nutzung. Hier wird ermittelt, wie schnell Ergebnisse auf eine Anfrage geliefert werden und in welchem Umfang Zeit und Betriebsmittel zur Erfüllung einer Aufgabe benötigt werden.
Die Grundlage bilden festgelegte Konfigurationen und Szenarien, um Anwendungen unter spezifischen kontrollierten Bedingungen zu testen. Dies erfordert den Einsatz spezieller Werkzeuge, um alle relevanten Aspekte betrachten zu können. Je nach Entwicklungsstand des zu realisierenden Systems können auch frühzeitig schon aussagekräftige Ergebnisse ermittelt werden. Erkannte Probleme können so bereits kurz nach deren Entstehung behoben werden, bevor sie eine unerwünschte Grundlage für die späteren Stufen bilden. So ist es sinnvoll und richtig, eine bereits existierende Service-Schnittstelle zu untersuchen, bevor die darauf aufbauenden Komponenten, wie z.B. eine Anwendungsoberfläche, erstellt werden.
Grundsätzlich gilt zwar, dass bei Planung und Realisierung einer Anwendung berücksichtigt wird, was das System leisten muss und was ein Anwender bei dessen Nutzung erwarten darf. Aber wenn die Realität anders aussieht, ist mit hohen Kosten zu rechnen.
Tests in verschiedenen Varianten
Performance, Last, Stress, Skalierbarkeit und Ressourcenverbrauch – für jeden Aspekt wird ein spezifisches Testverfahren verwendet.
Im Performancetest wird untersucht, wieviel Zeit ein System benötigt, um auf eine Anforderung zu reagieren. Dies geschieht unter einem niedrigen Bearbeitungsvolumen. Das Ergebnis ist sozusagen die Bestzeit unter optimalen Bedingungen. Anhand dieses Benchmarks können dann die Messwerte aus den anderen Testverfahren in Relation gesetzt werden. Ressourcenprobleme sollten hierbei noch keine Rolle spielen.
Bei einem Lasttest wird das Testobjekt unter einer realistischen, zu erwartenden Auslastung untersucht. Dies ist der wichtigste nicht-funktionale Test, denn hier zeigt sich das Systemverhalten im Normalbetrieb. Zentrale Elemente sind hier das Nutzungsprofil und die daraus entwickelten Lastprofile, die den Mix und die Menge der verschiedenen, gleichzeitig zu bewältigenden Aufgaben definieren. In dem Service Level Agreement werden die Ziele festgelegt, die die Messwerte zu erfüllen haben.
Wenn es darum geht, eine Aussage des Verhaltens bei Überlast zu treffen, wird der Stresstest eingesetzt. Dies ist die Erweiterung eines Lasttests, bei der die Grenzen gesucht werden. Man erkennt, wie sich das Systemverhalten mit steigender Last verändert und wann und bei welcher Komponente es zuerst zu Einschränkungen oder Ausfällen kommt.
Qualitativ ähnliche Aussagen liefert der Skalierbarkeitstest. Er wird durchgeführt, um die Frage zu klären, welche zusätzlichen Ressourcen eingesetzt werden müssen, um zukünftige Erwartungen und wachsende Anforderungen erfüllen zu können. Dies ist wichtig für die Planung von Änderungen und Erweiterungen.
Die Untersuchung des Ressourcenverbrauchs kann bei allen zuvor aufgeführten Testarten parallel durchgeführt werden. Spezielle Werkzeuge erheben zahlreiche Metriken und zeigen so ein detailliertes Bild über vorhandene, genutzte und noch freie Ressourcen.
Diese Aufzählung ist nicht vollständig, gibt aber einen guten Überblick der wichtigsten einzusetzenden Testmethoden. So gibt es zum Beispiel für Geduldige noch den Dauerlast-Test und für Nervöse den Bounce-Test, die ebenfalls wichtige Testverfahren darstellen.
ITGAIN Lasttest-Experte
Nur, weil etwas richtig gemacht ist, heißt das noch nicht, dass es gut gemacht wurde. Mit solidem Wissen in den Bereichen Qualitätsmanagement, Qualitätssicherung, Softwaretest und Softwareentwicklung wirkt der ITGAIN Lasttester in unserem Team Qualitätsmanagement bzw. in Kundenprojekten mit. Die Tiefe der benötigten Kenntnisse ist stark vom Projektkontext, dem System under Test (SUT) und den eingesetzten Testwerkzeugen abhängig.
Aufgaben des Last- und Performancetesters
Zu den typischen Tätigkeiten unserer Testexperten gehören Analyse, Entwurf, Realisierung, Ausführung und Auswertung von Last- und Performancetests. Zusätzlich unterstützen sie die Projektleitung und das Testmanagement bei der Planung von Testaufgaben und der Überwachung der Aktivitäten.
Bei der Planung werden Konzepte und Empfehlungen zu geeigneten Testverfahren und den hierbei zu verwendenden Werkzeugen entwickelt. Dabei werden die erforderlichen Aufwände für Zeit, Personal, Software und weitere Ressourcen abgeschätzt und der Projektleitung sowie dem Testmanagement zur Verfügung gestellt.
Im Rahmen der Analyse erfolgt die Betrachtung der Einzelheiten eines Testobjektes. Gemeinsam mit Stakeholdern werden Testumfang und Inhalte festgelegt sowie Bedingungen definiert, unter denen die Tests durchgeführt werden sollen. Dabei werden Aspekte wie Testdaten, Testumgebung, Funktionsumfang sowie erforderliche Quell- und Zielsysteme betrachtet. Die Basis hierzu bilden Anforderungs- und Entwurfsdokumente, existierende Systeme, Mengengerüste und weitere verfügbare Informationen. Auch die erforderliche Testinfrastruktur mit ihren Elementen wird definiert. Gegebenenfalls müssen hierfür die Details für die technische Realisierbarkeit in einem Proof-of-Concept evaluiert werden.
Beim Entwurf werden die konkreten Testfälle und Testszenarien ausführlich dokumentiert. Dies beinhaltet die erforderlichen Eingaben und die erwarteten Ausgaben, notwendige Konfigurationen und die zu verwendenden Daten. Es können Varianten vorgesehen werden, die basierend auf den geplanten Nutzungsprofilen verschiedene Lastszenarien darstellen. Die Eigenschaften der Testumgebung werden berücksichtigt, so dass sodass sichergestellt werden kann, die beabsichtigten Tests auch wirklich durchführen zu können. Dabei werden auch Festlegungen getroffen, welche Messwerte während eines Tests erhoben werden sollen und wie dies zu ermöglichen ist.
Bei der Realisierung der Testfälle werden die Entwürfe in ein für das ausgewählte Testwerkzeug ausführbares Format transformiert. Dies erfolgt beispielsweise durch Capture-Mechanismen, die die vom Tester durchgeführten Benutzeraktivitäten aufzeichnen und daraus eine Vorlage generieren. Diese Vorlage muss gewöhnlich mittels programmatischer Anpassungen erweitert werden, so dass sodass die bei der Aufzeichnung geltenden Werte für z.B. eine Session-ID dynamisch aktualisiert werden. Eine andere Möglichkeit besteht darin, dass eine plattform-, programmiersprachen- und protokollunabhängige Beschreibungssprache für Dienste die zulässigen Operationen definiert und hieraus ein Katalog der einzelnen Aufrufe generiert werden kann. Weiterhin werden hier die Konfigurationen erstellt und Testdaten angelegt. Anschließend werden die einzelnen Bestandteile zu den komplexeren Szenarien und deren Varianten kombiniert, um die für den ausgewählten Testzyklus festgelegten Ziele zu erreichen.
Mit der Ausführung erfolgt der Eintritt in die Testphase. Hier werden die Anwendung und ihre Komponenten der zuvor definierten Last ausgesetzt und dabei überwacht. Der Ablauf erfolgt weitgehend automatisch, da Last- und Performancetests ausschließlich werkzeuggestützt durchgeführt werden können. Bei kontinuierlicher Beobachtung und Protokollierung des Testablaufs werden die Daten gesammelt, die anschließend bei der Auswertung verwendet werden. Diese Information kann auch während des Testablaufs genutzt werden, um darüber zu entscheiden, ob aufgrund von unerwartetem oder destruktivem Systemverhalten ein vorzeitiger Abbruch vorgenommen werden muss.
Im Rahmen der Auswertung werden die erhobenen Messwerte mit den Erwartungen verglichen. Abweichungen werden analysiert, um die möglichen Ursachen zu finden. Dies erfolgt gemeinsam mit Administratoren, Infrastruktur-Experten und Entwicklern. In einem Bericht werden die Informationen über den Test und die Ergebnisse in dem für die jeweilige Zielgruppe spezifischen Detaillierungsgrad dokumentiert. Darauf aufbauend werden die nachfolgenden Testiterationen geplant.
Die Werkzeuge des Lasttesters
Allgemein kann man die verfügbaren Performancetest- bzw. Lasttest-Werkzeuge in zwei Kategorien unterteilen. Einerseits gibt es die Open-Source-Werkzeuge, andererseits und dann die Kategorie der Lasttest-Werkzeuge aus dem kommerziellen Bereich.
Unsere Lasttestexperten kennen die gängigsten Lasttest-Werkzeuge.
Die in Java geschriebene Open-Source-Software JMeter der Apache Foundation ist das wohl populärste unter den kostenlosen Last- und Performancetestwerkzeugen, welches in unseren Projekten zum Einsatz kommt. Ursprünglich wurde JMeter für Webanwendungen konzipiert, inzwischen aber deutlich erweitert und bietet nun auch die Möglichkeit, andere Software zu testen, wie z.B. Datenbanken oder Message Oriented Middleware. JMeter unterstützt verschiedene Protokolle wie HTTP, HTTPS, SOAP, REST, FTP, JDBC, LDAP, JMS, SMTP und POP3.
In der Luftfahrtindustrie konnten wir unser NeoLoad-Expertenwissen unter Bewies stellen können. Zudem geben wir unser Know-how im Rahmen des Tricentis-Zertifizierungsprogramm (Neotys Certified Professional for NeoLoad) gerne weiter.
Last- und Performancetester bei ITGAIN werden
Für den Last- und Performancetester gibt es kein Studium und keine geregelte Ausbildung der Industrie und Handelskammer. Die Aufgaben des Last- und Performancetester sind vielschichtig und haben Bezug zu vielen anderen Tätigkeiten in der Softwareentwicklung.
Für das Team Qualitätsmanagement suchen wir Mitarbeiter mit einem abgeschlossenen Hochschulstudium (Informatik, Wirtschaftsinformatik, Naturwissenschaften) oder einer vergleichbaren Ausbildung.
Aber auch Quereinsteiger, welche technisches Verständnis mitbringen, Spaß an der Programmierung haben, strukturiert denken und arbeiten, kreativ und neugierig sind und ausgezeichnet kommunizieren, sind bei uns gerne gesehen.
Im Grundlagenseminar ISTQB® CTFL Certified Tester Foundation Level erlangen unsere Neuankömmlinge einen umfassenden Überblick über Aufgaben, Methoden und Techniken des Softwaretests. Sie lernen alle Schritte des Softwaretest-Prozesses kennen, von der Planung über die Spezifikation bis zur Durchführung und Protokollierung von Tests. Dieses Seminar ist ein wichtiger erster Schritt zum Last- und Performancetester.
Die beruflichen Aussichten als Last- und Performancetester sind sehr gut. Banken und Versicherungen, die Luftfahrt, der Handel, die Automobilindustrie, die Medizintechnik, die Logistik – alles Branchen, in denen Software eingesetzt wird. – benötigen immer performante Systeme auf dem aktuellen Stand der Technik.
Dein Interesse ist geweckt? Dann bewerbe dich noch heute und gestalte mit uns das digitale Übermorgen.