Der österreichische Spezialist in Sachen Software-Test, IT-Analyse und Projektmanagement, SEQIS, setzt die Veranstaltungsreihe "10 things I wished they'd told me!" nach der Sommerpause wieder fort. Markus Schwabeneder verrät seine zehn persönlichen Tipps und Tricks zur Testautomation von mobilen Endgeräten. [...]
Die Entwicklung von Apps für Smartphones und Tablets ist mittlerweile zu einem unverzichtbaren Teil der Softwareentwicklung geworden. Kaum ein modernes Angebot kommt ohne Möglichkeit aus, auch über mobile Geräte benutzt zu werden. „Weil die automatisierte Qualitätssicherung dieser Apps immer noch in den Kinderschuhen steckt, wird sehr viel Potenzial verschenkt. Testautomation für mobile Geräte ermöglicht nämlich nicht nur „Fast Feedback“, also schnelle Regressionstests mit wenig manuellem Aufwand, sondern auch Tests auf vielen Geräten, Betriebssystemen und Konfigurationen“, weiß Markus Schwabeneder, Senior Consultant für IT-Analyse, Software-Test und Projektmanagement.
Wo genau warten also die Herausforderungen der Testautomation in der mobilen Welt? Markus Schwabeneder hat dafür 10 praxisnahe Expertentipps parat:
Tipp 1: Bauen Sie eine Pyramide!
Unerlässlich ist eine gute Unit-Testabdeckung. Außerdem hilft weniger Oberflächenautomation und die Berücksichtigung der Software-Testing-Pyramide.
Tipp 2: Fahren Sie auf den Hauptstraßen!
Tests, die die gesamte Applikation inklusive der UI (User Interface, Benutzeroberfläche) prüfen, können Probleme oder Fehler aufdecken, die von Tests kleinerer Einheiten nicht entdeckt werden. Darum sind End-to-End-Tests notwendig. End-to-End-Tests sind aber deutlich schwieriger zu warten, aufwändiger zu implementieren und meistens auch deutlich langsamer in der Durchführung. Darum sollte man sie auf ein vernünftiges Maß reduzieren.
Andererseits werden Funktionen, die besonders häufig von den Usern benutzt werden oder die ganz besonders wichtig sind, „Hauptstraßen“ und sind gute Kandidaten für End-to-End-Automationen.
Tipp 3: Riskieren Sie richtig!
Zur Einschätzung des richtigen Testaufwands hilft die Bestimmung, wie kritisch sich ein spezifischer Fehler auswirken würde und wie wahrscheinlich so ein Fehler sein könnte. Anforderungen, für die sich hier ein großes Risiko ergibt, müssen besonders intensiv getestet werden. Umgekehrt sind exzessive Tests von Anforderungen, die kein großes Risiko bergen, nicht sinnvoll.
Berücksichtigen Sie im Zusammenhang vor allem die beiden Parameter Eintrittswahrscheinlichkeit und Eintrittsschaden.
Tipp 4: Kennen Sie Ihre Kunden!
Um die Hauptstraßen zu bestimmen und die Auswirkungen von eventuellen Problemen in der App abschätzen zu können, müssen Sie wissen, wie die App von Ihren Anwendern benutzt wird. Ebenfalls ist es wichtig zu wissen, auf welchen Geräten und unter welchen Betriebssystemen die App eingesetzt wird.
Das Anwenderverhalten und besonders die Geräte–Betriebssystem-Kombination können sich mit der Zeit ändern. Darum ist es sinnvoll zu analysieren, auf welchen Geräten welche Funktionen benutzt werden: Testen Sie die richtigen Geräte in der richtigen Umgebung!
Tipp 5: Kombinieren Sie clever!
In dem Dschungel der mobilen Endgeräte ist es unmöglich, alle denkbaren Kombinationen zu testen. Es gibt aber diverse Möglichkeiten, eine große Testabdeckung mit relativ wenigen, aber gut gewählten Tests zu erreichen.
Eine gute und noch relativ einfache Möglichkeit zur Testfallreduktion nennt sich „Pairwise Testing“, etwas detaillierter wird es mit „Orthogonal Array Testing“. Aufwand- sowie Kosteneffizienz werden damit optimiert.
Tipp 6: Nutzen Sie die Cloud!
Das Testen auf eigenen physischen Geräten bedeutet, dass man sich mit dem Geräteankauf und auch mit der Gerätewartung auseinandersetzen muss. Ein Weg, diesen Problemen aus dem Weg zu gehen, ist, sich die Geräte quasi zu „mieten“. Manche großen Player in der IT (Amazon (AWS Cloud), Google (Firebase Test Lab) oder Microsoft (Xamarin Cloud)) bieten solche Services an. Es gibt auch Firmen, die genau darauf spezialisiert sind (Experitest, Kobiton, Perfecto, SauceLabs). So erreichen Sie eine große Geräteauswahl zu überschaubaren Kosten.
Tipp 7: Verbessern Sie die Tests kontinuierlich!
Vermeiden Sie die lange Entwicklung einer „Big-Bang“-Lösung, sondern starten Sie mit kleinen Schritten, die aber sofort Nutzen bringen!
Starten Sie mit den Tests Ihrer kritischen Anforderungen: Leben Sie das „Pfadfinder-Prinzip“: Verlassen Sie jeden Ort schöner als Sie ihn betreten haben. Das bedeutet, jeder neue Code soll nicht nur Funktionalität hinzufügen, sondern auch den alten Code lesbarer, wartbarer und testbarer machen. Auch die Einführung von Unit-Tests kann auf diese Weise gut vorangetrieben werden. Dadurch gewährleisten Sie schnelles Erkennen von Problemen in der Testautomation.
Tipp 8: Testen Sie in Stufen!
Es ist sinnvoll, unterschiedliche Teststufen zu definieren. So können z.B. Unit-Tests direkt nach einem Check-In vom Code laufen.
Für automatisierte Tests, die eine längere Laufzeit haben, bieten sich „Nightly Builds“ an. , die bei jedem Durchlauf Kosten verursachen, können in Stufen erfolgen, die nur manuell ausgelöst werden. Wichtig ist auch, vor dem Go-Live sehr umfassend zu testen.
Tipp 9: Starten Sie die Qualitätssicherung schon in der Entwicklung!
…denn: moderne Standards führen zu leichter testbarem Code! Folgende Prinzipien verringern das Fehlerrisiko und erhöhen die Testbarkeit des Codes:
- MVC / MVVM / MVP
- DRY
- SOLID
- Single responsibilty principle
- Open/closed principle
- Liskov substitution principle
- Interface segregation principle
- Dependency inversion principle
- Verwendung von Automation IDs
Tipp 10: Halten Sie die Testautomation aktuell!
Mobile Testautomation erfordert ständige Wartung. Mustern Sie daher nicht mehr benötigte Testfälle aus und bewerten Sie die Geräte– und Betriebssystemabdeckung regelmäßig neu.
Weitere Informationen zu den SEQIS-Vorträgen und zur kostenlose Anmeldung gibt es unter http://www.SEQIS.com/de/events-index.
Be the first to comment