Lasttests gehören gemäß ISTQB® zu den nicht funktionalen Tests, mit denen Zeitverhalten, Ressourcenverbrauch, Stabilität und Skalierbarkeit einer Software oder Webseite (im folgenden „Anwendung“ genannt) überprüft werden. Der Lasttest wird durch Testspezialisten durchgeführt, um unter anderem zu bestimmen, ob die Anwendung einer erwarteten oder für die Zukunft geplanten Anzahl von Benutzern in der Performance (z. B. Anzeigegeschwindigkeit) noch Rechnung trägt. Schließlich möchte niemand auf die lange Rückmeldung einer Anwendung warten müssen.

Ein Lasttest hilft dabei, Leistungsengpässe und Verbesserungsmöglichkeiten zu identifizieren. So kann die Anwendung für eine verbesserte Leistung optimiert werden und die definierten Leistungsbenchmarks können aufrechterhalten werden.

Traditionell werden Lasttests meist nach der Entwicklung einer Anwendung oder in der Produktion durchgeführt.

Geteilte Verantwortung für Qualität

Um agile Teams zu unterstützen und schnelles Feedback zu den durchgeführten Tests zu ermöglichen, sollten die Tests möglichst früh im Lebenszyklus der Softwareentwicklung starten. Diese Teststrategie wird als „Shift-Left“ („Linksverschiebung“) bezeichnet und kann auf funktionale und nicht-funktionale Tests, also auch auf Lasttests, angewendet werden. Mit dem „Shift-Left“-Testansatz arbeiten Entwickler und Tester eng zusammen, um Testfälle in den frühen Phasen des Softwareentwicklungszyklus zu erstellen und auszuführen.

Der „Shift-Left“-Testansatz konzentriert sich auf kleinere Testfälle für einzelne Komponenten der Anwendung, sobald diese entwickelt oder integriert wurden.

So wirken konstruktive Entwickler- und destruktive Tester-Aktivitäten im Softwareentwicklungslebenszyklus gemeinsam in der Verantwortung der zuvor definierten Qualitätskriterien.

Einzelkomponenten des Lasttests

Um den Lastest gemäß dem „Shift-Left“-Testansatzes durchzuführen, sind alle einzelnen Komponenten wie unabhängige Module, Application Programming Interfaces (APIs), API-Integrationen von Drittanbietern, Benutzerschnittstellen/UI-Layer, usw. einzeln zu laden.

Basierend auf den Berichten und Daten aus den Lasttests der einzelnen Komponenten können diese optimiert und die Leistung auf granularer Ebene sichergestellt werden.

Lasttests in CI / CD-Pipelines

Continuous Integration und Continuous Deployment (CI/CD) sollen Entwicklungsteams in die Lage versetzen, funktionsfähige Anwendungen in kurzen Abständen auszuliefern. Dabei soll die Anwendung nicht nur korrekt funktionieren, sondern auch performant sein.

Lasttests können, um Entwicklungs- und Integrationsprobleme in Bezug auf die Leistung zu identifizieren, perfekt in CI / CD-Pipelines integriert werden. Die Leistungsoptimierung kann im Rahmen der iterativen Entwicklungstätigkeiten effektiv umgesetzt werden.

Nach der Integration von neuem Code in die Anwendung kann die Anwendung schnell bereitgestellt werden und mittels automatisierter Lasttests können Leistungsprobleme früher identifiziert und anschließend behoben werden.

Der „Shift-Left“-Testansatz stützt sich auf die automatisierte Testdurchführung. Mit der Automatisierung werden auch Leistungstests zu einem effizienten Prozessbaustein.

Vorteile und Nutzen des Shift-Left-Ansatzes

Funktionale Abweichungen und Leistungsprobleme werden durch den „Shift-Left“-Testansatz früh im Softwareentwicklungslebenszyklus erkannt. Zudem wird eine höhere Qualität der Codebasis erreicht und beibehalten.

Das Endprodukt ist von höherer Qualität, mit nur noch sehr wenigen Abweichungen und Leistungsproblemen. Dadurch werden die Test- und Wartungskosten erheblich reduziert.

All dies zahlt auf eine höhere Kundenzufriedenheit mit verbesserter und konsistenter Benutzererfahrung ein.

Die Markteinführung und damit auch der Return on Investment (ROI) wird durch den „Shift-Left“-Ansatz verbessert, da die Entwicklungsphase mit schnellem Feedback verkürzt wird.

Shift-Left-Testing in der Praxis

Ein frühes Testen der Implementierungen ist essenziell. Shift-Left-Testing lässt sich jedoch nicht von heute auf morgen umsetzen.

Letztlich gilt es, die Qualität nicht nur einmal zum Ende, sondern von Beginn an zu prüfen und zu überwachen.

Die Definition von Qualitätszielen zu Beginn des Projekts hat gravierenden Einfluss auf die spätere Ausführung. Indem Qualitätsmerkmale als Ziel in den Entwicklungsprozess aufgenommen werden, wird ein tieferes Bewusstsein dafür geschaffen.

In der agilen Arbeitsweise ist das frühe Testen von aktuellen Versionsständen des Produktes ein integraler Bestandteil. In einem solchen Arbeitsumfeld lässt sich der Shift-Left-Ansatz hervorragend umsetzen, insbesondere da hier einzelne Features inkrementell entwickelt und getestet werden können.

Mittels einer CI / CD-Pipeline werden funktionale und nicht-funktionale Testfälle zu bestimmten Schritten automatisiert eingeplant, wodurch sich die Entwickler auf die wesentlichen Aufgaben konzentrieren können und Leistungsengpässe frühzeitig beheben können.

Bei einer großen deutschen Versicherungsgruppe konnten wir mit dem Shift-Left-Testansatz im Bereich des Lasttests Optimierungspotentiale identifizieren und diese entsprechend heben.

Um dort mit dem Shift-Left-Testansatz so früh wie möglich testen zu können, musste das Lasttest-Werkzeug in der Lage sein, Traffic über spezifische Protokolle zu generieren. Web-APIs sind nicht immer für interne Mikroservices verfügbar. So sind eben spezifische Protokolle zwingend erforderlich, um die jeweiligen Dienste zu testen (z. B. Java Message Service (JMS), Message Queuing Telemetry Transport (MQTT), Kafka, Protocol Buffers (protobuf), usw.). Die Versicherungsgruppe haben wir bereits bei der Werkzeugauswahl beraten. Dabei profitierten wir von unserer Erfahrung mit den gängigsten Last- und Performancetestwerkzeugen.

Die Lasttests auf Komponentenbasis wurden zudem in einem CI / CD-Ansatz durchgeführt.

Wenn Sie auch Ihren Softwareentwicklungsprozess effizienter gestalten und Leistungsoptimierungen in Ihrer Anwendung heben möchten, sprechen Sie uns gerne an.

Neuen Kommentar schreiben

Ihre E-Mail Adresse wird nicht veröffentlicht.