Durch den Einsatz von Mockups und KI können Sie Ihre UI-Tests effizienter gestalten.

Wussten Sie, dass Tests immer zu spät stattfinden? Ich meine wirklich immer zu spät. Das Testen verzögert die Auslieferung der Software in der Tat. Warten Sie auf das Testen, beheben Sie dann die Fehler und warten Sie erneut.

Obwohl automatisierte Tests der Benutzeroberfläche (UI) den erneuten Test beschleunigen können, sind sie nur wirksam, wenn alle Fehler beseitigt wurden. Mit der testgesteuerten Entwicklung haben Programmierer einen Weg gefunden, Testverfahren zu integrieren, so dass funktionierender Code mit einer Testsuite angezeigt wird.

Allerdings waren UI-Tests bisher oft langsam und kostspielig in der Wartung. Dies könnte sich jedoch bald ändern. Künstliche Intelligenz (KI) hat es nach einem Jahrzehnt der Versprechungen endlich möglich gemacht, UI-Tests als erstes durchzuführen. Und so geht’s.

Test-first für Benutzeroberflächen

Behavior-driven Design (BDD) war ein früher Versuch, Anforderungen anhand von Beispielen zu beschreiben. Teams formulierten ihre Anforderungen oft in der Form “gegeben/wenn/dann”. Dies ist ein Beispiel:

Da ich eingeloggt bin, kann ich nach “Teddybär Ruxpin” suchen.
Und ich klicke auf “TeddyRuxpin”.
Klicke auf “In den Warenkorb”.
Mein Warenkorb enthält nun einen Teddy Ruxpin
Auf diese Weise konnten die Programmierer zumindest die Grundlagen dessen, was die Software tun sollte, kennen und Reibungsverluste vermeiden. Die “Verdrahtung” von Benutzeroberflächentests ist jedoch erst möglich, wenn das Computerprogramm fertiggestellt ist.

Die Tests kommen oft zu spät und die Verdrahtung besteht typischerweise aus XPATH oder CSS. Der Test schlägt fehl, wenn sich die Schaltflächen bewegen, wenn Links ihren Text ändern oder wenn der Link an einer früheren Stelle auf der Seite erscheint. Angie Jones ist eine der wenigen Experten, die in der Lage waren, die gesamte Benutzeroberfläche im Voraus zu entwerfen. So kann der Testcode parallel zum Produktionscode geschrieben werden. Dennoch bleibt das Problem des Locator Strings bestehen.

Vielen Unternehmen fehlt die Disziplin, die erforderlich ist, um so detaillierte Bildschirme wie von Jones vorgeschlagen zu erstellen. Nur wenige Unternehmen werden Programmierer entbehren, die Produktionscode schreiben und zu Softwareentwicklern in der Testphase werden können, ebenso wie das Tooling.

Die Software muss den Locator erkennen, um mit Test-First erfolgreich zu sein. Anstelle eines Codes wie //div//span[text()=’Über das Unternehmen’] können natürliche Sprachverarbeitung (NLP) und semantische Modellierung eine Phrase wie “Klicken Sie auf die Anmeldeschaltfläche” nehmen und die Schaltfläche finden, selbst wenn die Schaltfläche nicht “Anmelden” heißt – genau wie ein Mensch es könnte.

Dazu ist ein Modell erforderlich, das Redewendungen und Begriffe miteinander verknüpft. Mit moderner Technik ist dies möglich. Durch die Kombination von NLP und einem leistungsfähigen Modell kann die aus einer Whiteboard-Skizze erstellte Testautomatisierung effizienter gestaltet werden.

Sprint Null: Auf dem Weg zu Sprint Zero

Selbst bei Scrum und anderen Entwicklungsansätzen wollen die Finanzabteilung und die Geschäftsleitung immer noch wissen, wie lange es dauern wird. Das bringt uns zu Sprint Zero. Hier werden Projekte geplant, finanziert und dann als Mockups erstellt. Diese Mockups können mit Hilfe von UI-Designern, die Webseiten oder detailliertere Entwürfe erstellen, auf einem Whiteboard gezeichnet werden.

Ein Projektmanager würde dies als “Inception”-Phase bezeichnen; Scrum-Enthusiasten nennen es vielleicht “Sprint Zero”.

Eine Person, die sich die Benutzeroberfläche ansieht, kann vielleicht ableiten, was passieren soll, wenn sie klickt. Ein komplexes Drahtgitter könnte es ihm sogar erlauben, sich durchzuklicken. Ein Computer erkennt jedoch weder einen Einkaufswagen noch eine Lupe oder ein Hamburger-Menü.

Bis jetzt.

Computer Vision ist eine KI-Technik, die Bilder so trainiert, dass sie Symbole erkennen. Die Software kann an eine Google-Bildersuche für einen Einkaufswagen geschickt werden, und ein Mensch wird die Vermutungen anstellen. Die Software erkennt dann den Einkaufswagen. Auf diese Weise können Sie Befehle erstellen, die auf der Grundlage eines Mockups klicken, tippen und Werte bestätigen.

Diese Art der KI basiert auf Symbolen und nicht auf Bitmaps. Das bedeutet, dass ein einziger Test auf mehreren Plattformen verwendet werden kann. Die Computer Vision kann dasselbe Symbol wie Menschen auf Android, iPhone oder im Internet erkennen. Selbst wenn das Symbol anders ist, kann es von der Computer Vision erkannt werden. Das bedeutet, dass der Code weniger anfällig ist, da eine Änderung des Symbols oder der Schaltfläche nicht zu einem Fehler führen wird. Dies macht es zu einem leistungsstarken Werkzeug für Tests, aber Sie brauchen immer noch eine starke technische Person für die Programmierung, bis Sie NLP hinzufügen.

Kombinieren Sie die Leistung von Maschine und Mensch
BDD ist einfach zu starten, aber ein Programmierer muss dem Computer erklären, was “suche Teddy Ruxpin” eigentlich bedeutet. Traditioneller Code versteht keine Idiome. Ein Computer würde nicht wissen, dass “Kasse” ein Klick auf die Schaltfläche “Kasse” ist. Ein Programmierer muss schreiben:

browser->wait_for_element(“id=checkout”);
Objekt checkout = get_element(id=checkout”);
browser->click();

Computer Vision ist ein großartiges Werkzeug, um Zeit zu sparen und die Suche nach der ID zu vermeiden. Es ermöglicht auch, dass die Software reibungslos läuft, wenn sich die ID ändert, der Text aber nicht. Ein Programmierer kann den Code einfach mit Hilfe von Computer Vision erstellen, möglicherweise zwei- oder dreimal, für verschiedene mobile oder Desktop-Plattformen.

Mit NLP können Sie einfach auf die Schaltfläche “Zur Kasse gehen” klicken. Der Code muss nicht von jemandem geschrieben werden

Leave a Reply

Your email address will not be published. Required fields are marked *