image

Testautomatisierung

Künstliche Intelligenz läutet die dritte Ära der Testautomatisierung ein

Innovation steht nie still. Selbst bahnbrechende Technologien entwickeln sich nach ihrer Einführung kontinuierlich weiter. Denn sobald wir sehen, was eine Erfindung leistet, beflügelt dies unsere Vorstellungskraft und inspiriert uns dazu, technische Grenzen noch weiter auszuweiten. Das führt zu Fortschritten, die zuvor unvorstellbar schienen.

Denken Sie an den Flugverkehr. 1903 veränderte sich die Welt, als die Gebrüder Wright den ersten Flug wagten. Plötzlich eröffneten sich völlig neue Möglichkeiten, die sich in erstaunlichem Tempo weiterentwickelten. Bereits fünf Jahre später fand der erste Passagierflug statt. Nach 50 weiteren Jahren wurden Passagierflugzeuge mit Düsenantrieb eingeführt – riesige Entfernungen konnten in wenigen Stunden zurücklegen werden, was unsere Welt scheinbar grundlegend verkleinerte. Doch die Innovation entwickelte sich weiter. 16 Jahre später durchbrach der Überschalljet Concorde nicht nur die Schallmauer, sondern auch die bisherigen Vorstellungen von möglichen Geschwindigkeiten (Flug von New York nach London in nur 3,5 Stunden). Derzeit werden neue Überschall- und Tiefflugjets erprobt, die den Flugverkehr der Zukunft revolutionieren werden. Auch, wenn wir uns das heute, selbst in unseren kühnsten Träumen, nur schwer vorstellen können. Die Menschheit war „den mürrischen Fesseln der Erde entschlüpft und tanzte auf lachenden Schwingen durch die Lüfte…

„Ich konnt’ der Erde schweren Fesseln von mir streifen,
ertanzte mir den Himmel auf den Silberschwingen,
dem Sonnenlicht entgegen, konnt’ die Leichte greifen
von lichtumreiften Wolken. – Tat so viele Dinge,

die ich mir nie erträumte; kreiste, stieg und schwang
mich auf und kam in sonnenheller Stille an.
Dort schwebend jagte ich den Wind und höher drang
ich, gierig, in den bodenlosen Ozean.“

– „High Flight“ von John Gillespie Magee

Die erste Ära der Testautomatisierung

Auch die erste Ära der Software-Testautomatisierung war in ihrer Zeit etwas Außergewöhnliches – aber wiederum nur der erste Schritt. In den 1970er Jahren wurde mit skriptbasierten Testwerkzeugen die Automatisierung der damals hochmodernen Terminalsysteme, die auf Großrechnern liefen, programmiert. Mit dem Wechsel zu Mikrocomputern und frühen Desktop-GUI-Oberflächen kamen Aufzeichnungs- und Wiedergabewerkzeuge auf, mit denen Tests viel schneller erstellt werden konnten, ohne jede Zeile einzeln programmieren zu müssen. In den 1990er Jahren kamen Open-Source-Tools und von der Community betriebene Frameworks auf, die die Einstiegskosten für die Automatisierung senkten und den Anwendern ermöglichten, mehr zu automatisieren als je zuvor.

Jeder dieser Schritte, die auf bestehenden Erkenntnissen aufbauten, entwickelte den Testautomatisierungsprozess weiter. So wurden Menschen von sehr viel langweiligem, sich wiederholenden Klicken und Prüfen entlastet. Aber diese Erleichterung hatte ihren Preis: Sie öffnete auch die Tür zu einer neuen Plage. Automatisierte Tests wurden zu einer lästigen Pflicht und erwiesen sich als fehleranfällig. Bei jedem sogenannten „False Positive“ musste jemand das Ergebnis überprüfen und bestätigen, dass es tatsächlich das Resultat eines fehlerhaften Tests war, den Test korrigieren und den gesamten Prozess wiederholen, bis der Test wie erwartet ablief.

Zugegeben, es war weniger nervtötend als die sich wiederholenden Prüfungen, die diese frühen Testautomatisierungs-Tools ersetzten. Um jedoch fehlerfrei zu testen, benötigte man spezielle Fähigkeiten, einschließlich Skripting- und Programmierkenntnisse. Die Tester erreichten einen Punkt, an dem sie ihre Zeit hauptsächlich mit der Pflege bestehender Tests verbrachten – und nicht mehr mit dem Schreiben neuer Tests. Die Testarbeit wurde zu einer parallelen Entwicklungsarbeit. Diese Art der Automatisierung hat den Softwaretestern keine Zeit erspart. Ziel war es ja, mehr Zeit dem eigentlichen Softwaretest (der kreativen, analytischen Arbeit) widmen zu können – und nicht der mechanischen Überprüfung.

Die Automatisierung war zweifellos die richtige Idee. Doch erst der Frust, der diese frühere Ära der Testautomatisierungstools hervorrief, führte dazu, dass die Testautomatisierung ihr volles Potenzial ausschöpfen konnte.

Die zweite Ära der Testautomatisierung: Modellbasierte Testautomatisierung

Im Jahr 2002 führte Tricentis die Model-Based Test Automation (MBTA) ein, um Testern mehr Zeit für die wesentlichen Elemente des Softwaretestens zu geben: die kreative, hochanalytische Arbeit, die sich durch Automatisierung nicht ersetzen lässt und ohne die Unternehmen, die kein Risiko eingehen möchten, nicht mehr auskommen.

Anhand einer höheren Abstraktionsebene ermöglicht MBTA den Testern die Arbeit mit Lego-ähnlichen „Bausteinen“, die zum Erstellen von Tests kombiniert und wiederverwendet werden können. Wenn sich die Anwendung ändert (z. B. wenn ein Feld hinzugefügt oder entfernt wird) genügt es, das entsprechende Modell zu aktualisieren, woraufhin es die Änderung automatisch auf alle betroffenen Tests überträgt. Durch die klare Trennung zwischen Automatisierungsdetails (z. B. „Steering“), Testlogik und Testdaten können mit MBTA die Auswirkungen jeder Änderung reduziert werden. Dies führt zu einem deutlich verringerten Wartungsaufwand für die Tests im Vergleich zur vorherigen Generation von Testautomatisierungsansätzen. Die Testlogik und die Testdaten werden in Echtzeit in das Automatisierungsmodell eingespeist – so stellt man sicher, dass niemals auf alte Versionen von Testdaten oder technischen Definitionen zurückgegriffen wird.

Nicht-Programmierer können schnell anspruchsvolle End-to-End-Tests erstellen und verwalten, ohne auf „technische“ Ressourcen warten zu müssen. Durch die Trennung von Teststeuerung, Testlogik und Testdaten können diese Bereiche isoliert voneinander betrachtet werden, womit die Gesamtkomplexität geschmälert wird. Infolgedessen sind die Tests leichter zu verstehen und bei Bedarf einfacher zu warten. Darüber hinaus reduziert der MBTA-Ansatz False Positives erheblich. Denn die jetzige Erstellung und Verwaltung von Testelementen vermeiden die Stolperfallen der früheren Ära.

Die dritte Ära der Testautomatisierung: Vision AI

Die modellbasierte Testautomatisierung hat Unternehmen nachweislich bei der Umgestaltung ihrer Testprozesse geholfen. Kontinuierliches Testen ist endlich Unternehmensalltag geworden. Bis dahin haben Unternehmen viele Jahre und beträchtliche Ressourcen darauf verwendet, sich mit unausgereiften Tests herumzuschlagen, die in der vorherigen Ära der Testautomatisierung nur allzu häufig vorkamen.

Wir optimieren die modellbasierte Testautomatisierung beständig. Wir sind uns jedoch bewusst, dass einige Anwendungsfälle die Leistungsfähigkeit jeder Testautomatisierungstechnologie übersteigen, da diese auf der technischen Ebene arbeiten. Zum Beispiel:

Das Testen muss in einer frühen Phase des Entwicklungszyklus stattfinden, aber UI-Testautomatisierung erfordert eine fertige (und stabile) UI

  • Extrem neue/alte/spezialisierte Technologien werden nicht unterstützt oder erfordern umfangreiche Anpassungen
  • Virtuelle sowie Remote-Anwendungen sind außerhalb der Reichweite des Systems
  • Selbst hochbelastbare Tests erfordern gelegentliches Monitoring sowie Aktualisierungen
  • App-Modernisierung = Test-Destabilisierung

Nach mehreren Jahren der Forschung und Entwicklung sind wir stolz darauf, eine entsprechende Lösung präsentieren zu können: Vision AI, jetzt in Tosca 14 verfügbar. Vision AI ist eine KI-gesteuerte Testautomatisierungstechnologie der nächsten Generation. Mit ihr können Entwicklerteams die Benutzeroberfläche der Anwendung automatisieren, unabhängig von der zugrunde liegenden Technologie. Da Vision AI die technischen „Motoren“ von MBTA ersetzt, bleiben die anderen MBTA-Vorteile, wie die Trennung von Bereichen, bestehen: Die Verwaltung der Testlogik und der Testdaten auf eine modell- bzw. objektorientierte Weise ist entscheidend für den Erfolg.

Vision AI ist ein Teil der dritten Ära der Testautomatisierung, vorangetrieben durch selbstheilende KI und Risiko-KI (verfügbar in Tricentis LiveCompare).

Durch maschinelles Lernen sieht und steuert Vision AI jede Benutzeroberfläche genau wie ein menschlicher Benutzer und macht Ihre Automatisierung zukunftssicher und so lernfähig wie das menschliche Gehirn. Wenn Sie es sehen können, kann Vision AI es automatisieren. Dazu gehört alles, von einer App, die veraltete Technologien verwendet, über eine App, die neue Technologien verwendet, bis hin zu Apps, auf die Sie remote zugreifen. Sie können die Testautomatisierung sogar anhand von Mockups oder Whiteboard-Zeichnungen erstellen. Dies gibt der testgetriebenen Entwicklung eine neue Dimension.

Die erste Reaktion, die ich oft bekomme, wenn ich Vision AI präsentiere, ist: „Das ist magisch.“ Diese Technologie kann tatsächlich Wunder bewirken. Wie Arthur C. Clarke schrieb: „Jede ausreichend fortgeschrittene Technologie ist von Magie nicht mehr zu unterscheiden.“

Vision AI ersetzt keine Tester. Das war auch nie die Absicht. Sie wertet die Rolle der Tester auf – denn sie müssen sich nicht mehr mit der Mechanik der technischen Automatisierung befassen. Stattdessen können sie sich auf die herausfordernde analytische und investigative Arbeit konzentrieren, die sie überhaupt erst für diesen Beruf qualifizieren. Darüber hinaus hilft die Lösung Unternehmen, Risiken zu reduzieren und gleichzeitig die Verfügbarkeit von Anwendungen zu beschleunigen. Letztendlich geht es darum, wichtige Informationen ans Licht zu bringen, damit die Teams schnell erstaunliche Produkte veröffentlichen können, die das Unternehmen voranbringen.

Ich möchte Sie ermutigen, sich mit Vision AI zu beschäftigen, sofern Ihr Team das möchte:

  • Automatisierung von UI-Tests in einer sehr frühen Entwicklungsphase – noch bevor eine Zeile Code geschrieben wird
  • Demokratisierung der Testautomatisierung – jedes Teammitglied kann etwas beitragen
  • Tests von Remote-Anwendungen – einschließlich Citrix und VMware sowie sichere und regulierte Umgebungen
  • Tests von spezialisierten Technologien – ohne die Erstellung und Pflege von Anpassungen
  • Nachhaltige Gestaltung Ihrer Automatisierung – mit Tests, die wirklich „einmal geschrieben und überall ausgeführt werden können“.

Next steps