Dora Vision - Fotolia

Best Practices für die Einführung einer Teststrategie für Mobile Apps

Eine Teststrategie für Apps erfordert die Priorisierung von Tests, ein Framework für Testautomatisierungen und umfangreiche Sicherheitsüberprüfungen.

Eine gute Teststrategie für Mobile Apps erfordert, dass Enterprise-Architekten ein umfassendes Testautomatisierungs-Framework einsetzen. Dabei entstehen im Vorfeld einige Kosten für Arbeitszeit und Infrastruktur. Dies führt jedoch im Umkehrschluss zu qualitativ hochwertigen Apps, die besser auf Geschäftsziele ausgerichtet sind. Dies kann eine DevOps-Strategie erweitern, was eine schnellere Markteinführung und schnellere Änderungen in der App erlaubt.

„Die DevOps-Prinzipien von hohen Automatisierungs- und Kommunikationslevel innerhalb der Organisation können sicherlich helfen, Mobile Apps mit größerem Erfolg zu testen“, sagt John Busch, CTO von Moasis. „Die Sicherstellung eines engen Software Development Lifecycles (SDLC) mit kontinuierlicher Integration, der Unit-, Regressions- und UI-Tests ausführt, unterstützt einen erfolgreich hierbei.“ Dabei ist es wichtig, intelligente Tests zu priorisieren und Sicherheitstests in die Testinfrastruktur zu integrieren.

Intelligente Tests priorisieren

Die Natur fragmentierter mobiler Ökosysteme und die Notwendigkeit, verschiedene Arten von Benutzern zu unterstützen, kann eine Herausforderung darstellen. Automatisierung kann diesen Prozess beschleunigen. Doch dies kann nur soweit gehen, wie das Testbudget es hergibt.

„Eine gute Praxis ist, zu priorisieren, was als erstes getestet werden muss“, sagt Mush Honda, Quality Assurance Director beim IT-Service-Provider KMS Technology. „Man sollte damit beginnen, den Testansatz auf Features zu konzentrieren, die am wichtigsten für die Endanwender sind.“

Das erfordert einen durchdachten Ansatz für das Testing. Honda empfiehlt Unternehmen, ihre Testteams zu ermutigen, explorative Testprozesse zu verwenden, die Tester befähigen, Bereiche zu finden, die am wahrscheinlichsten Probleme verursachen.

Das macht es einfacher, Features zu testen, die das Unternehmen als erstes benötigt, womit Entwickler diese Probleme schneller lösen können. Explorative Tests erlauben es außerdem, eine automatisierte Test-Suite parallel laufen zu lassen, um Zeit zu sparen.

Es ist wichtig, eine pragmatische Teststrategie zu fahren. Honda empfiehlt die Verwendung einer optimalen Mischung von Geräten für Tests, die nach Standort, Gerätetyp, Betriebssystemversion, Konfiguration und Verbindungsoption variieren.

Mit einem Testautomatisierungs-Framework beginnen

Ein Framework für Testautomatisierungen kann es leichter machen, Probleme zu erkennen und die Kommunikation zu erleichtern. Dies kann auch in Entwickler-Tool-Sets integriert werden, so dass Entwickler die meisten Probleme beheben können, bevor der Code an das Testteam weitergegeben wird.

„Unternehmen profitieren vom Einsatz eines geräteunabhängigen Frameworks“, sagt Jon Thomas, Principal Product Manager bei BMC Software. „Selbst wenn man sich hundertprozentig sicher ist, dass man nur iOS oder nur Android unterstützt, sollte man ein Automatisierungs-Frameworks auswählen, das mit beiden Betriebssystemen funktioniert.“ Dies ermöglicht es dem Unternehmen, auf lange Sicht mehr Kunden zu erreichen, ohne Entwickler und Tester umschulen zu müssen. Appium und Calabash sind gute Open-Source-Optionen, die iOS und Android unterstützen.

Als nächstes muss das Unternehmen entscheiden, wo es die Anwendungen testet. Geräteemulatoren und -simulatoren können gute Optionen für schnelle Entwicklungstests sein. Es ist aber wichtig, echte Geräte für die Abnahme zu verwenden. Ein Ansatz ist, eine Private Cloud zu bauen und zu pflegen, in der die Emulatoren und Simulationen laufen.

„Hat man keine speziellen Anforderungen, um die Anwendungen On-Premises zu halten und zu testen, kann man auf einen Public-Cloud-Service wie Amazon Web Services (AWS) zurückgreifen", erläutert Thomas.

Sicherheitstests in der Teststrategie

„Die Teststrategie sollte auch Sicherheitstests als Teil des Prozesses beinhalten“, sagt der Sicherheitsberater Carsten Eilers. Die Behebung eines Sicherheitsfehlers während der Entwicklung ist günstiger, als wenn man ihn im produktiven Betrieb beheben muss. Das verringert außerdem das Risiko, Ärger mit Konsumenten oder Behörden zu bekommen, wenn die Schwachstelle im produktiven Einsatz entdeckt wird.

Mobile Sicherheit muss über ein breites Spektrum von Geräten und Betriebssystemversionen getestet werden. Laut Eilers ist es besonders wichtig, diese Tests mit gerooteten Geräten und Devices mit Jailbreaks zu machen. „Eine wirklich sichere App ist nicht nur sicher, wenn sie auf einem sicheren System und einem sicheren Gerät läuft, sondern auch auf einem unsicheren System und manipulierten Gerät. Es ist unmöglich, Rooting oder Jailbreak zu erkennen, wenn dies jemand verbergen möchte. Das liegt in der Natur solcher Manipulationen.“

Eine gute Praxis ist es, Sicherheits- und Designexperten an Bord eines Projekts zu holen. „Wenn man kontinuierlich den Code ändert und einen Continuous-Deployment-Ansatz für die Software wählt, benötigt man auch kontinuierliche Sicherheitstests“, sagt Eilers.

Sicherheitstests lassen sich nur schwer automatisieren

Eine Reihe von Sicherheits-Tools können dazu beitragen, einen DevOps Workflow für mobile Apps zu ergänzen. Zwei gemeinsame Klassen dieser Tools umfassen Static Application Security Testing (SAST) und Dynamic Application Security Testing (DAST). SAST ist schneller, da es nur den Code analysiert, um eklatante Schwachstellen zu finden. DAST sucht nach Schwachstellen, die durch das Verhalten der Apps verursacht werden. DAST ist somit umfangreicher und zeitaufwendiger.

„Es ist wichtig, Mobile Apps mit dem manuellen DAST zu testen, da es an Automatisierungstechnologie für die Überprüfung mobiler Anwendungen mangelt“, sagt Shreeraj Shah, Research Head bei der Sicherheitsberatungsfirma Blueinfy. Zu den zentralen Schachpunkten, nach denen man suchen sollte, zählen Orten, an denen sensible Informationen auf lokalen Storage oder freigegebenen Standorten gespeichert werden, und sensible Daten, die an Drittanbieterserver gesendet werden.

Mehr zum Thema App-Entwicklung:

SAP und Apple erweitern Kooperation: SAP Software Development Kit für Apple iOS.

Was eine Mobile-App-Strategie mit Online-Dating gemeinsam hat.

Microsoft PowerApps: Business-Apps ohne Vorkenntnisse entwickeln.

Kostenloses E-Handbook: Grundlagen der App-Entwicklung für Android und iOS.

App-Entwicklungs-Frameworks: Native versus Web versus hybride Apps.

Andere Arten von Überprüfungen, zum Beispiel Genehmigungen und API-Nutzung, lassen sich mit einer SAST-Methode effizient abdecken. „DAST hilft bei der Simulation von Traffic und der Erfassung der lokalen Speichernutzung mit einer höheren Sicherheit im Vergleich zu SAST“, erklärt Shah. „DAST erlaubt außerdem einen schnellen Turnaround, der aufgrund der Häufigkeit von Releases für Mobile Apps entscheidend ist.“

Einige Sicherheits-Tools für das Testing werden immer besser, doch der Bereich ist laut Shah unausgereift. Viele dieser Tools erzeugen am Ende False-Negative- und False-Positive-Ergebnisse, die im Rahmen des Development Lifecycles validiert werden müssen. „Wenn ein Unternehmen übermäßig begeistert Sicherheitstests automatisiert, erhält es am Ende lediglich ein Gefühl von Sicherheit, anstatt echter Sicherheit“, ist Shah überzeugt.

Systemweit fokussieren

Eine gute Teststrategie für Mobile Apps muss an die Gesamtziele des Unternehmens angepasst werden. Einfache funktionale Tests gehen soweit, wie sie dieses Ziel erfüllen. Kontinuierliche Integration (Continuous Integration), kontinuierliches Testing und kontinuierliche Bereitstellung (Continuous Delivery) sind Praktiken in der Gesamt-DevOps-Strategie.  „Es ist wichtig, die Ziele aus einer systemweiten Perspektiven zu betrachten, anstatt sich auf die lokale Optimierung innerhalb einer einzigen Praxis zu konzentrieren“, sagt BMC-Manager Thomas.

Für die meisten Organisationen ist das systemweite Ziel, schnell überzeugende und qualitativ hochwertige Anwendungen für ihre Kunden zu veröffentlichen. „Wenn der Fokus nur auf dem Testing liegt, kann man eine lokale Optimierung erstellen, die das systemweite Ziel nicht beeinflusst", erklärt Thomas. Das Unternehmen kann gute Tests erstellen, doch wenn es lange Wartezeiten gibt, um manuell die Tests auszuführen, kann sich der Software Development Lifecycle deutlich verlangsamen.

Werden Tests darüber hinaus nicht konsequent gemacht, kann die Qualität darunter leiden. „Durch die Integration automatisierter Tests in den Continuous-Delivery-Prozess, kann man die Veröffentlichung beschleunigen und trotzdem die Qualität garantieren“, sagt Thomas.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im Juni 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Software-Entwicklung

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close