Last- und Performancetests (LPT) werden in vielen Projekten sehr stiefmütterlich behandelt – doch sie sind für einen erfolgreichen Projektabschluss unerlässlich! Im Rahmen dieser Tests werden anhand unterschiedlicher Szenarien Schwachstellen des Systems bei Überlastung aufgedeckt.
„Bei Last- und Performancetests ist eine sorgfältige, rechtzeitige Planung und Zieldefinition unter Einbeziehung aller Stakeholder besonders wichtig. Nur so kann garantiert werden, dass der Test genau das liefert, was er liefern soll und keine zusätzlichen Kosten durch etwaige vermeidbare Wiederholungen des Tests entstehen“, so Martin Wildbacher, BA, Principal Consultant bei SEQIS, über die Wichtigkeit von Last- und Performancetests.
Doch worauf muss bei Last- und Performancetests besonders geachtet werden und welche Tools eignen sich dafür? Martin Wildbacher hat dafür 10 praxisnahe Expertentipps parat:
Tipp 1: Nehmen Sie auch bei einem LPT den Datenschutz nicht auf die leichte Schulter
Bei Verwendung von Produktionsdaten für Last- und Performancetests spielt Datenschutz eine wesentliche Rolle. Personenbezogene Daten wie Vorname, Nachname, Geburtsdatum, Sozialversicherungsnummer, usw. müssen zumindest pseudoanonymisiert werden. Vorsicht bei sensiblen (besonders schützenswerten) Daten wie z.B. Herkunft, politische Meinung, Religionszugehörigkeit, Gesundheitsdaten usw. Im Firmenbereich sind das über die personenbezogenen Daten hinaus auch z.B. Informationen zu Patenten oder dem Hauptbuch (General Ledger). Im Bankenbereich gilt zusätzlich das Bankgeheimnis (Bankwesengesetz) sowie im Bezahlkartenbereich der Payment Card Industry Data Security Standard (PCI DSS). Sprechen Sie deshalb mit Ihrem Datenadministrator oder Datenschutzbeauftragten und holen Sie sich dessen Zustimmung für die Verwendung von Daten, auch für den Last- und Performancetest!
Tipp 2: Verproben Sie die Antworten bereits zu Beginn
Es muss von Anfang an klar sein, welche konkreten Antworten durch den Last- und Performancetest notwendig sind. Nachträglich kann es sehr schwer bis unmöglich sein, Antworten auf Fragen zu geben, die im Vorhinein nicht bekannt waren, da die erhaltenen Testergebnisse nicht zur Frage passen. Ein simples Beispiel: Die Ausgangsfragestellung geht von einer Last von 500 gleichzeitig aktiven Benutzern aus. Im Nachhinein möchte man wissen, wie sich das System mit 1.000 gleichzeitig aktiven Benutzern verhält. Diese Frage kann leider nicht beantwortet werden, da der Test nur mit 500 Benutzern durchgeführt wurde und selbst eine Hochrechnung unseriös wäre. Klären Sie deshalb bereits zu Beginn, ob die Antworten, die der LPT liefern soll, wirklich alle Fragen im Detail klären.
Tipp 3: Binden Sie rechtzeitig Experten mit ein
Vor und während eines Last- und Performancetests müssen sehr viele verschiedene Personen, wie z.B. Projektmanager, Fachbereich, DB-Admin, Entwickler, ggf. Rechtsabteilung, usw. einbezogen werden. Ein übliches Problem, wenn so viele Personen aus den unterschiedlichsten Abteilungen an einem Thema mitarbeiten sollen, sind lange Vorlaufzeiten. Beginnen Sie deshalb möglichst früh sich mit allen Beteiligten abzustimmen.
Tipp 4: Machen Sie einen PoC
Durch einen Proof of Concept (PoC) lässt sich rasch feststellen, ob alle zu überwachenden Systemkomponenten erreichbar sind, ob alle Stakeholder eingebunden wurden und ob die Toolauswahl richtig ist. Die Komplexität bei Last- und Performancetests ist üblicherweise sehr hoch! Durch einen PoC wird das Risiko, dass bei der eigentlichen Durchführung etwas nicht funktioniert, nicht freigeschalten wurde, jemand nicht mit an Board ist, usw. minimiert.
Tipp 5: Achtung bei 3rd Party-Services
Wichtig: Denken Sie auch an externe Systeme, wie zum Beispiel Google Analytics oder Facebook Integration. Wenn es wirklich relevant ist Ihre Applikation in Kombination mit 3rd Parties zu testen, informieren Sie diese Anbieter vor dem Test, um nicht gesperrt zu werden. Üblicherweise stellen diese keine Testumgebung für Sie zur Verfügung und Sie testen gegen deren Produktivumgebung. Wenn diese externen Systeme nicht relevant sind, vergessen Sie nicht, diese aus dem Test auszuschließen. Nachdem beim Last- und Performancetest aus üblicherweise nur wenigen Quellen, viele Requests kommen, könnten Ihre Transaktionen als Denial of Service (DoS) oder Distributed Denial of Service (DDoS) missinterpretiert werden.
Tipp 6: Planen Sie mehrere Iterationen
Die gute Nachricht zuerst: Sie werden beim Last- und Performancetest zumindest ein Performanceproblem finden! Die andere Nachricht: Dieses Problem ist in dieser Durchführung wahrscheinlich das bottleneck. Bevor Sie ein Gesamtbild zur Performance ableiten können, müssen Sie dieses bottleneck beseitigen und folgend den Test wiederholen. Nutzen Sie diese Vorgehensweise gleichermaßen als Empfehlung: Machen Sie pro Iteration immer nur eine Veränderung, damit Sie genau sagen können, ob die Veränderung zu einer Verbesserung geführt hat. Wenn mehrere Veränderungen auf einmal gemacht werden, können Sie nicht feststellen, was welche Änderung bewirkt hat – gegebenenfalls hebt eine Veränderung eine andere wieder auf und die Wiederholung liefert keine echten Erkenntnisse! Diese Vorgehensweise ist zeitintensiv, beginnen Sie deshalb frühzeitig!
Tipp 7: Wählen Sie ein Tool mit Echtzeitmonitoring
… damit sehen Sie bereits während der Durchführung, wie es Ihren Systemen geht. Sie gewinnen bereits erste Erkenntnisse und können – falls notwendig – bereits frühzeitig eingreifen und den Test stoppen, bevor das System komplett ausfällt oder – im Idealfall – noch mehr Last auf die Systeme bringen und Ihre Szenarien bei der Durchführung optimieren. Denken Sie daran: Mehr Last auf die Systeme zu bringen, wenn „eh schon nichts mehr geht“, bringt nichts. Einerseits brauchen Sie dann mehr Zeit für eine Durchführung (Sie machen weiter, obwohl Sie abbrechen könnten). Anderseits fallen, abhängig vom eingesetzten Toolstack, für ggf. mehr gleichzeitige User auch mehr Kosten für Lizenzen an!
Tipp 8: Sichern Sie Ihre Investition ab
Die neu aufkommenden Technologien haben spezielle Anforderungen an die Last- und Performancetesttools. Evaluieren Sie sorgfältig, was Ihre Anforderungen an die Tools sind und stellen Sie die Toolfeatures dagegen. Das „beste“ Tool ist keine Hilfe, wenn es nicht zu Ihrer Technologie und Strategie passt.
Tipp 9: Nutzen Sie die passenden Tools
Der Trend geht in Richtung Einbettung von Performancemessungen in Continuous Integration.
Dabei werden mittels Performanceprofiling Laufzeiten einzelner Code Units bis hin zu Ressourcenbedarf (CPU sec, etc.) einzelner Klassen erhoben. Diese Methoden kommen eher aus der Entwicklungsecke Ihr „erstes“ Tool. Bei Benchmarking, dem eigentlichen Last- und Performancetest, geht es um Simulationen von Last. Dies ist ein anderer Zugang, wofür in der Regel ein anderes Tool, Ihr „zweites“, benötigt wird. Evaluieren Sie deshalb genau, welche Tools zum Einsatz kommen!
Tipp 10: Starten Sie JETZT Ihren Last- und Performancetest!
Expertenwissen aus erster Hand
SEQIS bietet Unterstützung und Beratung bei Last- und Performancetests mit den unterschiedlichsten Tools sowie zahlreiche Trainings und Workshops.
Alle Informationen zu den Leistungen im Bereich Last- und Performancetest befinden sich hier: www.SEQIS.com/...