Mobility / Software-Test

Mobile Testing mit HockeyApp

Die Entwicklung von mobilen Applikationen ist aus dem heutigen IT-Alltag nicht mehr wegzudenken. Von Smartphones über Tablets, bis hin zu Wearables – viele Geräte sollen mit stabilen und intuitiv-bedienbaren Apps bestückt werden, die vor allem eines bringen sollen: möglichst großen Kundennutzen.

Fotolia_83284184_HockeyApp

Als Tester weiß man natürlich, dass mit einem ersten Test der umgesetzten Funktionalität noch lange nicht alles getan ist. Abnahmetester der Fachbereiche haben ein anderes Augenmerk auf Apps, als der Komponententest oder der Systemintegrationstest, was durchaus wichtig ist. Die Fülle an verschiedenen App-Versionen, die von Entwicklern gebaut werden und unterschiedliche Phasen durchlaufen, kann einem dann schon mal zu Kopf steigen – „Welche Version sollte ich nochmal testen?“, „Welche Version ist bereits für den Systemintegrationstest freigegeben?“, „Wie kann ich garantieren, dass der Test in späten Phasen mit entsprechenden Versionen passiert, die vorab gründlich integrationsgetestet wurden?“ … Eigentlich wäre es ganz praktisch, wenn man seinen eigenen, kleinen App-Store im Projekt hätte …

 

HockeyApp als individueller Projekt-App-Store

Gerade in großen Projekten und wenn ein Unternehmen an mehr als nur einer App-Entwicklung beteiligt ist, ist die kontrollierte Verteilung und einfache Verwaltung von Apps und deren Informationen essentiell für einen qualitativ-hochwertigen Mobile-Test. Eine Möglichkeit dafür bietet HockeyApp. HockeyApp begann ursprünglich als kleines, unabhängiges Projekt, an dem einige Entwickler beteiligt waren und wurde mittlerweile von Microsoft gekauft. Mittels HockeyApp können während der Entwicklung gebaute App-Versionen für iOS, Android, OS X und Windows verwaltet werden. HockeyApp bietet verschiedene Lizenzmodelle, sowohl eine freie Version, die eine Verwaltung von 2 Apps ermöglicht, bis hin zu Modellen, die bis zu 500 Apps ermöglichen (Details zur Lizensierung und Preisen finden sich hier: http://hockeyapp.net/pricing/). Um HockeyApp verwenden zu können, ist eine Registrierung erforderlich – danach können die entwickelten Apps bequem im Browser verwaltet werden.

 

Was bietet HockeyApp?

  • Einfache Verwaltung von vielen App-Versionen inkl. History
  • Intuitive Benutzerverwaltung und –berechtigung
  • Integration mit Build-Servern
  • Hilfreiche APIs für Entwickler: http://support.hockeyapp.net/kb/api
  • Crash-Reports, zugeordnet zu der entsprechenden Version
  • Automatisierte Freigaben für (verteilte) Entwicklungs- und Testteams
  • Automatisierte Update-Benachrichtigungen bei neu verfügbaren Versionen
  • Lizenzmodelle von kostenfrei mit geringerem Funktionsumfang, bis hin zu umfangreicher Appverwaltung

Ich werde im Folgenden einige dieser grundlegenden Features von HockeyApp anhand einer fiktiven App „TestMeApp“ vorstellen, die in Form einer ersten Developer-Version in den HockeyApp-Store geladen wird, in weiterer Folge einen Komponententest durchläuft, bis sie schließlich über den Systemintegrationstest und den User Acceptance-Test in die Produktion gelangt.

 

Die erste Developer-Version in HockeyApp

Es ist so weit – der erste Developer-Build von TestMeApp läuft. Der in den frühen Entwicklungsprozess integrierte Tester wird diesen natürlich sofort testen wollen, sobald der Build-Server einen erfolgreichen Build verbucht. Dafür bietet HockeyApp eine API an, die vom verwendeten Build-Server angesprochen werden kann. Developer-Versionen können auf diese Weise automatisiert für den Komponententest freigegeben werden. Der Komponententest kann also direkt starten, sobald eine neue Version verfügbar ist. Um Verwechslungen zu vermeiden, können die Zugriffsberechtigungen auf Developer-Versionen eingeschränkt werden. Auf diese Weise wird eine nicht für weitere Teststufen vorgesehene Version niemals in den Abnahmetest gelangen.

 

Berechtigungen, Benutzerverwaltung und Teams

Jeder Benutzer der TestMeApp hat eine entsprechende Rolle in HockeyApp. Im Zuge der App-Entwicklung sind vor allem folgende zwei Rollen interessant:

  • Developer: Diese können neuere Versionen zu einer bestimmten App hochladen und deren Daten bearbeiten, außerdem Versionen freigeben
  • Tester: Können Apps runterladen, installieren und Feedback zu einer Version geben, allerdings keine Versionen freigeben

HockeyApp ermöglicht außerdem, sogenannte Teams zu erstellen, denen Benutzer hinzugefügt werden. Diese Teams werden dann bestimmten Apps zugeordnet. In unserem Beispiel könnten das die Teams „Komponententest“, „Systemintegrationstest“ und „Abnahmetest“ sein.

Teams

Für Developer-Versionen von TestMeApp wird dann lediglich das Team „Komponententest“ freigeschaltet, während die Teams „Systemintegrationstest“ und „Abnahmetest“ nur Zugriff auf stabile Versionen von TestMeApp erhalten.

 

Eine eigene Version für den Systemintegrationstest

Angenommen, der Komponententest hat die grundlegenden Features der App getestet und für weitere Tests freigegeben. In weiterer Folge muss der Systemintegrationstest das Zusammenspiel der App mit unterschiedlichen Backend-Schnittstellen prüfen. Hierfür werden spezielle Systemintegrationstest-Versionen von TestMeApp gebaut und über HockeyApp verwaltet.

Dashboard

Eine eigene Gruppe „Systemintegrationstester“ in HockeyApp ermöglicht die Zuordnung bestimmter Tester zur Systemintegrationstest-Version. Für den Komponententest werden weiterhin Versionen gebaut, die allerdings für den Systemintegrationstest nicht sichtbar sind. Außerdem werden Release-Notes zu der Version in HockeyApp vermerkt.

 

Update-Benachrichtigungen und hilfreiche Crash-Reports

Jede App, die in HockeyApp verwaltet wird, besitzt eine App-ID. Wird diese App-ID in die Applikation TestMeApp mit eingebunden, dann wird bei jedem Start der App geprüft, ob eine neuere Version für die gerade verwendete App verfügbar ist. Der Komponententester kann also somit automatisch über neue Developer-Versionen informiert werden, während der Systemintegrationstester von diesen gar nichts mitbekommt. So wird auch vermieden, dass ein Test mit einer veralteten Version gestartet wird.

Ein weiteres Goodie sind hilfreiche Crash-Reports. Natürlich möchte niemand, dass eine App abstürzt, sollte es dennoch passieren, unterstützt HockeyApp die Analyse von Crash-Logs. Alle Abstürze werden zu jener Version dokumentiert, mit der sie aufgetreten sind. Absturzberichte zu Abstürzen derselben Art werden gruppiert, d.h. dass jene mit gleicher Fehlerursache (Klasse, Funktion, Zeile) direkt in einer Gruppe ersichtlich sind. Für die Entwicklung ergibt sich dadurch ein einfacherer Umgang mit Logs, da fehlerhafte Funktionen im Code leichter gefunden werden können.

 

Der Abnahmetest und die Feedback-Funktion

Im Lebenszyklus der TestMeApp kommen wir nun zum User Acceptance Test. Hierfür wurde ein eigenes Team „Abnahmetest“ in HockeyApp erstellt und die entsprechenden Tester hinzugefügt. Schwere und kritische Fehler wurden bereits von der Entwicklung behoben und somit steht der Produktionsfreigabe grundsätzlich nichts mehr im Wege. Sollten dennoch Probleme auftreten, kann der Tester Feedback über ein Formular in HockeyApp zu einer bestimmten Version von TestMeApp schreiben. Auch Screenshots können direkt integriert werden.

Feedback

Fazit aus dem Projektumfeld

Aus eigener Erfahrung weiß ich, dass die Konfiguration von HockeyApp (und vor allem die Integration mit bestehenden Tools im Projektumfeld) zunächst etwas knifflig sein kann. Eine wichtige Hilfestellung leistet dabei die HockeyApp-Support-Seite zu den APIs. Mit der Zeit lernt man vor allem die übersichtliche Darstellung der Informationen in HockeyApp sehr zu schätzen, sowohl als Entwickler, als auch als Tester. Die Nutzung App-spezifischer Statistiken hilft dabei, den Test zielgerichteter zu gestalten. Alles in allem gibt es also eine klare Empfehlung für die Verwendung von HockeyApp von mir, vor allem in großen Mobile-Projekten.

Passende Artikel

Kommentare gesperrt.