software-762486_1920

App-Testing – die wichtigsten Hardfacts

Von am 13.03.2018

Derzeit gibt es 1,6 Millionen mobile Apps die täglich Anwendung in unserem Alltag finden. Dabei sind die ersten Eindrücke nach der Installation meist entscheidend für deren Erfolg. Die Erwartungen des Users sind hoch und wenn eine App nicht von Anfang an fehlerfrei läuft, wird sie vom Benutzer meistens schnell wieder deinstalliert und auch nicht weiterempfohlen. Zudem ist die App der Konkurrenz meist nur wenige Klicks entfernt.

Bei der Entwicklung mobiler Anwendungen ist das höchstmögliche Maß an Qualität zu gewährleisten, weswegen ein umfangreiches Testen zur Qualitätskontrolle unerlässlich ist. Denn nur so können Fehler rechtzeitig erkannt und behoben werden.

Dieser Blogbeitrag soll in groben Zügen den Vorgang des Testens mobiler Anwendungen erklären und deren Wichtigkeit erläutern. Zusätzlich gibt er Aufschluss darüber, welche Testarten es gibt, welche Herausforderungen auf einen zukommen, wie ein gutes Testkonzept aufgebaut wird, was es zu berücksichtigen gibt, u.v.m.

Vor welchen Herausforderungen steht man als Tester?

Durch die Vielzahl an Herstellern, Endgeräten und Betriebssystemen die derzeit am Markt sind, steigt die Anzahl an Testfällen mit jedem neuen Gerät fast exponentiell. Es ist natürlich nicht ausreichend, mobile Anwendungen ausschließlich auf Android und iOS zu testen. Auch Betriebssysteme mit kleineren Marktanteilen wie z.B. das Windows Phone müssen berücksichtigt werden.
Des Weiteren verwendet nicht jeder Benutzer immer die aktuellste Version seines Betriebssystems. So muss auch die Vielzahl an unterschiedlichen Versionen, die sich zum aktuellen Zeitpunkt im Umlauf befinden, einkalkuliert werden.
Auch das Vorhandensein unterschiedlicher Displaygrößen und Auflösungen sowie das zunehmende Aufkommen von Tablets erschweren zusätzlich das Testen einer App. Anfallende Störfaktoren wie Anrufe während dem Testen oder aufpoppende Push-Nachrichten können ebenfalls zum Verhängnis werden.
Werden die Tests auf jenen Geräten ausgeführt, die speziell für diese Zwecke vorgesehen sind, ist deren Speicherkapazität möglicherweise auch deutlich weniger ausgelastet, als bei jenen Geräten die alltäglich von einem realen Benutzer verwendet werden. Dies würde dazu führen, dass die Testergebnisse auch nur bedingt repräsentativ sind.
In jüngster Vergangenheit sind auch völlig neue Anforderungen an das App-Testing entstanden. Hierzu zählen unter anderem diverse Sicherheits- und Datenschutzrichtlinien. Im Mai 2018 tritt EU-weit eine neue Datenschutzgrundverordnung (DSGV) in Kraft.

Nähere Informationen zur DSGV2018 in Bezug auf mobile Apps finden Sie hier: http://www.searchsecurity.de/lernprogramm/Was-der-Datenschutz-bei-mobilen-Apps-verlangt

Das Konzept zum erfolgreichen Testen

Mobile Anwendungen werden, sowie sämtliche andere Anwendungen auch, systematisch getestet. Das heißt, es wird bereits im Vorhinein ein Konzept erstellt, indem festgelegt wird, welche Szenarien wie getestet werden.
Das Konzept sollte folgende Fragen beantworten:

  • Welche Arten von Tests benötigt man?
  • Welche User-Szenarien müssen dabei abgedeckt werden?
  • Wie werden die Testfälle verwaltet und wo werden die Testergebnisse abgelegt?
  • Auf welchen Geräten / Betriebssystemen / Testumgebungen wird getestet?

Ansätze, die man bereits aus herkömmlichen Softwaretests kennt, kommen auch in der „mobilen Welt“ zum Einsatz. Oberstes Ziel eines App-Tests ist der Nachweis von Funktionalität.
Wie auch beim Desktoptesten werden Testfälle für die verschiedensten Testarten erstellt und in jedem Testzyklus abgearbeitet. Der entscheidende Unterschied liegt lediglich daran, dass die Tests auf mehreren Geräten durchgeführt werden müssen. Auch die Punkte Datenschutz, Usability und Sicherheit dürfen in einem Testkonzept nicht fehlen.

Welche Arten von Tests gibt es?

Usability Tests

Mit Usability-Tests wird die Gebrauchstauglichkeit einer App mit potentiellen Usern festgestellt. Reale Testpersonen prüfen die Anwendung auf Funktionalität und Benutzerfreundlichkeit. Natürlich ist diese Vorgehensweise meist sehr zeit- und kostenintensiv.

Funktionstests

Ein Funktionstest (auch funktionaler Test genannt) überprüft ein Programm (oder einen Teil davon) in Bezug auf funktionale Anforderungsmerkmale, also ob sich die Software richtig verhält und den Anforderungen im Pflichtenheft entspricht.

Akzeptanztests

Der Akzeptanztest (auch Storytest genannt) überprüft, ob eine Anwendung oder eine Funktion ihren Zweck bzw. die Anforderungen an den Kunden erfüllt. Es wird getestet, ob das Produkt nach einem Release auslieferbar ist, oder nicht. Der PO (Product-Owner) gibt dafür sogenannte Akzeptanzkriterien vor. Es existieren lediglich zwei Testergebnisse: „bestanden“ und „nicht bestanden“.

Stress Tests

Bei einem Stresstest werden sehr viele Zugriffe gleichzeitig simuliert um die Anwendung auf Stabilität zu prüfen. Das Verhalten des Systems wird dabei genau beobachtet um mögliche Defizite rechtzeitig zu erkennen.

Interruption- und Background-Tests

Interruption-Tests überprüfen das Verhalten einer App im Falle einer Unterbrechung, die beispielsweise bei Telefonanrufen oder Textnachrichten eintritt. Ein Background-Test prüft, was passiert wenn die Anwendung in den Hintergrund versetzt wird. Speziell geht es hier darum, herauszufinden, wie sparsam die App in jenem Fall mit verfügbaren Ressourcen (z.B. Akku) umgeht.

Kompatibilitäts-Test

Alleine das Betriebssystem Android gibt es in verschiedensten Versionen. Zudem setzen auch immer mehr auf Android. Hierzu gehören zum Beispiel: Sony, HTC oder Samsung. Diese Herstelle verbauen unterschiedliche Hardware und auch die Endgeräte unterscheiden sich in Displaygröße und Auflösung. Bei Kompatibilitäts-Tests werden diese Unterschiede speziell berücksichtigt.

Performance Test

Bei diesem Testverfahren wird das Verhalten mobiler Anwendungen unter bestimmten Bedingungen, wie beispielsweise bei geringer Akkuladung, schlechter Netzwerkverbindung oder stark belastetem Arbeitsspeicher, geprüft.

Konformitätstests

Bei einem Konformitätstest wird festgestellt, ob die Richtlinien und Anforderungen des App-Stores eingehalten werden, bevor die App offiziell über den Store vertrieben wird.

Natürlich gibt es noch einige weitere Arten von Tests, wie beispielsweise Installations- und Updatetests, Feldtests (für die Überprüfung bestimmter Hardwarekomponenten) usw. Auf diese werde ich hier aber nicht näher eingehen werde.

Wie können Apps getestet werden?

Es ist nahezu unmöglich, eine Anwendung mit allen Betriebssystemen auf allen zur Verfügung stehenden Endgeräten zu testen. Die anfallenden Anschaffungskosten wären wirtschaftlich nicht vertretbar. Eine Bereitstellung eines stabilen Deployments, welches auf allen unterschiedlichen Systemen läuft, ist dennoch unumgänglich. Auch wenn man mit Emulatoren bereits eine Vielzahl aller Endgeräte simulieren kann ist es ratsam, zumindest auf den wichtigsten Geräten direkt zu testen. Hier ist die Wahl der richtigen Geräte entscheidend. Auf diese Frage gibt die Website, Perfecto Mobile, Aufschluss. Hier lässt sich herausfinden, welche Geräte, Betriebssysteme und Bildschirmauflösung pro geographischer Region am häufigsten verbreitet sind. Die nachstehenden Grafiken zeigen die Ergebnisse für Europa (Deutschland, Italien, Großbritannien, Frankreich, Spanien, Niederlande).

Top10 Geräte in Europa nach perfectomobile.com

Top10 Geräte in Europa nach perfectomobile.com

Die häufigsten Betriebssysteme, Bildschirmgrößen und Gerätetypen in Europa (perfectomobile.com)

Die häufigsten Betriebssysteme, Bildschirmgrößen und Gerätetypen in Europa (perfectomobile.com)

Mit diesem Wissen kann schließlich gezielt auf den wichtigsten Geräten des anvisierten Marktes getestet werden.

In weiterer Folge werden die Top-Geräte von Perfecto Mobile nach „Essential“, „Enhanced“ und „Extended“ kategorisiert. Diese Einteilung (siehe auch nachstehende Grafik) dient zum besseren Verständnis für die Testabdeckung.

Kategorisierung der Top-Geräte (perfectomobile.com)

Kategorisierung der Top-Geräte (perfectomobile.com)

Testen mit Emulatoren

Anhand von Emulatoren können verschiedene Betriebssysteme und Geräte simuliert werden. Dadurch erspart man sich den Kauf des jeweiligen Gerätes. Emulatoren stehen meist kostenlos mit der jeweiligen IDE zur Verfügung.

Cloud-Testing

Im Gegensatz zum Testen per Emulator kann beim Cloud-Testing auf mehreren (realen) Geräten parallel getestet werden. Diese werden beispielsweise über ein Web-Interface bedient. Auch Absturzberichte werden hier aufgezeichnet und an den Tester übergeben. Cloud-Test-Anbieter sind meistens jedoch kostenpflichtig.

Automatisierte Tests

Neben zahlreichen Methoden zum manuellen Testen bedarf es auch einer guten Strategie zur Testautomatisierung. Hier werden typische Szenarien, die das User-Verhalten möglichst umfassend abbilden, in einem Testtool eingegeben, die dann später automatisiert abgearbeitet werden – häufig auch über Nacht. Automatisierte Tests eignen sich vorwiegend für Abläufe die sich wiederholen und werden in der Regel bereits während dem Entwicklungsprozess erstellt und ausgeführt. So kann eine hohe Qualität von Anfang an gewährleistet werden. Es gibt auch Cloud-Testing-Anbieter, welche die Implementation automatisierter Tests unterstützen.  Auch das Thema Wartung darf nicht vernachlässigt werden. Änderungen im Sourcecode erfordern im Normalfall auch Anpassungen im entsprechenden Automatisierungsskript. In der Praxis wird das jedoch häufig vernachlässigt. Darum muss bei jedem fehlgeschlagenem Test überprüft werden, ob der Testplan bereits überholt ist und angepasst werden muss, oder ob tatsächlich ein Bug vorliegt.

Teststufen

Wie es der Name schon sagt, beziehen sich Komponententests auf die Funktionen innerhalb einer Komponente. Hier geht es um funktionale Einzelteile (sogenannte Units) der App. Der Integrationstest dient dazu, um das Zusammenspiel mehrerer verschiedener Komponenten zu testen. Beim App-Test wird das System erstmals auf einer realistischen Umgebung getestet. Findet hier eine Kommunikation mit dem Server statt, so muss dies mit einem Systemintegrationstest getestet werden. Unter Beta Test versteht man das Testen einer Anwendung dich sich noch im Entwicklungsstadion (Beta-Version) befindet. Hier werden mögliche Userszenarien von potentiellen Benutzern ausgeführt. Bevor nun die App vom App-Store abgenommen wird, wird sie vorher noch von einem Team der App-Store-Submission geprüft.

Testdokumentation

Zur Dokumentation von Software Tests wird gerne der Standard IEEE 829 herangezogen. Diese Auflage beschreibt einen Satz von acht Basisdokumenten zur Dokumentation von Softwaretests. Mehr Informationen dazu, finden sie hier:   http://www.software-kompetenz.de/servlet/is/18386/?print=true

Weiterführende Links:

https://www.perfectomobile.com/

 

 

The comments are closed.