Software Performancetest in der Schweiz – Oder wie man simuliert, dass halb Bern auf den Zug nach Zürich möchte


Stephan Wiesner, Testing Consultant

Ungeduldig drücke ich den Reload-Button auf meinem iPhone. Es ist Mitte November, über Nacht ist der erste Schnee gefallen und ich habe noch die Sommerreifen drauf. Wann fährt noch mal der Bus zum Bahnhof? Immer noch die Sanduhr! Noch mal drücke ich Reload und endlich bekomme ich eine Antwort von der Fahrplan-App. Grunzend schütte ich den Rest Kaffee in den Ausguss, schnappe mir den Wintermantel und hetze aus dem Haus.

Wie bereits im Artikel zur Digitalen Transformation angesprochen: Wir Enduser sind heute nicht mehr bereit, auf Informationen zu warten. Wir sind immer und überall online – und werden immer ungeduldiger. Firmen müssen darauf reagieren und entsprechend ist das Thema Performancetest immer wichtiger. Aber wie testet man, dass an einem Novembermorgen halb Bern auf den Zug nach Zürich möchte?

Schneefall in der Schweiz

Schneefall in der Schweiz

 

Teile und Herrsche: Wo wird eigentlich gerechnet?

Heute gehen immer mehr Softwaresysteme in die Cloud. Sie basieren häufig auf einer Sever-Client-Architektur. Dass bedeutet: Die eigentliche Geschäftslogik ist in einem Rechenzentrum untergebracht. Der Enduser kann eine Mobile App oder einen Browser benutzen, um darauf zuzugreifen. Dabei sind diese Anwendungen möglichst „dumm“, sprich sie sollen eigentlich nur die Daten darstellen. Entsprechend ist die Performance im Wesentlichen beeinflusst von

  • Dem Netzwerk
  • Der Verarbeitung im Rechenzentrum

Durch diese Aufteilung ist es überhaupt erst finanziell tragbar, Anwendungen für verschiedene Geräte zu implementieren. Design und Bedienung können dann für das jeweilige Endgerät optimiert werden (siehe den Artikel: Wie testet man behindertengerechte Bedienung von Apps?).

Planung von einem Performancetest

Mit Geld kann man alle Probleme lösen

Wir Performancetester scherzen gerne: Google ist die Messlatte. Gemeint ist: Man kann sehr viele User mit schnellen Antwortzeiten erfreuen – wenn man so viel Geld wie Google hat. Hat man das nicht, muss ein Kompromiss her.

Zurück zum Anfang: Der Fahrplan wird an dem Tag mit dem ersten Schnee viel öfter aufgerufen, als an allen anderen Tagen im Jahr. Ist es also akzeptabel, dass er an allen anderen Tagen schnell, aber an diesem langsam ist? Und was heisst „langsam“? Sind zwei Sekunden akzeptabel oder sogar fünf? Und vor allem: Wie misst man das?

Wie simuliert man, dass „halb Bern nach dem 7:30 Zug nach Zürich sucht“?

Dazu kommt der politische Aspekt: An diesem Tag sind es nicht die Stammkunden, die suchen, sondern die vielen Gelegenheitskunden. Das sind dann diejenigen, die laut auf Social Media schimpfen, dass der öffentliche Verkehr „immer unzuverlässiger wird“. Wie wichtig ist es also, diese User nicht zu verärgern? Das ist im Kern die Digitale Transformation: Wir schauen nicht mehr in einen Papier-Fahrplan, sondern auf eine App. Niemand hat sich früher beschwert, dass es einen Moment gedauert hat, die Papier-Auskunft zu erhalten, aber heute ist es vielfach „in“, auf Social Media über „Fehler“ anderer zu schimpfen.

In einem Performancetest kann ich per Software simulieren, dass 100.000 Anfragen an den Fahrplan innerhalb einer Stunde abgesetzt werden. Meine Auswertung zeigt dann auf, ob die gesetzten Anforderungen erfüllt werden können.

Was macht eigentlich ein Performancetester?

Als Performancetester habe ich die Aufgabe zu prüfen, ob ein Softwaresystem „schnell genug“ ist. Dazu erstellen wir zunächst ein paar Szenarien, die „häufig durchgeführt werden“. Also z.B. die Abfrage des Fahrplans. Oder die Suche nach Börsenkursen oder das Abrufen der aktuellen Wetterdaten. Dabei setzen wir Szenarien zusammen, mit einen Mix aus lesenden und schreibenden Zugriffen. Für jeden Zugriff wird definiert, wie lange er bei einer gegebenen Anzahl User maximal dauern darf.

Für unseren Fahrplan könnte das sein

  • Suchen nach dem 07:00 Zug Bern-Zürich auf einem iPhone
  • Suchen nach dem 06:30 Zug Luzern – Olten auf einem Android
  • Suchen nach dem 06:30 Zug Bern – Olten im Web
  • Suchen nach dem 07:30 Zug Bern – Zürich und Kauf eines Tickes auf dem iPhone (schreibender Zugriff)
    1. Solche Szenarien werden dann für mehrere simulierte User parallel durchgeführt – in einem Mix aus Anfragen, um möglichst „realistisch“ zu sein.

 

Landwasserviadukt der Rhätischen Bahn

Landwasserviadukt der Rhätischen Bahn

Performancetest – Oder wie simuliert man eine Million User?

Mit Hilfe von Software können wir in einem Performancetest echte User simulieren. Dabei ist zu unterscheiden zwischen „am System angemeldeten Usern“ und „aktiv arbeitenden Usern“. Beim Fahrplanbeispiel melden sich die meisten User gar nicht an. Sie führen 1-3 Abfragen durch und gehen wieder. Nur vergleichsweise wenige User werden auch ein Ticket kaufen.

30 Abfragen pro Sekunde auf den Fahrplan der SBB wäre schon sehr viel. Auf die Stunde ergibt das immerhin: 108.000 Zugriffe.

Je nach Anforderungen können wir Testusern virtuelle Profile zuordnen. Das können verschiedene Browser oder Geräte sein, unterschiedliche Verhaltensweisen oder Sprachen. Je mehr Aufwand wir hier in die Vorbereitung stecken, desto „realistischer“ ist der Test. Allerdings muss man auch entscheiden, wann mehr Aufwand keinen weiteren Nutzen mehr bringen wird.

Performancetest in der Schweiz

Digital Testing: Performancetest in der Schweiz

Wenn Du es eilig hast, gehe langsam

Schnelle Antwortzeiten sind ein Qualitätsmerkmal von Software. Und jeder versteht, dass Qualität teuer ist. Nur, sind wir Enduser häufig nicht bereit, das auch zu bezahlen. Wir erwarten einfach, dass „Software funktioniert und schnell reagiert“.  Entsprechend muss eine Firma immer eng kalkulieren, wie viel Geld in die Optimierung von Antwortzeiten gesteckt werden soll. Performance-Tuning kann sehr teuer sein. Mit ein wenig Planung und Voraussicht können diese Kosten jedoch deutlich reduziert werden. Wird ein Experte für Performancetests frühzeitig in die Architekturentscheidungen eingebunden und werden bereits während der Entwicklung regelmässig kurze Performancetests durchgeführt, so können zielgerichtete Massnahmen mit minimalem Aufwand vorgenommen werden. Wird der Test jedoch als „notwendiges Übel“ an den Schluss des Projekts gelegt, dann gibt es nicht selten das böse Erwachen.

Lesen Sie mehr zum Thema Digitale Transformation. Sind Sie an einer Fortbildung oder ISTQB-Zertifizierung im Software-Test interessiert? Unsere Academy bietet eine Vielzahl an Kursen an.

0 thoughts on “Software Performancetest in der Schweiz – Oder wie man simuliert, dass halb Bern auf den Zug nach Zürich möchte”


Schreibe einen Kommentar