Aufwand beim Testen von Apps
Wie so oft im Leben ist auch bei einer App der erste Eindruck ein sehr entscheidender. Die wesentlichen Faktoren um einen guten Eindruck zu hinterlassen, sind meist Zweckmäßigkeit und Fehlerfreiheit. Nicht selten kommt es vor, dass bei Abstürzen bzw. instabilem Verhalten eine App sofort deinstalliert wird. Der Aufwand beim Testen von Apps ist zwar groß, wird aber mit treuen Nutzern belohnt.
Qualitätsmerkmale
Funktionalität, Benutzbarkeit, Zuverlässigkeit, Effizienz, Änderbarkeit und Übertragbarkeit sind die sechs Qualitätsmerkmale von Softwarelösungen. Für mobile Lösungen kommen noch Mobiltauglichkeit und Mobilfähigkeit hinzu.
Um diese Qualitätsanforderungen messbar zu machen, müssen sie mit einer konkreten Maßangabe belegt werden. Einerseits bedeutet das natürlich großen Aufwand beim Testen von Apps, da man sich frühzeitig über fachliche und technische Anforderungen Gedanken machen und auch entsprechende Test-Cases schreiben muss. Andererseits bringt es verbindliche Entscheidungen für das gesamte Projektteam mit sich.
Herausforderungen beim Testen
Speziell bei Apps ist der Aufwand bei Softwaretests sehr hoch, da er von weiteren 4 wesentlichen Faktoren abhängig ist:
- Plattformen: Es muss nicht nur auf Android und iOS getestet werden, sondern auch auf Betriebssystemen mit kleinerem Marktanteil wie zum Beispiel Windows Phone.
- Versionen der Betriebssysteme: Nicht jeder Nutzer verwendet immer die aktuellste Version da Updates nicht immer zeitnah bereit gestellt werden und viele Hersteller diese für bestimmte bzw. ältere Geräte gar nicht erst anbieten.
- Smartphones und Tablets: Die Vielzahl an Geräteherstellern (vor allem bei Android) und Modellen bringt unterschiedlichste App-Verhaltensweisen mit sich.
- Auflösungen und Display-Größen: Vor allem unterschiedliche Bildschirmgrößen, unterschiedliche Auflösungen, unterschiedliche Performances und vieles mehr erschweren das Testen einer App.
Zusätzlich sind noch Anforderungen an Datenschutz, Sicherheit und Usability (steht in der Informatik für die Gebrauchstauglichkeit und auch für die Benutzerfreundlichkeit von Hard- und Software) überaus wichtige Themen, die im Rahmen vom Testing abgedeckt werden müssen.
Teststufen
Komponententests und Integrationstests haben besonders in agilen Projekten ihre Existenzberechtigung. Wie der Name bereits verrät, bezieht sich ein Komponententest auf die Funktionen innerhalb einer Komponente, während Integrationstests die Schnittstellen zwischen den Komponenten unter die Lupe nehmen.
Beim App Test (oder auch Systemtest) wird das System gegen die gesamten Anforderungen in einer möglichst realistischen Umgebung getestet. Kommuniziert die App beispielsweise mit einem oder mehreren Servern, ist auch ein Systemintegrationstest notwendig, der diese Kommunikation überprüft.
Wie zuvor erwähnt, existieren eine Vielzahl an Geräten mit verschiedenen Spezifikationen und Betriebssystemen, welche die Qualitätsansprüche an Apps gehörig ankurbeln. Um diesen Ansprüchen gerecht werden zu können, kann man beispielsweise einen Beta Test durchführen. Bei einem Beta Test wird die Software einem bestimmten Personenkreis zur Verfügung gestellt. Dieser Ansatz eröffnet zusätzlich die Möglichkeit von Crowdtesting, wobei die Beta-Version einer App über das Internet bereitgestellt, und von einer großen Anzahl an Testern geprüft wird.
Vor Aufnahme in die Stores wird die App von den jeweiligen Teams noch bei der App Store Submission geprüft.
Testarten
Innerhalb der erwähnten Teststufen gibt es viele verschiedene Arten von Tests. Drei davon stellen wir hier näher vor.
Eine dieser Arten ist der Usability Test. Wie der Name schon verrät, wird im Rahmen eines Usability Tests die Benutzerfreundlichkeit auf die Probe gestellt. Geprüft wird beispielsweise die Navigation zwischen einzelnen Screens, das Verhalten der App im Offline-Fall, sowie die Unterstützung verschiedenster Sprachen.
Wie bereits erwähnt gibt es im Besonderen in der Welt der mobilen Applikationen eine Vielzahl unterschiedlicher Hersteller mit verschiedener Hardware und unterschiedlichen Displaygrößen sowie Auflösungen. Um zu gewährleisten, dass die App auf allen Geräten funktioniert, gibt es Compatibility Tests, die die Kompatibilität der App mit deren Umgebung evaluiert.
Falls eine App mit einem Server kommuniziert, ist es sinnvoll auch einen Last Test zu machen. Dieser simuliert eine große Anzahl an Anfragen an den Server in kurzer Zeit. Ziel ist das Verhalten des Systems zu beobachten und mögliche Fehler vorzeitig zu erkennen sodass zum Beispiel geplante Marketing-Kampagnen reibungslos abgewickelt werden können.
Testwerkzeuge
Die Anschaffung aller verschiedenen Smartphones, für die die App entwickelt wurde, ist eine sehr teure Angelegenheit. Hierbei kann durch Emulatoren (wird in der Computertechnik ein System bezeichnet, das eine Nachbildung eines Anderen ist) Abhilfe geschaffen werden. Mit Emulatoren kann man verschiedenste Geräte mit unterschiedlichen Betriebssystem-Versionen simulieren. Meist werden sie kostenlos mit der jeweiligen IDE (Integrierte Entwicklungsumgebung) mitgeliefert.
Mit Cloud Tests kann man, im Gegensatz zu Emulatoren, die App auf mehreren Geräten gleichzeitig testen, in dem man die App über eine Webschnittstelle bedient. Berichte über Abstürze werden danach automatisch aufgezeichnet. Cloud Test Anbieter sind jedoch meist kostenpflichtig.
Aufgrund des hohen Tempos bei der Entwicklung von Apps, der sich rasch ändernden Technik und der ständig wachsenden Zahl an Endgeräten, steigt auch die Nachfrage an effizienten Automatisierungen von Test-Prozessen. Automatisierte Tests sind jedoch nur dann hilfreich, wenn diese richtig konfiguriert werden.
Beim Testen zählt nicht nur die Testausführung, sondern auch die Struktur der Testumgebung sowie die Qualität der Testdaten.
Aufwand beim Testen von Apps - das Fazit
Eine App richtig zu testen ist nicht einfach und kann ganz schön viel Zeit kosten - das zeigt die Vielfalt der beschriebenen Themen. Weniger Tests aber können bedeuten, dass die ursprünglich definierten Qualitätsanforderungen nicht eingehalten werden können. Eine der größten Hürden beim Testen von Apps sind die verschiedenen Geräte und Plattformen, die die Anwendung unterstützt. Diesen Schwierigkeiten kann man jedoch mithilfe von Emulatoren, Cloud- und Crowd Tests erfolgreich trotzen. Die bestmöglichen Ergebnisse bezüglich App-Qualität erhält man durch die Kombination von manuellen Tests und automatisierten Verfahren. Wird die Qualität der Anwendung kontinuierlich sichergestellt, dann kann man sich auch über die Treue seiner Nutzer sicher sein.