Nur das Gelbe vom Ei

Artikel von Torsten Zimmermann

Wie professionelle Qualitätssicherung die Entwicklung sicherer Apps unterstützt

Testen in der Softwareentwicklung ist doch immer das Gleiche? Weit gefehlt! – Zwischen der Qualitätssicherung bei klassischen, betriebswirtschaftlichen Anwendungen und der bei „mobile Apps“ bestehen einige entscheidende Unterschiede.

Und gerade seit den Abhörskandalen mobiler Endgeräte wird einmal mehr deutlich, welch hohen Stellenwert die Qualitätssicherung bei der Entwicklung mobiler Anwendungen und Endgeräte hat. Das Gefahrenpotenzial für die Anwender kann hier sogar deutlich höher sein als im Umfeld klassischer Softwaresysteme: Schnell kann das Tablet oder Smartphone zum Beispiel zur Abhörwanze umfunktioniert werden.

Dieser Artikel erläutert die Gründe, warum erst durch umfangreiche Anpassungen der klassischen QS-Prozesse aus dem Softwareumfeld ein erfolgreiches Qualitätsmanagement innerhalb der Entwicklung im Mobile-Sektor möglich wird, und stellt die neuesten Testtechnologien im App-Umfeld zum Aufbau professioneller Testmethoden und -prozesse vor.

Im Vergleich zum Desktop-Computer gelten für mobile Geräte wie beispielsweise Handys oder 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 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, wie beispielsweise:

1. Umweltfaktoren: Smartphones sind vielen Umwelteinflüssen ausgesetzt: Temperatur, Feuchtigkeit und Nässe, Staub und Schmutz oder mechanische Beanspruchung. Dennoch sollte es einwandfrei funktionieren.

2. Datensicherheit: Mobile Endgeräte werden immer öfter für die unseriöse Beschaffung privater Daten und Informationen benutzt. Bisher sind Smartphones gar nicht gegen derartige Angriffe geschützt. Ein Einbruch in das betreffende Gerät ist wesentlich einfacher als beispielsweise in einen PC. Auf der anderen Seite sind die möglichen illegalen Maßnahmen und Möglichkeiten deutlich umfangreicher und effektiver als bei einem PC. Über ein Smartphone sind in der Regel sowohl wichtige Informationen wie Zugangsinformationen zu beschaffen, Personen lückenlos zu überwachen als auch deren Gespräche abzuhören – selbst wenn das Gerät ausgeschaltet ist.

3. Intuitive Bedienung: Benutzer möchten sich nicht mit komplexen Funktionen beschäftigen – eine einfache Bedienung des Smartphones und der Apps ist Grundvoraussetzung, damit die Benutzerakzeptanz gegeben ist und Ablenkungen vom Alltagsgeschäft und Umfeld vermieden werden.

4. Einfache Bedienung: Das Anwählen der Funktionen sollte einfach sein; hierzu sind beispielsweise groß genug dimensionierte Tasten notwendig, um Fehlbedienungen zu vermeiden.

5. Stabilität: Die Funktionalität selbst sollte stabil und akkurat arbeiten und ebenso intelligent sein. Anstatt viele Parameter beim Benutzer abzufragen, sollte die mobile Anwendung aus Geokoordinaten, über Sensorik erfasste Umweltparameter und durch Verwaltung von Nutzerprofilen diese Informationen bei Funktionsaufrufen berücksichtigen. So lassen sich komplexe Bedienereingaben vermeiden.

6. Lesbarkeit: Die gute Lesbarkeit der Informationen sollte auch bei schwierigen Lichtverhältnissen gegeben sein, um den Benutzer nicht zu ermüden. Diese wichtige Eigenschaft wird beispielsweise durch kontrastreiche Displays und automatische Kontrastanpassung bei sich verändernden Lichtverhältnissen realisiert. Aber auch im Rahmen des Anwendungsdesigns sollten bei Daten- und Informationsmasken die Farben und die Objektanordnung so gewählt werden, dass auch bei schlechten Lichtverhältnissen die Informationen vom Anwender gut erfasst werden können.

Marktanforderungen nehmen zu

Konnten zu Beginn der Smartphone-Ära bereits einfachste Anwendungen den Smartphone-Besitzer 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. Daneben gewinnt das Thema Datenschutz immer mehr an Bedeutung, seitdem Smartphones zu Datensammlern persönlicher Informationen geworden sind. Dabei sollten Softwarehersteller ihre Smartphone-Anwendungen für die drei wichtigsten Plattformen – iOS, Android und Phone 8 – entwickeln und diese mit jeweils dem gleichen Funktionalitätsangebot und in der gleichen guten bis exzellenten Qualität zur Verfügung stellen, wenn sie dieses attraktive und zukunftsträchtige Marktsegment beherrschen möchten. Analysen der User-Akzeptanz der Apps innerhalb der betreffenden Stores der genannten Technologieplattformen zeigen bereits die Tendenz, dass das Anwenderinteresse auf die ersten beiden Apps innerhalb eines Anwendungssegments fokussiert. Softwareunternehmen, die ihre Marktposition langfristig in diesem Marktsegment etablieren und ausbauen möchten, sollten ein effektives Qualitätsmanagement mit dem Ziel realisieren, den Erwartungshorizont (siehe auch Kasten Qualitätsmerkmale) der Anwender möglichst gut zu treffen. Obschon eine Position 4 oder 5 in der Beliebtheitsrangliste der Apps eines Segmentes gut ist, kann sich dies aus wirtschaftlicher Sicht für das Softwareunternehmen 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. Nachfolgend sind die 10 wichtigsten Qualitätsaspekte gelistet, welche als Basis von Anwenderentscheidungen dienen, ob eine App ausgewählt, installiert und angewendet wird oder nicht. Mobile Anwendungen sollten gemäß der betreffenden Marktanforderungen folgende Qualitätsmerkmale unterstützen:

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 in einer festgelegten Umgebung notwendig ist (hierunter sind auch Migrationen zu sehen)

Das Testen von Apps 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:

1. Usability-Tests beispielsweise mit den Themen:

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

2. Mobility-Tests beispielsweise mit den Themen:

  • Connectivity
  • Umwelteinflüsse
  • Sensorik

3. Funktionale Tests beispielsweise mit den Themen:

  • Richtigkeit
  • Stabilität
  • Robustheit gegen Fehlbedienung

4. Sicherheitstests beispielsweise mit den Themen:

  • Berechtigungen
  • Verschlüsselungen
  • Datenschutz
  • Erkennen von Missbrauch und Hackerangriffen

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

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, welcher ü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 UsabilityUmfeld einsetzbar wären.

Aber die Testautomation ist dennoch der Schlüssel!

Gerade erläuterte ich, 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:

1. Die Testautomation schafft 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, welche aber vor der Testdurchführung liegen und in der Regel keine Engpässe oder kritischen Pfade entstehen lassen.

2. Moderne Testautomationsframeworks erlauben die Erstellung und Pflege der Testprozesse in einer testtool- beziehungsweise testtreiberneutralen Sprache, welche 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 Phone 8 realisiert wird. Damit reduziert sich der Spezifikations- und Vorbereitungsaufwand bis auf ein Drittel des sonst notwendigen Aufwandes für die Qualitätssicherung aller drei Applikationsvarianten für die Android-, iOS- und Phone-8-Plattformen.

3. Die Testautomation kann nicht nur Schwächen am Testobjekt selbst 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, welche die Entwicklungskosten nachfolgender Softwareversionen senkt.

Die technischen Standards sind im Umbruch

Aktuell ändern sich die technischen Anforderungen für Testtreiber 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 auf die Zukunft werden die drei Plattformen Android, Phone 8 und iOS die wichtigsten technischen Plattformen für Handys, 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 den klassischen Testtechnologien auf Basis von Schlüsselwörtern oder „Capture/Replay“ vor. Diese neuen technologischen Testansätze

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

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

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

1. HTML5
2. Android (Google)
3. iOS (Apple)
4. Phone 8 (Microsoft)

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, welche insbesondere auf „Mobile Testing“ abgestimmt sind. So sind am Markt Systeme von Communology und i3 Consult verfügbar.

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

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 diese an die Testtreiber oder Testwerkzeuge zur Ausführung weitergegeben werden.

Der T3-Ansatz zum Beispiel transformiert, nachdem die Testmanagement-Anwendung 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. 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? Die Prinzipdarstellung in Abbildung 5 zeigt die wichtigsten Aufgaben. Testtreiber der neuen Generation verfügen über einen Adapter, der aufgrund seiner Konfigurationsoptionen in Testtool-Plattformen und Testframeworks erfolgreich eingebunden werden kann. Damit lässt sich das Werkzeug nicht nur „standalone“, 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 Versionsmanagement-Tool verwendet wird. Diese Anwendung wird auf das betreffende Testobjekt übertragen und die zugehörige Treibervariante wird aktiviert. Die Testdurchführung fährt die codierten Testschritte ab und vergleicht die zu erwarteten Ergebnisse mit den Ist-Werten. Alle relevanten Informationen der Testdurchführung werden in einem Testlog beziehungsweise Testprotokoll festgehalten und als Testergebnisse abgelegt oder an das Testmanagementsystem übertragen.

Der Handy- und Smartphone-Markt ist im Wandel

Seit 2009 hat sich der Handy- und Smartphone-Markt nachhaltig geändert: Symbian hat seine marktbeherrschende Position eingebüßt. Die Anwender verlangen heute benutzerfreundliche, anpassbare Betriebssysteme für Handys, Smartphones und Tablets, welche durch zusätzliche Module und Software erweiterbar sind. Hierin bergründete sich die Ablösung der ehemaligen Könige durch die neuen Platzhirsche Android und iOS.

Doch es kündigt sich bereits eine weitere Veränderung am Markt an. Heute ziehen Anwender offene Systeme geschlossenen vor. So ist inzwischen Android die führende Technologieplattform im Bereich mobiler Endgeräte. Experten erwarten deshalb, dass Microsoft mit seinem Phone 8 in den nächsten Jahren iOS auf Platz drei verdrängen wird. Symbian spielt heute keine Rolle mehr und wird vom Markt verschwinden. Die Forecasts zeigen, dass RIM und iOS weiter an Bedeutung verlieren werden. Es zeichnet sich bereits ab, dass RIM dem Schicksal von Symbian folgen wird.

Das Smartphone als Sicherheitsrisiko

Die heutigen Smartphones stellen für den Besitzer ein Sicherheitsrisiko dar, da diese im Vergleich zu PCs wenig geschützt sind und somit ein Einbruch in das System oder der Diebstahl vergleichsweise einfach durchzuführen ist. Ähnliches gilt natürlich auch für Tablet-PCs. Einige der typischen Gefährdungen sind im Folgenden aufgelistet:

  • Smartphones haben ein geringes Gewicht und kleine Abmessungen. Daher sind sie besonders durch physischen Verlust oder Diebstahl gefährdet. Ihr hoher Wiederverkaufswert macht Smartphones für Diebe sehr attraktiv. Es ist auch relativ unwahrscheinlich, verlorene Smartphones zurückzubekommen. Der damit verbundene Datenverlust stellt eine große Gefährdung dar. Auf acht Gigabyte lassen sich Projektdaten jeglicher Art (Ausschreibungen, Preiskalkulationen etc.), private Daten, Zugangsinformationen, E-Mails etc. von vielen Jahren in vollem Umfang speichern.
  • Oft werden aber auch gebrauchte Smartphones weiterverkauft, da diese oft noch einen beachtlichen Restwert darstellen. Hierbei ist zu beachten, alle persönlichen Daten vor der Übergabe des Gerätes zu löschen. Dies ist jedoch gar nicht so einfach. Selbst nach dem Löschen aller Daten aus den Verzeichnissen und der Aktivierung der Werkseinstellungen könnten Datenfragmente im Speicher verbleiben. In der Regel hat der Besitzer keine Chance, alle Daten aus dem Speicher rückstandlos zu entfernen.
  • Smartphones besitzen meistens mehrere Schnittstellen, wie USB, WLAN und Bluetooth für den Datenaustausch. Sind diese Schnittstellen unzureichend abgesichert, können Daten darüber entwendet werden.
  • Es gibt eine stetig zunehmende Anzahl von Schadsoftware, welche auf Smartphones spezialisiert ist. Häufig stehen dahinter ähnliche Ziele wie bei Schadsoftware für den PC, es gibt aber auch einige andere – vom PC her unbekannte – Zielsetzungen wie beispielsweise: unbemerkt fremde Telefonnummern anzuwählen, das Abhören von Gesprächen oder das Tracken von Personen. Hierdurch entstanden in den letzten Jahren neue Gefahrenpotenziale für die Smartphone-Besitzer.
  • Große Mengen infizierter Smartphones könnten für Überlastangriffe (Denial of Service) auf Telefonanschlüsse benutzt werden, um bestimmte Nummern, wie von Behörden, Polizei, Rettungsdiensten oder sonstigen Serviceeinrichtungen, oder das gesamte Handynetz zu blockieren.
  • Viele Smartphones besitzen einen GPS-Empfänger, über den automatisch Positionsdaten abgerufen, aber auch aufgezeichnet werden können. Diese Lokalisierung kann sowohl für ortsgebundene Dienste als auch für die Aufzeichnung von Bewegungsprofilen benutzt werden.

Fazit

Momentan ist der gesamte Mobile-Markt stark in Bewegung. So ist auch in den kommenden Jahren mit weiteren Umstrukturierungen zu rechnen. Der Marktführer von heute kann sich in fünf Jahren in einer Marktnische wiederfinden. Nirgends verläuft momentan der technologische Wandel innerhalb der IT- und Kommunikationsbranche 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 umfänglich 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, welches Apps für den Mobile-Sektor entwickelt, sehr gefährlich: Heute strafen Anwender schnell fehlerbehaftete Lösungen ab. Zukünftig werden nur die bei den Anwendern beliebtesten Lösungen langfristig erfolgreich 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

1. stets etwas früher als Mitbewerber die Software mit den neuen Features zu realisieren und

2. diese natürlich möglichst fehlerfrei in der vom Anwender erwarteten Qualität zu liefern.

Die großen Tool-Hersteller können oft nicht den schnellen Marktveränderungen zeitnah folgen. Jedoch gibt es einige Spezialisten am Markt, welche 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.

Gerade die aktuell aufgedeckten Abhörskandale zeigen, dass die Qualitätssicherung innerhalb der Entwicklung von Betriebssystemen für Smartphones und „mobile Apps“ noch nicht das notwendige Niveau erreicht hat, sodass am Ende qualitativ hochwertige Produkte am Markt verfügbar wären. Dabei sind die Kosten für die QS-Maßnahmen sicherlich umfangreich, aber vor allem notwendig. Denn die – daraus resultierenden – Risiken sind unkalkulierbar. Letztlich kann gar die Sicherheit eines Staates auf dem Spiel stehen. Wer möchte hier noch von zu hohen Kosten in der Qualitätssicherung sprechen?

Bücherliste

1. Software Test Automation: Effective Use of Test Execution Tools, ISBN-10: 0201331403
2. Experiences of Test Automation: Case Studies of Software Test Automation, ISBN-10: 0321754069
3. Basiswissen Testautomatisierung: Konzepte, Methoden und Techniken, ISBN-10: 3898647242
4. Basiswissen Modellbasierter Test, ISBN-10: 3898645894
5. Leitfaden für die Einführung einer Testautomation zur effizienten Qualitätssicherung von Softwareprodukten, ISBN-10: 3640813162

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kategorien

Recent Posts