DevOps-Strategien

Lasttests und Performance-Monitoring für App-Entwickler

Seite: 2/2

Firmen zum Thema

Performance-Monitoring für realitätsnahe Business-Szenarien

Je stärker sich das Management an der Sicherstellung der App-Qualität beteiligt, desto mehr rücken betriebswirtschaftliche Kriterien in den Mittelpunkt. Wurden User Stories bislang vor allem aus funktionaler Perspektive geschrieben, um Beispiel: „Benutzer können auf die Schaltfläche ‚Warenkorb anzeigen‘ klicken und die Seite ‚Mein Warenkorb‘ anschauen“, treten jetzt messbare Performance-Indikatoren in den Vordergrund:

  • „Benutzer können auf die Schaltfläche ‚Warenkorb anzeigen‘ klicken und die Seite ‚Mein Warenkorb‘ in weniger als einer Sekunde anschauen, während 1.000 andere Benutzer parallel dasselbe tun.“
  • In einem guten Test-Tool können User Stories beliebig vertieft werden und beispielsweise regionale oder technologische Nutzerverteilungen einbeziehen:
  • „Benutzer können auf die Schaltfläche ‚Warenkorb anzeigen‘ klicken und die Seite ‚Mein Warenkorb‘ (mit UMTS, LTE oder WLAN) in weniger als einer Sekunde anschauen. Auch dann, wenn 1.000 andere Benutzer (davon 500 aus den USA, 500 aus Europa; 300 mit iOS, 600 mit Android, 100 mit Windows) parallel dasselbe tun.“

KPIs und SLAs wie maximale Antwortzeiten, Paketverluste oder Fehlerraten sind integraler Bestandteil der „Definition of Done“ (DoD)-Agenda: Eine App-Modifikation gilt erst dann als „erledigt“, sobald die Umsetzung der Geschäftsvorgaben nachgewiesen ist. Tools für das Performance-Monitoring sollten daher eine möglichst detaillierte Abarbeitung der DoD-Kriterien unterstützen. Zu denken ist hierbei an Technologien zur:

Bildergalerie
  • Simulation der Endgeräte: Die Vielzahl mobiler Betriebssysteme und Browserversionen hat Rückwirkungen auf die App-Performance. Denn je nach anfragendem Browser werden unterschiedliche Datenvolumina ausgeliefert, was die Ladezeiten für jedes Endgerät und die Server-Gesamtlast beeinflusst. Test- und Monitoring-Tools sollten daher in der Lage sein, einen wirklichkeitsnahen Browser-Mix zu simulieren. Im Idealfall lassen sich Testpopulation mit typischen Plattform-Präferenzen (wie iOS mit Safari, Android mit Firefox und Chrome ) zusammenstellen, um zu ermitteln, ob das Nutzererlebnis mit jedem Endgerät in den geforderten „Komforttoleranzen“ bleibt.
  • Emulation der Bandbreiten: Um die App-Performance realistisch einzuschätzen, sollte das Monitoring nicht ausschließlich unter idealen LTE-Umgebungen erfolgen. Empfehlenswert ist eine Bandbreitenemulation, die virtuellen Nutzern jeweils Datentransferraten, Latenzzeiten und Paketverluste zuordnet. Da reale Anwender je nach Provider, Vertrag oder Region mit unterschiedlicher Geschwindigkeit auf Apps zugreifen, sollte die Bandbreitenemulation ebenfalls individuell erfolgen. Auf diese Weise lassen sich authentische Testpopulationen erzeugen, so dass ein differenziertes Bild der Nutzerzufriedenheit entsteht.
  • Einsatz der Cloud: Mit ihren weltweit verteilten Lastgeneratoren erzeugt die Cloud Server-Anfragen in den Regionen, aus denen die Nutzer tatsächlich auf ihre App zugreifen. Das ist z.B. relevant für Webshops, die tagsüber meistenteils Kunden aus Europa und abends aus den USA begrüßen. Mit der Cloud lässt sich dieses Szenario simulieren, wobei Tester auch landesspezifische Plattformpräferenzen und Bandbreiten-Limits berücksichtigen können. Im Ergebnis lässt sich die App-Performance authentisch aus der Nutzerperspektive bewerten, da die Server-Client-Kommunikation komplett abgedeckt ist. Firewall, Router, Internet, Mobilfunknetze, Load Balancer können ebenso in die Messungen einbezogen werden wie Ad-Server und weitere Drittanbieter-Infrastrukturen. Ein weiterer Cloud-Vorteil ist die fast unbegrenzte Skalierbarkeit, um Traffic-Spitzen zu erzeugen und z.B. einen aufwändig beworbenen Verkaufsstart abzusichern.

Durchgängigkeit der Testverfahren im gesamten Software-Lifecycle

Je früher eine Schwachstelle in der App entdeckt wird, desto kostengünstiger ist die Beseitigung. Die Qualitätssicherung gemäß den Management-KPIs sollte daher von Anfang an erfolgen. Hilfreich ist hierbei ist die Wiederverwendung grundlegender Testparameter und Skripte (zum Beispiel An- und Abmeldevorgänge) von den frühen Komponententests bis zur abschließenden Systemprüfung.

Werden Testparameter über den gesamten App-Lifecycle beibehalten, kann das tatsächliche Nutzererlebnis mit den Testwerten im Labor vergleichen werden. Sollten Zielvorgaben (zum Beispiel Dauer der An- und Abmeldevorgänge) im Produktivbetrieb verfehlt werden, lässt sich der Fehler in die Entwicklungsschritte hinein zurückverfolgen und anhand der kontinuierlich gesammelten Messdaten schnell lokalisieren. Für die Prüfroutinen empfehlen sich zwei Verfahren:

  • Schnell-Tests: Lasttests sollten an den Umfang der ausgeführten Entwicklungsleistung angepasst werden. Generell hat es sich bewährt, bereits nach Übergabe kleiner Entwicklungsschritte (etwa CI-Builds in Agile-Projekten) mit den Prüfroutinen zu beginnen. In der Regel sind das zunächst begrenzte Smoke-Tests für grundlegende Szenarien, wobei die Last aus Sicherheitsgründen von internen Lastgeneratoren (eigenen Servern) erzeugt wird. Nach größeren Entwicklungsschritten (wie nächtliche Builds) werden bereits Ausnahmefälle simuliert, um bislang unentdeckte Performance-Probleme zu ermitteln. Am Ende der Entwicklungsetappe werden die Apps „gestresst“. Dazu kann die Last aus einer Test-Cloud maximal skaliert werden, um Belastungsgrenzen, Fehlerbilder und Erholungszeiten einer Anwendung nach einem Absturz festzustellen.
  • Test-Automatisierung: DevOps zielen auf einen direkten Übergang zwischen Entwicklung, Qualitätssicherung und Betrieb. Dieser Prozess lässt sich beschleunigen, indem Prüfroutinen für jeden Entwicklungsschritt automatisiert und beispielsweise mit den Build-Servern integriert werden. Durch eine direkte Testeinbettung werden Performance-Schwächen sofort erkannt und nicht in die weitere Entwicklung hineingetragen.

Fazit

Die hohe ökonomische Bedeutung von Apps macht das Qualitätsmanagement zu einer gemeinsamen Aufgabe von Geschäfts- und IT-Leitung. Tools für Lasttests und Performance-Monitoring sollten die abteilungsübergreifende Abstimmung mit Automatisierung, intuitiven Nutzeroberflächen und graphischen Auswertungen unterstützen. Auf diese Weise können Manager und Entwickler das mobile Geschäftsmodell Hand in Hand absichern und sich kontinuierlich über den Erfolg der Updates vergewissern.

* Dipl.-Ing. Gregor Mayer ist Territory Manager DACH bei Neotys.

Artikelfiles und Artikellinks

(ID:43956509)