Automatisierte Fehlersuche

Tipps für eine erfolgreiche Testautomatisierung von Apps

Als VP und Geschäftsführer EU leitet Jan Wolter das Europageschäft für Applause und ist verantwortlich für den Ausbau des Unternehmens im europäischen Markt. Zuvor war er CEO und Mitgründer von testhub, dem deutschen Softwaretesting-Anbieter, der sich im Mai 2014 mit Applause zusammenschloss. Durch beide Aufgaben verfügt er über jahrelange Erfahrung in der Umsetzung und Skalierung innovativer Testing-Lösungen und über tiefe Einblicke in die rasanten Entwicklungen der App Economy.

 
Damit Apps bei den Usern nicht sofort in Ungnade fallen, bedarf es neben manuellen Qualitätstestings auch einer guten Strategie zur Testautomatisierung. Diese Tipps sollten QA-Verantwortliche dabei unbedingt beachten.
Der erste Eindruck entscheidet: Wenn Apps nicht so funktionieren wie erwartet werden sie sofort gelöscht.
Der erste Eindruck entscheidet: Wenn Apps nicht so funktionieren wie erwartet werden sie sofort gelöscht.
Foto: Sergey Nivens, Fotolia.de

Wische rechts, tippe links, klicke oben, drücke unten - und es passiert: nichts. Kaum etwas ist nerviger für App-Nutzer, als wenn eine Anwendung nicht so funktioniert wie beabsichtigt. Wer einmal eine gefühlte Ewigkeit auf dem Bildschirm seines Smartphones oder Tablets herumgedrückt hat, ohne dass sich etwas tut, der weiß: Zweite Chancen gibt es nicht. Die Anwendungen landen meist sofort auf dem App-Friedhof.

Damit Unternehmen genau das vermeiden können und Nutzer langfristig zu Fans werden, ist ein ausreichendes Maß an Qualitätssicherung (Quality Assurance) im Entwicklungsprozess unumgänglich. Dabei benötigt eine gute und ausbalancierte Strategie zwei Testing-Arten: manuelle Testings einerseits und automatisierte Tests andererseits.

Bei der manuellen Überprüfung der Apps geht es vor allem darum, Probleme auszumachen, die menschlicher Kreativität bedürfen, also beispielsweise optische Fehler oder darum, bei der Entwicklung bisher nicht berücksichtigte Nutzungsszenarien zu checken. Im Gegensatz dazu sind automatisierte Testings für vordefinierte und immer wieder durchführbare Abläufe geeignet.

Bedingt durch das hohe Tempo bei der Entwicklung von Anwendungen, die sich schnell ändernde Technik und die ständig wachsende Zahl an Endgeräten, steigt insbesondere die Nachfrage nach einer effizienten Automatisierung von Testing-Prozessen für mobile Apps und responsive Webseiten. Diese ermöglicht es Unternehmen, eine hohe Entwicklungsgeschwindigkeit beizubehalten. Wollen QA-Experten auf eigene Faust funktionierende Automatisierungsmechanismen installieren, sollten sie bei der Konstruktion diese fünf Tipps unbedingt beachten:

Das Grundgerüst muss stabil sein

Best-Practice ist es heutzutage, auf Open-Source-Komponenten wie Selenium und/oder Appium zurückzugreifen, um eine professionelle und flexible sowie gleichzeitig zukunftssichere Lösung aufzusetzen. Bei einer solchen Lösung entstehen zwar keine Lizenzkosten, es müssen allerdings größere Investitionen in die Entwicklung eines eigenen Frameworks gelegt werden. Das Framework schafft den Rahmen für die Automatisierung und liefert wichtige Funktionen. Häufig sehen wir in der Praxis, dass der Aufwand, ein eigenes Framework aufzusetzen und zu warten, deutlich unterschätzt wird. In einem guten Framework stecken normalerweise jahrelange Erfahrung und entsprechende Entwicklungskapazitäten.

Nur relevante Test-Cases definieren

Hierfür sollten sich die Verantwortlichen für Frontend-Tests Gedanken über die Nutzungszenarien der Anwendung machen: Wie wird die App letztlich von den Usern genutzt? Was muss unbedingt überprüft werden? Sind auf diese Fragen Antworten gefunden, sollten die wesentlichen Test-Cases so definiert werden, dass sie das Nutzerverhalten möglichst umfassend abbilden. Um zu gewährleisten, dass die geschriebenen Cases ohne Probleme automatisiert werden können, sollten diese möglichst kurz, schnell und stabil sein und in jeder erdenklichen Reihenfolge problemlos durchgeführt werden können.

Testskripte richtig warten

Im Normalfall erfordern Änderungen im Code einer App auch Anpassungen im entsprechenden Automatisierungsskript. In der Praxis sehen wir häufig, dass zu wenig auf die langfristige Wartbarkeit geachtet wird und hohe Aufwände entstehen bzw. Testskripte zu instabil werden. Entscheidend ist, dass Unternehmen hier auf entsprechende Expertise bei der Entwicklung der Automatisierung zurückgreifen und eine fortlaufende Wartung sichergestellt wird. Für jeden fehlgeschlagene Test muss überprüft werden, ob ein Bug vorliegt, der Test angepasst werden muss oder z.B. ein Timeout für ein Falsepositiv gesorgt hat und der Test einfach nochmal gestartet werden muss. Ohne entsprechende zeitliche Ressourcen in die tägliche Wartung zu investieren, lässt die Qualität der Automatisierung im Zeitverlauf ansonsten deutlich nach und es entstehen mehr Probleme als Nutzen.

Hardware und Software der User nutzen

Um möglichst alle Anwendungsfälle hinsichtlich Hard- und Software-Einsatz der Nutzer im Testing abzubilden, sollten alle gängigen Gerätetypen und Softwareversionen zum Einsatz kommen. Da die Beschaffung und die Wartung physischer Devices und Systeme meist extrem teuer und mühselig sind, sollten QA-Verantwortliche darüber nachdenken, auf eine Cloud-Lösung zurückzugreifen, die über die entsprechende Infrastruktur verfügt.

Fazit

Klar ist in jedem Fall: Effektive und effiziente Testautomatisierung gestaltet die Qualitätssicherung einer App nicht nur einfacher, sie sorgt auch beim Markteintritt für besseres Kunden-Feedback. Die bestmöglichen Ergebnisse erhalten Unternehmen durch die Kombination von manuellen Testings und automatisierten Verfahren.

Wichtig ist, den Prozess und alle beteiligten Variablen so zu gestalten, dass sie möglichst einfach zu warten sind und ohne Probleme angepasst werden können, sobald Änderungen am Programmcode der App durchgeführt wurden. Wenn QA-Verantwortliche das berücksichtigen und die Qualität der Anwendung kontinuierlich sicherstellen, dann können sie sich der Treue ihrer Nutzer langfristig sicher sein. (mb)