Mobile Apps systematisch testen: Aber wie?

Wie andere Software wollen auch Mobile Apps systematisch getestet werden. Aufgrund der vielfältigen Herausforderungen empfiehlt sich die Erstellung eines Testkonzepts.

Das Konzept sollte Antworten auf folgende Fragen liefern:

  • Welche Arten von Tests werden erstellt?
  • Welche Tests werden automatisiert?
  • Wann werden die Tests ausgeführt?
  • Wie werden Testfälle verwaltet?
  • Auf welchen Geräten und Betriebssystemversionen wird getestet?
  • Auf welchen Testumgebungen wird getestet?

Testarten

Die meisten aus anderen Softwareprojekten bekannten Testarten können auch für das Testing von Mobile Apps angewendet werden. Um einige wichtige Arten zu nennen:

  • Unit-Tests
  • Akzeptanz-Tests
  • System-Tests
  • UI-Tests
  • Performance-Tests
  • Last Tests

Daneben existieren weitere, spezielle Testarten, die eine zusätzliche Erklärung benötigen:

Usability Test
In den Blogposts Mobile User Experience – Erfolgsfaktor im App-Dschungel und Mobile User Experience – Design-Prinzipien für ein positives Benutzererlebnis wurde auf die Wichtigkeit einer angemessenen UX eingegangen. Usability Testing dient der Überprüfung der entworfenen UX-Konzepte.

Feld-Test
Mobile Apps sollten, wann immer möglich, unter realen Bedingungen geprüft werden. Der Nutzungskontext (z. B. Helligkeit, Erschütterungen, Bewegung, Netzqualität und vieles mehr) hat grossen Einfluss auf die Ergebnisse des Tests. Bei Labortests fehlen diese Aspekte z.T. vollständig.

Interrupt Test
Tests dieser Kategorie prüfen, wie sich die App bei einer unvorhergesehenen Unterbrechung verhält. Beispiele für solche Unterbrechungen sind eingehende Telefonanrufe oder Textnachrichten.

Background Test
Der Anwender kann Apps durch Wechsel auf eine andere App in den Hintergrund stellen. Background Tests prüfen, ob eine App korrekt in den Hintergrund versetzt werden kann. Ferner sollte überprüft werden, ob eine App im Hintergrund sparsam mit den verfügbaren Ressourcen umgeht. Ein möglicher Indikator hierfür ist die Messung des Akkuverbrauchs.

Konformitäts-Test
Apps, die in den offiziellen App-Stores vertrieben werden, müssen bestimmte Anforderungen erfüllen. Um unliebsame Überraschungen beim Publizieren von Apps zu vermeiden, ist es sinnvoll, die Einhaltung dieser Kriterien frühzeitig zu prüfen.

Installations- und Update-Test
Die allermeisten Apps erfahren im Laufe ihrer Lebenszeit eine Vielzahl von Updates. Tests dieser Kategorie prüfen die korrekte Aktualisierung einer App bzw. der darin enthaltenen Daten.

Testumgebungen

Aus Zeit- und schlussendlich Kostengründen ist es unmöglich, die entwickelten Apps auf allen verfügbaren Geräten und Betriebssystemen zu testen. Die Wahl angemessener Testgeräte ist deshalb entscheidend, doch was heisst «angemessen»?

Bei der Beantwortung dieser Frage hilft das Internet, beispielsweise die Website «Perfecto Mobile». Die Macher dieser Website ermitteln in regelmässigen Abständen, welches die am meisten verwendeten Geräte und Betriebssystemversionen pro Region sind. Dadurch kann gezielt auf den wichtigsten Geräten des anvisierten Marktes getestet werden und so mit geringem Aufwand eine hohe Abdeckung erreicht werden.

Kategorisierung der «Top-Geräte» nach Perfecto Mobile

Nachdem geklärt ist, auf welchen Geräten und Betriebssystemversionen getestet werden soll, steht nun die nächste Frage an: Müssen alle diese Geräte selber gekauft werden? Glücklicherweise nicht zwingend, denn es stehen verschiedene, alternative Testumgebungen bereit:

Gerätepark
Eine naheliegende Lösung ist die Anschaffung eines eigenen Geräteparks. Das macht zu einem gewissen Grad durchaus Sinn, da die Entwickler für die Tests während der Entwicklung ohnehin reale Geräte brauchen. Mit steigender Zahl der Geräte kann diese Variante aber schnell ins Geld gehen, zumal gerade der Unterhalt der Geräte (Aufspielen von Updates etc.) nicht zu unterschätzen ist.

Gerätelabor
Anstelle der Anschaffung eines eigenen Geräteparks lohnt sich unter Umständen das Einmieten bei einem Gerätelabor. Gegen Entgelt können Geräte in öffentlichen Labors gemietet und für Tests verwendet werden. Ein weltweiter Anbieter ist beispielsweise Open Device Lab.

Device Cloud
Anstelle eines physischen Zugangs wird bei dieser Variante nur via Webbrowser mit den Geräten in der Cloud interagiert. Bekannte Anbieter wie Xamarin oder Perfecto Mobile bieten gegen Bezahlung Zugang zu Tausenden unterschiedlichen Geräten. Je nach Anbieter kommen entweder reale oder emulierte Geräte zum Einsatz. Bezahlt wird in der Regel nach Nutzungsdauer: Je länger die Geräte verwendet werden, desto mehr kostet die Dienstleistung.

Einige Geräte der Xamarin Test Cloud

Crowd Testing
Beim Crowd Testing wird die App durch eine Masse von Testern über das Internet getestet. Jeder Tester lädt die App auf sein eigenes, privates Gerät und führt bestimmte vorgeschriebene Tests durch. Je nach Anzahl der Tester wird dabei ein entsprechendes Entgelt fällig. Weltweit existieren verschiedenste Anbieter, beispielsweise Testbirds.

Emulatoren und Simulatoren
Gerade während der Entwicklung sind reale Geräte oft noch gar nicht nötig. Einfache funktionale Tests können auch auf Emulatoren oder Simulatoren durchgeführt werden. Alle wichtigen Plattformen bieten entsprechende Tools in ihren SDKs an.

Webbrowser
Da Hybrid und Web Apps auf Webtechnologien basieren, können einfache funktionale Tests direkt in einem Webbrowser durchgeführt werden. Dies ist vor allem in einer frühen Phase der Entwicklung interessant, beispielsweise um den Entwicklern rasches Feedback zu liefern.

Bei der Wahl der geeigneten Umgebung sind zwei Aspekte von grundlegender Wichtigkeit:

  • Anzahl der benötigten Geräte: Je mehr unterschiedliche Geräte benötigt werden, desto eher sollte eine «öffentliche» Lösung anvisiert werden.
  • Sensitivität der App: Je schützenswerter die zu testende App, desto eher sollte eine «private» Lösung anvisiert werden.

Eine Warnung zum Schluss: Nicht alle Testumgebungen eignen sich für alle Testarten. So sind beispielsweise Performance Tests auf Simulatoren, Emulatoren oder Webbrowsern nicht sinnvoll, da diese Systeme sich zu stark von der realen Hardware unterscheiden. Und gewisse Testarten sind erst gar nicht möglich. So fehlt beispielsweise bei einigen Device Clouds die für Interrupt Tests benötigte Funktion, um eingehende Telefonanrufe zu simulieren.

Testautomatisierung

Das Testkonzept sollte darüber Auskunft geben, welche der umzusetzenden Testarten automatisiert werden. Aufgrund der hohen Änderungsrate im Mobile-Umfeld sollte ein hoher Automatisierungsgrad angestrebt werden. Dies erlaubt, beispielsweise beim Release eines neuen Geräts oder einer neuen Betriebssystemversion, eine zeit- und kostengünstige Ausführung aller vorhandenen Testfälle.

Aufgrund der Vielfalt an Geräte- und Betriebssystemversionen nehmen automatisierbare UI-Tests bei Mobile Apps einen hohen Stellenwert ein. Bekannte Tools in diesem Bereich sind Xamarin.UITest, Appium und Ranorex. Einmal automatisiert kann die Ausführung der Tests auf beliebige Geräte ausgeweitet werden. Die meisten Tools erlauben die Ausführung der UI-Tests auf unterschiedlichen Testumgebungen (Emulatoren und Simulatoren, realen Geräten oder Device Cloud).


Der Text dieses Blogposts stammt aus unserem Booklet «Mobile: Entwicklung, UX & Testing». In diesem erfahren Sie ganz kompakt, welche Chancen Ihnen «Mobile» bietet und was Sie für die Entwicklung hochwertiger Mobilapplikationen benötigen und beachten sollten.

Weitere Blogposts aus dieser Reihe:


 

This entry was posted in App, Booklet, Mobile, Testing, Uncategorized, Xamarin. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *