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.
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.
„ Wenn ein Benutzer versucht, sich anzumelden, die gültigen Anmeldeinformationen unter 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
Workflow zum Generieren von Gurken-kompatiblem Code aus der Gherkin-Syntax
Schritt 1: Aufforderung zum Engineering
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
Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "//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