In den letzten zwei Jahren hat sich herausgestellt, dass die Fortschritte in der KI, insbesondere bei LLMs (Large Language Models), traditionelle Probleme effizienter lösen, und eine dieser Auswirkungen, die LLMs erzielen können, ist die Unterstützung bei der Automatisierung unserer Softwaretests. Für viele Softwareteams war die Automatisierung nie ein erstklassiger Bestandteil des SDLC-Zyklus und Teams haben Schwierigkeiten, die Testfälle zu automatisieren, die die „ Testautomatisierungsschuld “ verursachen. Aufgrund dieser Lücke in der Testautomatisierung verbringen Qualitätsteams viel Zeit damit, diese Testfälle manuell zu verifizieren und zu schreiben, was in der Folge die Versandgeschwindigkeit des Engineering-Teams verlangsamt.
Der einzige Ausweg, der es gibt, um eine solche Belastung zu vermeiden, besteht darin, die Testfälle mit höherer Geschwindigkeit zu automatisieren. Oft ist dies jedoch aus folgenden Gründen nicht möglich:
Obwohl für alle oben genannten Probleme ein separater Artikel darüber erforderlich ist, wie Softwareteams sie angehen sollten, werden wir in diesem Abschnitt darüber sprechen, wie QA-Ingenieure ChatGPT oder LLMs als Co-Piloten bei BDD (verhaltensgesteuertes Testen) nutzen können.
Was ist BDD?
Verhaltensgesteuerte Entwicklung (BDD) ist eine agile Softwareentwicklungsmethode, bei der eine Anwendung dokumentiert und entsprechend dem Verhalten entworfen wird, das ein Benutzer bei der Interaktion mit ihr erwartet. Für den Kontext dieser Diskussion wenden wir BDD-basierte Tests auf einer YC-Website an und betrachten die Anmeldeseite von YC Hacker News als Ausgangspunkt.
Für die oben genannte Seite ist das erwartete Verhalten
„ Wenn ein Benutzer versucht, sich anzumelden, die gültigen Anmeldeinformationen unter https://news.ycombinator.com/login?goto=news eingibt und auf „Anmelden“ klickt, sollte der Benutzer zur Hacker-News-Website weitergeleitet werden .
Gemäß den BDD-Richtlinien kann das obige Verhalten als Gherkin-Syntax/-Schritte geschrieben werden, was ein möglicher Testfall sein kann, und mit Gurke als Framework kann dasselbe Gherkin automatisiert werden, und dieses Verhalten würde keinen weiteren menschlichen Eingriff erfordern . Aufgrund des Problems, das wir im obigen Abschnitt besprochen haben, leidet das QA-Team jedoch im Allgemeinen unter der Automatisierung. Wir können jedoch die Leistungsfähigkeit von LLMs nutzen, indem wir ein paar Eingabeaufforderungen schreiben und einen Workflow für unsere QA-Teams erstellen, um die Gherkin-Schritte und deren Automatisierung abzuwickeln mit schnellerer Geschwindigkeit auf Gurkengerüst.
Workflow zum Generieren der Gherkin-Syntax
Im folgenden Bild habe ich beispielsweise gezeigt, wie Sie das GPT-Modell verfeinern können, indem Sie die Eingabeaufforderung verwenden, um die Gurkensyntax für das in natürlicher Sprache dargestellte Verhalten zu generieren.
Workflow zum Generieren von Gurken-kompatiblem Code aus der Gherkin-Syntax
Schritt 1: Aufforderung zum Engineering
Unten finden Sie die Eingabeaufforderung, die Sie in die ChatGPT-Konsole schreiben können, um sie mithilfe des HTML-Codes und der bereitgestellten Gherkin-Schritte zu optimieren und die entsprechende Automatisierung auszuspucken. Als abschließende Ausgabe haben wir darum gebeten, den Code in Form einer Schrittdefinition nach Bedarf von Gurke zu generieren, die von QAs unverändert kopiert und eingefügt werden kann.
Schritt 2: Einfügen des relevanten HTML-Codes, der als Basis für die Automatisierung verwendet werden soll.
Wie unten dargestellt, fragt ChatGPT nach der Feinabstimmung nach den relevanten HTML- und Gherkin-Schritten, die es zum Generieren von Schrittdefinitionen für Gurke verwenden kann.
Schritt 3: Generieren der Schrittdefinition
Dadurch versteht das GPT die DOM-Struktur aus dem bereitgestellten HTML und fragt Sie nach der relevanten Gherkin-Syntax. Für den obigen Fall haben wir bereits den Gherkin generiert, den wir so übergeben können, wie er ist:
Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website
Endgültige Ausgabe
Schließlich wird gemäß dem Workflow und der genannten Eingabeaufforderung die Schrittdefinitionsdatei für die oben genannten Gherkin-Schritte und das oben erwähnte Szenario generiert, die von den Qualitätssicherungskräften nach einer geringfügigen Qualitätsprüfung in ihr Gurken-Framework kopiert werden kann, um die Automatisierung des erwarteten Verhaltens zu beschleunigen zu testen.
Mit dem Aufkommen der KI und dem Aufkommen von Copiloten wird die Produktivität der Menschen steigen. Sie werden in der Lage sein, ihre Innovationsgrenzen weiter zu erweitern, indem sie die rudimentären und routinemäßigen Aufgaben an die KI übergeben. Allerdings bin ich nach wie vor der Meinung, dass wir sie lediglich als Assistenten für unsere Arbeit betrachten sollten, und dass die Intelligenz, die sie nutzen, beim Menschen liegt, da Technik-, Marketing-, Vertriebs- und Kundenerfolgsteams versuchen, die Leistungsfähigkeit von LLMs in ihren Arbeitsabläufen zu nutzen Das Gleiche können QA-Ingenieure tun, damit sie ihre Produktivität weiter steigern und ihre Arbeit zur Sicherstellung der Qualität und Stabilität der Software spannend gestalten können!