paint-brush
Warum Sie beim Testen mobiler Geräte den Shift-Left-Ansatz verfolgen müssenby@johnjvester
155

Warum Sie beim Testen mobiler Geräte den Shift-Left-Ansatz verfolgen müssen

John Vester6m2024/07/15
Read on Terminal Reader

Der Versuch, im mobilen Bereich einen Wettbewerbsvorteil zu erlangen, scheint hinter anderen Aspekten der Technologie zurückzubleiben. Stellen Sie sich eine Welt vor, in der Sie bei Ihren mobilen Tests einen Schritt nach vorne machen können.
featured image - Warum Sie beim Testen mobiler Geräte den Shift-Left-Ansatz verfolgen müssen
John Vester HackerNoon profile picture
0-item


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.

Was beim Testen mobiler Geräte fehlt

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.

Was ist „Shift Left“ überhaupt?

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:


  • Kostensenkung bei der Bereitstellung von Funktionen durch Erkennen und Beheben von Problemen zum Entwicklungszeitpunkt.
  • Höhere Effizienz durch geringeren Zeitaufwand für die erneute Prüfung von Lösungen lange nach der Bereitstellung.
  • Höhere Qualität durch die Notwendigkeit einer vollständigen Abdeckung und Validierung während der Entwicklungsphase.


Letztendlich wird das Shift-Left-Konzept zu einem Wettbewerbsvorteil führen, wenn Lösungen die Verbraucher erreichen, die validiert sind und wie erwartet funktionieren.

Über Tosca

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:


  1. Öffnen eines Browsers und Aufrufen des Endpunkts unserer App
  2. Auswahl eines bestimmten Fahrzeugtyps
  3. Ausfüllen eines Formulars zu diesem bestimmten Fahrzeug


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.

Shift Left für Mobile-Tests

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:


  • Mobile Funktionen werden während der Entwicklungsphase validiert, ähnlich wie Dienste und Web-Frameworks.
  • Die Tests werden über eine Benutzeroberfläche gesteuert, die auf interne Verbraucher und Produktbesitzer ausgeweitet werden kann, um ihnen bei der Festigung ihrer Vision zu helfen.
  • Die Testsuite kann aus einer Sammlung „trockener“ Module erstellt werden, die so strukturiert sind, dass sie neue Features und Funktionen vollständig abdecken.
  • Es können Tests für einen umfassenden Bestand an Mobilgeräten ausgeführt werden, ohne dass der Benutzer solche Geräte besitzen und warten muss.
  • Vor der Einführung neuer Funktionen in den primären Codezweig hätte der zugehörige PR die UI-generierten Tests auf die gleiche Weise aufgerufen, wie Unit- oder Integrationstests in API- oder Web-Framework-CI/CD-Pipelines ausgeführt werden.

Abschluss

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!