Professionelle Qualitätssicherung in der App-Entwicklung

Neue Testtechniken für die Next-Generation-Apps
Kommentare

Testen in der Softwareentwicklung ist doch immer das Gleiche? Weit gefehlt! Zwischen der Qualitätssicherung (QS) klassischer, betriebswirtschaftlicher Anwendungen und mobiler Apps bestehen einige entscheidende Unterschiede. Dieser Artikel erläutert, warum erst durch umfangreiche Anpassungen der klassischen QS-Prozesse aus dem Softwareumfeld ein erfolgreiches Qualitätsmanagement innerhalb der App-Entwicklung möglich wird. Außerdem werden die neuesten Testtechnologien im App-Umfeld zum Aufbau professioneller Testmethoden und -prozesse vorgestellt.

Im Vergleich zum Desktopcomputer gelten für mobile Geräte, wie beispielsweise Smartphones, besondere Rahmenbedingungen: Nicht nur die Bildschirmgröße ist deutlich geringer, sondern mobile Dienste und Anwendungen (Apps) werden häufig in einem völlig anderen Nutzungskontext verwendet. Während Anwender im Büro über einen Internetzugang mit hoher Bandbreite und ein perfekt abgestimmtes Umfeld für die Bildschirmarbeit verfügen, müssen Nutzer mobiler Anwendungen mit einer ganzen Reihe nachteiliger Faktoren zurechtkommen. Aus diesem Grund gelten für mobile Anwendungen erweiterte Anforderungen.

Marktanforderungen nehmen zu

Konnte man zu Beginn der Smartphone-Ära deren Besitzer bereits mit einfachsten Anwendungen begeistern, so haben sich auch hier inzwischen die Vorzeichen deutlich verändert. Es ist heute selbstverständlich, dass Funktionalitäten mobiler Anwendungen fehlerfrei und stabil zur Verfügung stehen. Dabei sollten Softwarehersteller ihre Smartphone-Anwendungen für die drei wichtigsten Plattformen, iOS, Android und Windows Phone 7 (WP7), entwickeln und mit jeweils dem gleichen Funktionalitätsangebot und in der gleichen guten bis exzellenten Qualität zur Verfügung stellen. Nur so können sie dieses attraktive und zukunftsträchtige Marktsegment beherrschen. Analysen der Userakzeptanz zeigen die Tendenz, dass sich das Anwenderinteresse innerhalb eines Anwendungssegments in einem App-Store auf die ersten beiden Apps im Ranking fokussiert. Softwareunternehmen, die ihre Marktposition langfristig etablieren und ausbauen möchten, sollten ein effektives Qualitätsmanagement realisieren. Ziel sollte dabei sein, den Erwartungshorizont der Anwender möglichst gut zu treffen. Zwar ist es objektiv als gut zu bewerten, wenn eine App die Position vier oder fünf in der Beliebtheitsscala eines Segmentes einnimmt, aus wirtschaftlicher Sicht kann sich dies aber bereits als unrentabel darstellen, sodass die Weiterentwicklung der Software infrage steht

Qualitätsmerkmale

Im mobilen Umfeld gelten für Apps andere Gesetze als zum Beispiel bei Softwareanwendungen für den Büroalltag (Abb. 1). Nachfolgend sind die zehn wichtigsten Qualitätsaspekte gelistet, die als Basis von Anwenderentscheidungen dienen, ob eine App ausgewählt, installiert und angewendet wird oder nicht. Entsprechend sollten mobile Anwendungen gerade die betreffenden Marktanforderungen zu diesen Qualitätsmerkmalen möglichst genau umsetzen:

Abb. 1: Die Qualitätsmerkmale nach ISO 9126 bzw. ISO 25000

  1. Richtigkeit (Accuracy): Liefern der richtigen oder vereinbarten Ergebnisse oder Wirkungen, zum Beispiel die benötigte Genauigkeit berechneter Werte
  2. Stabilität (Stability):geringe Wahrscheinlichkeit des Auftretens unerwarteter Wirkungen bei Änderungen an Umgebungen in der Software oder Benutzerinteraktion
  3. Bedienbarkeit (Operability): geringer Aufwand für den Benutzer, die Anwendung zu bedienen
  4. Sicherheit (Security): Fähigkeit, unberechtigten Zugriff sowohl versehentlich als auch vorsätzlich auf Programme und Daten zu verhindern
  5. Reife (Maturity): geringe Versagenshäufigkeit durch Fehlerzustände
  6. Fehlertoleranz (Fault Tolerance): Fähigkeit, ein spezifiziertes Leistungsniveau bei Softwarefehlern oder Nichteinhaltung ihrer spezifizierten Schnittstelle zu bewahren
  7. Verständlichkeit (Understandability): Aufwand für den Benutzer, das Konzept und die Anwendung zu verstehen
  8. Verbrauchsverhalten (Resource Behavior): ressourcensparender Einsatz notwendiger Betriebsmittel (wie CPU-Zeit und RAM) bei der Funktionsausführung, Ressourcenverbrauch
  9. Zeitverhalten (Time Behavior): kurze Antwort- und Verarbeitungszeiten sowie hoher Durchsatz bei der Funktionsausführung
  10. Installierbarkeit (Installability): geringer Installationsaufwand, welcher einer festgelegten Umgebung notwendig ist, hierunter sind auch Migrationen zu sehen

Apps testen ist anders – und doch gleich!

Da das Anforderungsprofil für mobile Anwendungen deutlich von Büroanwendungen abweicht, schlägt sich diese Erkenntnis auch in Rahmen der Teststruktur nieder. So sollte das Testkonzept folgende Themen behandeln:

Usability Tests, u. a. mit den Themen:

  • Bedienung
  • Informationserfassung, -auswertung, -darstellung
  • Barrierefreiheit

Mobility Tests, u. a. mit den Themen:

  • Connectivity
  • Umwelteinflüsse
  • Sensorik

Funktionale Tests, u. a. mit den Themen:

  • Richtigkeit
  • Stabilität
  • Robustheit gegen Fehlbedienung

Sicherheitstests, u. a. mit den Themen:

  • Berechtigungen
  • Verschlüsselungen
  • Datenschutz

Damit ergeben sich verschiedene Testszenarien, die es mit geeigneter Werkzeugunterstützung professionell – das heißt gleichermaßen effektiv wie auch effizient – durchzuführen gilt.

Es geht nicht ohne manuelle Tests

Aufgrund der Themenbreite und der unterschiedlichen Aufgabenstrukturen sind sowohl automatisierte, toolgestützte wie auch manuelle Tests vorzusehen: Während beispielsweise funktionale Tests sich sehr gut über eine Testautomation durchführen lassen, ist bei dem Thema Usability der erfahrene Testingenieur gefragt, der über manuelle Bediensimulationen die Qualität der Benutzerführungen und Informationsdarstellung bewertet. Sicher können hierbei spezielle Werkzeuge, wie das Eye Tracking, im Testaufbau berücksichtigt werden und wertvolle Informationen liefern. Es gibt jedoch keine Werkzeuge, die für eine sinnvolle, automatisierte Testdurchführung im Usability-Umfeld einsetzbar wären.

Testautomation ist dennoch der Schlüssel!

Gerade wurde erläutert, dass Testautomation im Rahmen des „Mobile Testings“ nicht alle Themen behandeln kann. Dennoch bin ich der Meinung, dass eine gute Einführung automatisierter Testprozesse innerhalb der Entwicklungsprozesse für das Softwareunternehmen den nachhaltigen Erfolg im App-Marktsegment unterstützt oder gar erst ermöglicht. Hierzu einige Gedanken:
So schafft die Testautomation zusätzliche, freie Kapazitäten beim Testteam während der heißen Testdurchführungsphase. Damit können sich Testingenieure zum Beispiel auf die Themen Usability oder Feldtest konzentrieren.
Anmerkung: Natürlich verlagern sich die Aufwände der Testautomation von der Durchführung in die Spezifikations- und Vorbereitungsphasen, die aber vor der Testdurchführung liegen und in der Regel keine Engpässe oder kritische Pfade entstehen lassen.
Moderne Testautomationsframeworks erlauben darüber hinaus die Erstellung und Pflege der Testprozesse in einer testtool- beziehungsweise testtreiberneutralen Sprache, die auch verschiedene Technologieplattformen der Testobjekte unterstützen. Für die App-Entwicklung bedeutet dies, dass betreffende Testprozesse für die Prüfung der Eigenschaften nur einmal erstellt und gepflegt werden müssen, selbst wenn die Anwendung auf Android, iOS und WP7 realisiert wird. Damit reduzieren sich der Spezifikations- und Vorbereitungsaufwand bis auf ein Drittel des für die Qualitätssicherung aller drei Applikationsvarianten üblichen Umfangs.
Zu guter Letzt kann die Testautomation nicht nur Schwächen am Testobjekt erkennen, sondern – wenn man Testergebnisse richtig interpretiert – auch Schwächen in den Spezifikationen und Entwicklungskonzepten identifizieren. Diese Erkenntnisse sind wichtig, um eine Optimierung der Entwicklungsprozesse zu ermöglichen, die die Entwicklungskosten nachfolgender Softwareversionen senkt.

Aufmacherbild: Young woman pressing various collection of high tech buttons von Shutterstock / Urheberrecht: ra2studio

[ header = Schlüsselanforderungen an Testwerkzeuge ]

Schlüsselanforderungen an Testwerkzeuge für „Mobile Testing“

Um eine erfolgreiche Testautomation zu ermöglichen, sollten spezielle, hierzu entwickelte Testtreiber verwendet werden, die die folgenden technologischen Plattformen ansprechen können:

  • HTML5
  • Android (Google)
  • iOS (Apple)
  • Windows Phone7 (Microsoft)
  • RIM (BlackBerry)
  • Symbian (Nokia)
Die technischen Standards sind im Umbruch

Aktuell ändern sich die technischen Anforderungen für Testreiber und -werkzeuge in der Testautomation: Waren zum Beispiel vor einigen Jahren Java ME und Symbian noch wichtige Anforderungen, so gilt dies heute schon nicht mehr. Mit Blick in die Zukunft werden die drei Plattformen, Android, Windows Phone 7 und iOS, die wichtigsten technischen Plattformen für Smartphones und Tablets darstellen. Daneben sollten die Testsysteme auch mit HMTL5 umgehen können. Auch bei der Testautomation selbst findet seit Jahren ein Umdenken statt: Heute zieht man modell- und interaktionsgetriebene Testansätze, Testtechnologien auf Basis von Schlüsselwörtern oder „Capture/Replay“ vor. Diese neuen technologischen Testansätze

  1. ermöglichen eine engere Verzahnung mit den Entwicklungsprozessen,
  2. lassen eine Realisierung der Prüf- und Testroutinen parallel zur Produktentwicklung zu,
  3. unterstützen günstigere Time-to-Market-Bedingungen und
  4. erlauben es, automatisierte Testfälle mit geringerem Aufwand zu erstellen und zu warten, als dies mit den klassischen technologischen Methoden in der Testautomation möglich ist.

Aktuell können die Testautomationswerkzeuge der bekannten und großen Toolhersteller im Testumfeld nur bedingt die Anforderungen aus dem „Mobile Testing“ unterstützen. Doch glücklicherweise gibt es spezielle Testframeworks und Testtreiber, die speziell auf „Mobile Testing“ abgestimmt sind. So sind am Markt Systeme von Communology und i3 Consult verfügbar. Abbildung 2 zeigt den Testaufbau mit Smartphones.

Abb. 2: Testaufbau mit Smartphones

Bei der Lösung von i3 Consult können die Automationstests sowohl auf dem Smartphone selbst als auch auf einer virtuellen Maschine, die das Smartphone simuliert, ausgeführt werden (Abb. 3). Der Vorteil hierbei besteht darin, innerhalb der Tests nicht auf das betreffende Smartphone selbst angewiesen zu sein. Ferner können Tests in virtuellen Umgebungen oft schneller ausgeführt werden als auf dem Smartphone selbst.

Abb. 3: Testaufbau mit virtuellen Maschinen, die Smartphones simulieren

Damit verschiedene Testobjekte über ein Testframework mittels einer möglichst abstrakten Testsprache angesteuert werden können, müssen die jeweiligen Testprozessdefinitionen über eine Sprachtransformation in proprietäre Testskripte transformiert werden, bevor sie an die Testtreiber oder Testwerkzeuge zur Ausführung weitergegeben werden.
Der T3-Ansatz zum Beispiel (Abb. 4) transformiert, nachdem die Testmanagementanwendung die Testsuite ausführen lässt, die in der abstrakten Testmodellsprache T3 TML definierten Testprozeduren mittels einer Script Engine in die jeweilige proprietäre Sprache des anzusteuernden Testtreibers.

Abb. 4: Das T3-Prinzip – Ansteuerung verschiedener Testreiber über eine Testmodellsprache

Dieser Testtreiber führt schließlich die Testschritte aus und übermittelt die Testergebnisse an das Testmanagementsystem. Viele Testtreiber interpretieren die besagten proprietären Testskripte. Es gibt aber auch Ausnahmen, die den Code kompilieren, sodass der daraus entstandene Binärcode selbst ausführbar ist und die Prüfungen durchführt. Wie funktionieren Testtreiber im Rahmen der Testautomation von Apps?
Testtreiber der neuen Generation verfügen über einen Adapter, der aufgrund seiner Konfigurationsoptionen in Testtoolplattformen und Testframeworks erfolgreich eingebunden werden kann. Damit lässt sich das Werkzeug nicht nur „stand alone“, sondern auch innerhalb größerer Test-Factories über externe Steuerung durch Testmanagementsysteme betreiben. Der Testtreiber selbst führt die Vorbereitungs-, Durchführungs- und Abschlussaufgaben innerhalb der Tests aus. Initial werden die Testobjekte aufgebaut, wobei hierzu der betreffende Code aus dem Versionsmanagementtool verwendet wird. Diese Anwendung wird auf das betreffende Testobjekt übertragen und die zugehörige Treibervariante aktiviert. Die Testdurchführung fährt die kodierten Testschritte ab und vergleicht die zu erwarteten Ergebnisse mit den Ist-Werten. Alle relevanten Informationen der Testdurchführung werden in einem Test-Log beziehungsweise Testprotokoll festgehalten und als Testergebnisse ablegt oder an das Testmanagementsystem übertragen (Abb. 5).

Abb. 5: Testtreiber der neuen Generation mit Adapter

Der Smartphone-Markt ist im Wandel

Seit 2009 hat sich der Smartphone-Markt nachhaltig geändert (Abb. 6): Symbian hat seine marktbeherrschende Position an Android abgeben müssen. Die Anwender verlangen heute benutzerfreundliche, anpassbare Betriebssysteme für Smartphones und Tablets, die durch zusätzliche Module und Software erweiterbar sind. Hierin bergründet sich die Ablösung der ehemaligen Könige durch die heutigen Platzhirsche Android und iOS.

Abb. 6: Entwicklung der Marktanteile der verschiedenen Betriebssysteme von 2009 bis 2015

Doch es kündigt sich bereits eine neue Veränderung am Markt an: Heute ziehen Anwender offene Systeme geschlossenen vor. Experten erwarten deshalb, dass Android seine Marktanteile weiter ausbauen und Microsofts WP 7 in die Klasse der Verfolger aufsteigen wird. Symbian wird vom Markt verschwinden. Ferner erwarten Marktkenner, dass RIM und iOS an Bedeutung verlieren werden.

[ header = Systeme für das Testmanagement ]

Systeme für das Testmanagement

Tabelle 1: Testmanagementsysteme in der Übersicht

Spezial-Testtreiber für Mobile-Anwendungen zur Testautomation

Tabelle 2: Spezielle Testtreiber in der Übersicht

Fazit

Aktuell ist der gesamte Mobile-Markt stark in Bewegung. So ist auch in den kommenden Jahren mit weiteren Umstrukturierungen zu rechnen. Nirgends verläuft der technologische Wandel innerhalb der IT- und Kommunikationsbranche aktuell so rasant wie im Mobile-Sektor. Dies hat natürlich auch Konsequenzen für die Testwerkzeuge: Damit QS-Systeme die Ziele des Qualitätsmanagements innerhalb der Softwareentwicklung umfassend unterstützen können, müssen die betreffenden Testwerkzeuge möglichst rasch den technologischen Veränderungen folgen. Sollte man also als Softwareunternehmen mit dem Kauf von Testwerkzeugen zum Aufbau einer professionellen Qualitätssicherung warten? Nein, denn das wäre für das Unternehmen, das Apps für den Mobile-Sektor entwickelt, sehr gefährlich: Heute strafen Anwender fehlerbehaftete Lösungen schnell ab. Zukünftig werden nur die bei den Anwendern beliebtesten Lösungen langfristig vom interessanten wie auch wachsenden Mobile-Markt profitieren. Professionelle Qualitätssicherungssysteme unterstützen ein kurzes Time to Market und liefern rasch Ergebnisse über die marktrelevanten Qualitätsmerkmale. Diese beiden Punkte sind wichtig, um

  • stets etwas früher als die Mitbewerber die Software mit den neuen Features zu realisieren und
  • diese natürlich möglichst fehlerfrei in der, vom Anwender erwarteten, Qualität zu liefern.

Die großen Toolhersteller können den schnellen Marktveränderungen oft nicht zeitnah folgen. Jedoch gibt es einige Spezialisten am Markt, die diese Lücke schließen. Oft lassen sich deren Lösungen auch mit den Standardtools der großen Hersteller verbinden, sodass sich diese gut in bestehende Testinfrastrukturen integrieren lassen.

Empfohlene Literatur zum Thema

  • Fewster, Mark; Graham, Dorothy: „Software Test Automation“, ISBN-10: 0201331403
  • Fewster, Mark; Graham, Dorothy: „Experiences of Test Automation: Case Studies of Software Test Automation“, ISBN-10: 0321754069
  • Seidl, Richard; Baumgartner, Manfred; Bucsics, Thomas: „Basiswissen Testautomatisierung: Konzepte, Methoden und Techniken“, ISBN-10: 3898647242
  • Roßner, Thomas; Brandes, Christian; Götz, Helmut; Winter, Mario: „Basiswissen Modellbasierter Test“, ISBN-10: 3898645894
  • Drescher, Arne: „Leitfaden für die Einführung einer Testautomation zur effizienten Qualitätssicherung von Softwareprodukten“, ISBN-10: 3640813162
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -