Ich habe das Gefühl, dass es zum Konzept des Testens schon immer eine Hassliebe gab. Zweifellos hilft das Testen dessen, was man gerade baut, dabei, zu vermeiden, dass Kunden dieselben Entdeckungen melden. Das ist der Liebesteil der Beziehung.
Der schlimmste Teil ist, wenn Projektzeitpläne dazu führen, dass Tests eine niedrigere Priorität erhalten … oft bis zu dem Punkt, an dem sie zu einem Rückstand auf der Wunschliste werden, der in einem aktuellen Sprint selten auftaucht. Dies garantiert fast, dass Kunden Sie mit unerwarteten Ergebnissen kontaktieren.
Mit der Weiterentwicklung der Softwareentwicklungszyklen (SDLCs) ist das Testen einfacher geworden, sodass Entwickler Unit-Tests erstellen können, die den zu validierenden Aspekt vollständig abdecken. Die Verwendung von ChatGPT oder GitHub Co-Pilot ist inzwischen so weit fortgeschritten, dass solche Unit-Tests automatisch generiert werden können. Die Tooling-Lösungen für die kontinuierliche Integration (CI) wurden verbessert, um ein hohes Maß an Codeabdeckung durchzusetzen, bevor Pull Requests (PR) zusammengeführt werden können. Auf diese Weise können Teams bei ihrer Entwicklung einen Schritt nach links machen – Probleme werden so während der Entwicklungsphase behoben und die Kosten für Funktionen werden gleichzeitig gesenkt.
Dieser Ansatz hat bei herkömmlichen APIs und Web-Frameworks gut funktioniert. Beim Testen mobiler Anwendungen müssen die Teams jedoch häufig manuelle Tests durchführen, bei denen sie eine veröffentlichte Liste von Schritten auf so vielen verschiedenen Gerätetypen wie möglich ausführen.
Ich wollte sehen, ob ich eine Möglichkeit finden könnte, das Shift-Left-Konzept bei der mobilen Entwicklung und beim Testen einzusetzen.
Auf hohem Niveau muss der Bereich mobiler Anwendungen die Möglichkeit haben, Features und Funktionen auf die gleiche Weise zu testen, wie dies heute bei APIs und Web-Frameworks der Fall ist. Das bedeutet, dass man sich von der manuellen Durchführung von Tests mit einem Inventar physischer Geräte oder Emulatoren verabschieden muss.
Dieser ideale Zustand des mobilen Testens wäre UI-gesteuert, um das Schreiben kryptischer Tests zu vermeiden, die sich auf die Benutzeraktivität konzentrieren. Dieser Ansatz könnte die Tools auf interne Verbraucher oder Produktbesitzer ausweiten, die ihre Vision als Realität validieren möchten.
Genau wie bei herkömmlichen Unit- oder Integrationstests können durch die Möglichkeit, Module einzuführen, kleine Aspekte der mobilen Anwendung validiert und als Bausteine für größere Abläufe verwendet werden. Auf diese Weise können Teams „trocken“ bleiben (sich nicht wiederholen) und doppelte Arbeit vermeiden.
Schließlich müssen diese Tests Teil der CI/CD-Pipeline werden können, obwohl sie von einer grafischen Benutzeroberfläche gesteuert werden.
In diesem Idealzustand können Entwickler mobiler Software ihre mobile Entwicklung und Tests effektiv nach links verschieben.
Es ist eine gute Idee, klarzustellen, was ich meine, wenn ich bei mobilen Tests von „Shift Left“ spreche.
Wikipedia definiert Shift Left zum Testen wie folgt:
„Shift-Left-Tests sind ein Ansatz für Software- und Systemtests, bei dem die Tests früher im Lebenszyklus durchgeführt werden (d. h. auf der Projektzeitleiste nach links verschoben werden). Es ist die erste Hälfte der Maxime ‚Testen Sie früh und oft‘. Sie wurde 2001 von Larry Smith geprägt.“
Durch einfaches Einfügen der Verschiebung nach links können Fehler während der Entwicklungsphase identifiziert werden. Dies ist wichtig, da das Problem behoben werden kann, während die Funktion noch frisch im Gedächtnis der Ingenieure ist, die sich auf die Quelle konzentrieren.
Hier sind einige der Vorteile der Shift-Left-Strategie:
Letztendlich wird das Shift-Left-Konzept zu einem Wettbewerbsvorteil führen, wenn Lösungen die Verbraucher erreichen, die validiert sind und wie erwartet funktionieren.
Letztes Jahr habe ich in meinem Artikel „ Verbesserung der Qualität kundenorientierter Apps mit Tricentis Testim“ die Verwendung von Tricentis Testim untersucht. Ich war beeindruckt, wie einfach es war, meine Magic 8 Ball-Lösung mit einer GO-basierten RESTful-API und einem webbasierten Vue.js-Client zu validieren. Ich wollte sehen, ob Tricentis eine Lösung hatte, mit der Teams für mobile Tests nach links wechseln konnten.
Es stellte sich heraus, dass sie ein Produkt namens Tosca haben.
Das Tosca-Produkt ermöglicht die Generierung von Tests ohne Code und ermöglicht die Erstellung kleiner Module, die wiederverwendet und automatisiert werden können. Man kann sich diese Module wie Legosteine vorstellen, die bei Bedarf durch einen standardisierten Vertrag zwischen ihnen verbunden werden können. Tosca kommt traditionelleren Entwicklungszyklen einen Schritt näher, indem es die Möglichkeit bietet, KI zu nutzen, um mobile Tests für Ihre Funktionen zu generieren.
Tosca nutzt außerdem die Leistung des Open-Source-Projekts Appium ohne große Lernkurve über den Tricentis Mobile Agent. Dadurch kann die gesamte Leistung, die ich in meinem vorherigen Artikel beschrieben habe, in die Shift-Left-Reise mit der mobilen Entwicklung einbezogen werden.
Daher ermöglicht Tosca das Testen nativer, hybrider und Web-Mobilanwendungen auf echten iPhone-, Android-, Mobiltelefon- und Tablet-Geräten, ohne dass diese Geräte gewartet oder besessen werden müssen.
Genau wie das Testim-Produkt bietet die Tosca-Lösung die Möglichkeit, Tests als Teil von CI/CD-Pipelines auszuführen, wodurch die Durchsetzung der Shift-Left-Einführung ermöglicht wird.
Sie können Tosca zum Testen direkt auf einem iOS- oder Android-Telefon sowie über Emulatoren oder Simulatoren verwenden, die über eine IDE wie Android Studio verfügbar sind. Mit Tosca können Sie Ihre Anwendung scannen und Testfälle erstellen lassen:
Nachdem Tosca die Testfälle erstellt hat, können Sie auch eigene Testfälle erstellen.
Einer der Vorteile von Tosca besteht darin, dass Sie Tests schreiben können, ohne Code schreiben zu müssen. Dies wird durch die Modulbibliothek ermöglicht, die fast jede Aktion simulieren kann, einschließlich des Öffnens eines Browsers oder des Ausfüllens eines Formulars.
In diesem Beispiel haben wir drei Module für unseren Tosca Mobile-Testfall verwendet. Wir testen:
Beachten Sie, dass wir lediglich Beispieleingaben bereitstellen mussten (im Screenshot tun wir dies für den oben hervorgehobenen Schritt 3). Sobald der Test abgeschlossen ist, erhalten Sie einen Diagnosebericht über Tosca.
Durch den Einsatz eines Produkts wie Tosca können Softwareentwickler, die sich auf die Entwicklung mobiler Geräte konzentrieren, ihren Teams einen Wettbewerbsvorteil verschaffen, indem sie den Mist, der für das Testen mobiler Geräte übrig geblieben ist, nutzen:
Meine Leser erinnern sich vielleicht, dass ich mich auf das folgende Leitbild konzentriert habe, das meiner Meinung nach auf jeden IT-Experten zutrifft:
„Konzentrieren Sie sich auf die Bereitstellung von Features/Funktionalitäten, die den Wert Ihres geistigen Eigentums steigern. Nutzen Sie Frameworks, Produkte und Services für alles andere.“ – J. Vester
Um maximale Produktivität zu erreichen, müssen Softwareentwickler, die sich auf die mobile Entwicklung konzentrieren, für mobile Tests den Shift-Left-Ansatz anwenden. Bei der idealen Wahl sollten jedoch bei der Suche nach Lösungen die damit verbundene Lernkurve und die Supportfähigkeit berücksichtigt werden.
Das Tosca-Produkt entspricht meinem persönlichen Leitbild, indem es Teams ermöglicht, den Shift-Left-Zustand zu erreichen, ohne dass zusätzlicher Quellcode unterstützt und gewartet werden muss. Das Produkt ermöglicht es auch Nicht-Ingenieuren, an der Testentwicklung teilzunehmen, was den Teams einen Vorteil verschafft, wenn es darum geht, sicherzustellen, dass die Designs den Erwartungen entsprechen.
Ich persönlich verwende den Shift-Left-Ansatz seit mehreren Jahren und bin jedes Mal dankbar, wenn ein Defekt durch einfaches Befolgen des Prozesses vermieden wird. Es ist an der Zeit, dass die mobile Entwicklung das Shift-Left-Konzept einsetzt.
Habt einen richtig schönen Tag!