Holen Sie sich die neuesten wichtigen Update-Informationen für die Log4j-Sicherheitslücke. Sehen Sie sich an, wie Sie das Problem mithilfe der Parasoft-Anleitung beheben können. Erfahren Sie mehr >>

X
BLOG

Software Test Automation und AI

Software Test Automation und AI Lesezeit: 7 Minuten
Wir haben diesen lustigen kleinen Slogan darüber, wie wir die Grenzen der Testautomatisierung erweitern. Es ist einfach genug, wenn Sie es sagen, aber was meinen wir wirklich damit?

Die Grenzen dessen, was wir beim Testen von Software automatisieren können, erweitern

Kürzlich wurden wir von mehreren Branchenanalysten für die Arbeit anerkannt, die wir geleistet haben, um diese Grenzen zu überschreiten. Beim Voke sagten sie: „Parasoft ist ein innovatives Unternehmen mit einem unermüdlichen Fokus auf Softwarequalität."Und Forrester sagte:"In Bezug auf KI verfügt Parasoft über eine beeindruckende und konkrete Roadmap, um die Testautomatisierung vom Entwurf bis zur Ausführung zu verbessern und autonome Tests voranzutreiben"

Aber was bedeutet das praktisch? Cool, Analysten sprechen über unsere innovative Roadmap, aber wie profitiert tatsächlich jemand von all dieser Innovation? (Zusätzlich zum Lesen unten können Sie auch unsere ansehen aktuelles Webinar für einige echte Kundenbeispiele.)

Die "Grenzen" der "Testautomatisierung"

Beginnen wir mit dem, was wir unter „Testautomatisierung“ verstehen. Wenn Leute über Testautomatisierung sprechen, beziehen sie sich normalerweise auf Test AusführungWenn Sie so etwas wie einen manuellen Test durchführen, ihn irgendwie aufzeichnen, wiedergeben und in ein Testskript einfügen, das ein Tool bei Bedarf ausführen kann (d. h Aufzeichnen und Wiederholen von Tests, das ist cool und alles, aber es ist definitiv innerhalb der "Grenzen"). Andere Unternehmen liefern Automatisierung auf dem Testerstellung Seite - hilft in erster Linie dabei, die Erstellung des Testskripts zu automatisieren.

Und obwohl diese beiden Techniken interessant und nützlich sind, liegen sie definitiv im Bereich der normalen Testautomatisierungsbemühungen von heute.

Wenn wir uns bei Parasoft ansehen, wie man die Grenzen überschreitet, sehen wir uns nicht einen einzelnen Testschritt an, sondern die gesamte Testpraxis. Wir wollen keinen einzigen Prozess nach links verschieben, wir wollen ALLES nach links verschieben. Und ja, mein Titel hat es verraten - vieles davon geht auf künstliche Intelligenz zurück. Wenn wir KI-Technologie und Testautomatisierung zusammenbringen, werden die Testfunktionen unendlich größer.

Wir verschieben nicht nur die Grenzen - wir können nicht einmal sehen, wo die Grenzen liegen.

(Der Geist explodiert.)

Natürlich habe ich versprochen, auf praktische Weise darüber zu sprechen, was dies bedeutet. Kein grandioser Weg, wo wir keine Grenzen oder Autos oder Menschen brauchen oder ...

Also lasst uns gleich loslegen.

Innovation beim Testen von Software durch Behebung der wichtigsten Schwachstellen

Was genau haben wir innoviert und wie können Sie davon profitieren? In dem kürzlich veröffentlichten Forrester-Bericht wurde festgestellt, dass alle unsere Referenzkunden eine Testautomatisierung von über 50% erreichten, was weit über dem Doppelten des Branchendurchschnitts liegt. Um dies zu erreichen - um die Grenzen der Testautomatisierung auf praktische Weise zu erweitern, die Ihren Testautomatisierungsgrad erhöht - haben wir drei zentrale Herausforderungen beim Testen von Software identifiziert und Technologien entwickelt, um diese zu lösen. Diese stehen Ihnen heute zur Verfügung.

1. Verwalten (und Verstehen) der Auswirkungen von Übernehmen

Testorganisationen verbringen übermäßig viel Zeit damit, ihre Testfälle zu warten, wenn sich die Anwendung ändert. Änderungen gibt es in vielen verschiedenen Formen, einschließlich der Einführung neuer Funktionen in die Anwendung oder einer Neuarchitektur bestehender Anwendungsfunktionen. In jedem Fall muss das Testteam identifizieren, was sich geändert hat, diese Änderungen seiner aktuellen Teststrategie zuordnen, um das Delta zu ermitteln, und eine Strategie zum Erstellen neuer Testfälle entwickeln, um die Lücken zu schließen, während vorhandene Testfälle aktualisiert werden, um weiterarbeiten zu können.

Klingt vielleicht einfach. Dies kann der Fall sein, wenn Ihre Anwendung über eine geringe Anzahl von APIs verfügt. Dies ist jedoch in der Realität ein sehr schwieriger Prozess, da die meisten Testteams die Schnittstellen einer Anwendung zunächst nicht genau kennen. Wenn die Änderung eintritt, gibt es unweigerlich ein schnelles Durcheinander, um die neuen Funktionen zu identifizieren und aussagekräftige Testszenarien dagegen zu erstellen. Für einen Menschen ist es im Wesentlichen unmöglich, die Auswirkungen von Änderungen im System zu verstehen.

Also bringen wir die Bots herein. Der Change Advisor von Parasoft erkennt Änderungen an den Anwendungsoberflächen und bietet eine praktische Änderungsvorlage, mit der verschiedene Versionen des Dienstes einander zugeordnet werden. Es kann dann verwendet werden, um alle Testfälle, die von dieser Änderung betroffen sein könnten, in großen Mengen neu zu faktorisieren.

Mit dieser Technologie können Teams die Wartungskosten für Testfälle und virtuelle Services senken und den Testern den Komfort bieten, zu wissen, dass die Artefakte, die sie heute erstellen, auch morgen noch funktionieren. Mit diesem Workflow zur Schadensbegrenzung ermöglichen wir eine wesentlich umfassendere Übernahme und Skalierung der Testautomatisierung.

2. Angemessen werden Wissen darüber, wie die APIs funktionieren

"Baue ich meine API-Tests richtig?"

Dies ist eine Frage, die ich ständig höre, wenn ich mit Kunden zusammenarbeite, um eine API-Teststrategie zu entwickeln. Es ist im Grunde dasselbe wie zu fragen: "Wie lang ist ein Stück Schnur?"

Der einzige Weg zu wissen, ob Sie wirklich den „richtigen“ API-Test erstellen, besteht darin, zu wissen, dass Sie die API wirklich verstehen. Tester können kreativ sein, wenn sie über Kenntnisse verfügen. Sobald Sie wissen, wie eine Sache funktioniert, können Sie alle möglichen aussagekräftigen Tests dagegen erstellen - aber dieses anfängliche Wissen zu erlangen ist nicht einfach. Wie soll ein Tester verstehen, wie alle APIs funktionieren? Ich denke, Sie könnten sich in Ihrer Freizeit mit allen Entwicklern zusammensetzen und sie nach den subtilen Feinheiten der von ihnen erstellten Anwendungsschnittstellen fragen. Was sind sie, wofür sind sie, wie werden sie verwendet, wie würden Sie sie testen? Die Fragen sind endlos und das Problem ist natürlich, dass Sie das nicht tun werden und sie auch nicht.

Um dieser Herausforderung zu begegnen, haben wir den Parasoft SOAtest Smart API Test Generator entwickelt. Es ist in ein einfaches Plugin für Chrome integriert und verwendet KI-Technologie, um die Wissenslücke zu schließen, die mit dem Erkennen relevanter API-Aufrufe und dem Verständnis der Assoziationen zwischen API-Aufrufen verbunden ist, um eine sinnvolle Abfolge von Schritten zu erstellen, die zum Testen erforderlich sind.

Mit dem Smart API Test Generator können Sie API-Aufrufe aus einer Anwendung überwachen und in eine REST-Backend-API extrahieren. Die künstliche Intelligenz sucht nach Mustern und Beziehungen in den Daten, bildet ein API-Testszenario, das die Interaktion zwischen dem Front-End und den APIs modelliert, und hilft Unternehmen, nicht nur zu verstehen, welche APIs verfügbar sind, sondern letztendlich auch, wie diese APIs mithilfe realistischer Szenarien getestet werden .

3. Effektiv verwalten (und nicht verschwenden) Zeit

Wenn Sie in der Lage sind, die Wissenslücke zu schließen und dennoch eine riesige Bibliothek aussagekräftiger Testszenarien aufzubauen, müssen Sie dies noch wissen wann um diese Tests auszuführen. Tester stehen unter immensem Druck, angesichts der verfügbaren Zeit eine angemessene Testabdeckung zu erreichen, aber Sie können nicht einfach alle Ihre Tests jederzeit ausführen. Sie benötigen eine zuverlässige Methode, um genau die Tests auszuführen, die Sie angesichts der eingetretenen Änderung benötigen.

Natürlich läuft alles auf die Zeit hinaus. Zeit, sich mit der Änderung zu befassen, Zeit, die APIs zu lernen. Haben Sie angesichts der Zeit, die Sie für die Ausführung haben, die effektivste Nutzung Ihrer Testautomatisierung eingerichtet? Dies ist eine große. Ich habe kürzlich mit einer Organisation zusammengearbeitet, die 18,000 Tests durchgeführt hat. Während dies an der Oberfläche großartig klingt, hatten sie abends nicht genug Zeit, um sie alle auszuführen. Wenn alle von ihnen ausgeführt würden, würden wahrscheinlich einige von ihnen scheitern, und es war nicht sofort ersichtlich, wie man den Lärm durchschneidet und genau versteht, was geschehen ist. Testautomatisierung kann Ihnen helfen, viele Herausforderungen zu meistern, aber Sie können versehentlich eine ganze Menge Testzeit hinzufügen, anstatt sie zu reduzieren, wenn Sie Änderungen nicht effektiv verwalten.

Und hier kommen all diese Herausforderungen zusammen. Qualität erreichen bei Geschwindigkeitmüssen Sie mehr testen effizient, worum es geht Veränderung besser verstehen - Es geht nicht darum zu kreieren mehr Bei Tests geht es darum, weniger Tests mit höherer Abdeckung zu erstellen. Wie können wir unser Wissen darüber erweitern, welche Tests erstellt und ausgeführt werden müssen, um Zeit zu sparen und die Bereitstellung zu beschleunigen?

Hier beginnt es in der IDE des Entwicklers. Wir haben auch hier einige Innovationen eingeführt, und jetzt können Entwickler die Change-Based Testing-Technologie von Parasoft verwenden, um automatisch nur die Tests zu identifizieren und auszuführen, die von Codeänderungen betroffen sind. Die Technologie geht über gewöhnliche veränderungsbasierte Tests hinaus und ermöglicht es Entwicklungsorganisationen, einen chirurgischen Ansatz für die Testausführung zu wählen, anstatt jeden einzelnen Test bei jedem Check-in ausführen zu müssen. Die Technologie versteht, wie sich verschiedene Bereiche des Codes gegenseitig beeinflussen, und verwendet diese Informationen dann, um nur die Tests auszuführen, die von der Codeänderung bei einem bestimmten Check-in betroffen sind.

Aber ich habe versprochen, die Grenzen zu überschreiten !! Na sicher. Dies geschieht hier auf echte Weise. Da unsere Technologie die spezifischen Auswirkungen auf die Anwendung versteht und diese Informationen verwenden kann, um die richtigen Testfälle für den richtigen Code aus der IDE auszuführen, bevor der Code überhaupt in die Anwendung integriert wird, helfen wir Entwicklern beim Verständnis (vor Ort) Ebene, bevor sie sich verpflichten), welche Auswirkungen ihre Änderungen auf die breitere Anwendung haben werden. Dies reduziert die Zeit, die das Unternehmen für die Reaktion auf Anwendungsfehler benötigt, erheblich und erhöht den Fokus auf die Zuverlässigkeit und Stabilität der gesamten Anwendung.

Innovation als Katalysator für Maßnahmen

Diese drei großen, vielleicht sogar nebulösen Herausforderungen können sicherlich von oben und unten und überall angegangen werden, aber wir stellen immer mehr fest, dass Sie sich darauf konzentrieren, ein hohes Maß an Testautomatisierung zu erreichen, wenn Sie die Maschinen für Ihre Arbeit einsetzen Auf so viele Arten wie möglich können Sie vollständige End-to-End-Anwendungstests durchführen. (Einige echte Beispiele unserer Kunden, die diese Technologien verwenden, um genau das zu tun, finden Sie in einem kürzlich von mir mit unserem Entwicklungsdirektor durchgeführten Webinar, das Sie hier ansehen können: Die Zukunft der Testautomatisierung: Technologien der nächsten Generation für heute).

Jetzt. Wenn Sie nach dem Lesen des Titels ganz nach unten gescrollt haben und nur das Mitnehmen verstehen möchten (Test Automation + AI = ??), lassen Sie mich versuchen, Ihnen ein gutes kleines Nugget zu geben. Um die Grenzen der Automatisierung beim Testen von Software zu erweitern, können Sie künstliche Intelligenz an vielen Stellen nutzen, z. B. um zu verstehen, wie APIs funktionieren, um effektive API-Testszenarien zu erstellen, aufgetretene Änderungen zu identifizieren und die richtigen Tests zum richtigen Zeitpunkt auszuführen. Und dann können Sie maschinelles Lernen anwenden, um alles auf die nächste Stufe zu bringen. Aber das ist das nächste Thema für den nächsten Regentag.

Anfangen, Nutzen Sie all diese Innovationen für die Testautomatisierung um die spezifischen Herausforderungen beim Testen von Software zu bewältigen, mit denen Sie in Ihrem Unternehmen konfrontiert sind. Wenn Sie diese Technologien der nächsten Generation aus den Parasoft-Testlabors nutzen, können Sie sich auf Veränderungen als Katalysator für Maßnahmen konzentrieren, anstatt sich über Veränderungen Gedanken zu machen, die Ihre Innovation bedrohen.

Beginnen Sie mit der Verwendung von Softwaretesttechnologien der nächsten Generation in Ihrem Unternehmen

Geschrieben von

Chris Colosimo

Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.