paint-brush
Nutzung von ChatGPT für Softwaretestsvon@ratikeshmisra
4,466 Lesungen
4,466 Lesungen

Nutzung von ChatGPT für Softwaretests

von Ratikesh4m2023/09/16
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

In den letzten zwei Jahren hat sich gezeigt, dass Fortschritte in der KI, insbesondere bei LLMs (Large Language Models), traditionelle Probleme effizienter lösen. Eine dieser Auswirkungen, die LLMs erzielen können, ist die Unterstützung bei der Automatisierung unserer Softwaretests. Für viele Softwareteams war Automatisierung nie ein erstklassiger Bestandteil des SDLC-Zyklus und Teams haben Schwierigkeiten, die Testfälle zu automatisieren.
featured image - Nutzung von ChatGPT für Softwaretests
Ratikesh HackerNoon profile picture
0-item
1-item

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.


Variation der Zeit für manuelle Tests je nach Codekomplexität


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:


  • Mangelnde Automatisierungserfahrung bei manuellen QA-Teams zum Schreiben des skalierbaren Codes.
  • Die Kosten für den Beginn der Automatisierung ( in Bezug auf die vom technischen Management und der Qualitätssicherung benötigte Bandbreite ) sind aufgrund des großen Rückstands an Testfällen, die automatisiert werden müssen, zu hoch.
  • Schlechte Qualität der Dokumentation für Testfälle und keine ordnungsgemäße Wartung der Regressions- und Sanity-Suite.
  • Da sich die meisten Produktunternehmen auf die Funktionsentwicklung konzentrieren, geraten Stabilität und Qualität in den Hintergrund.
  • Die menschliche Auswertung von Testfällen wird der maschinellen Auswertung vorgezogen.


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.

Verwendung von GPT3.5 für BDD und seine Automatisierung


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.


YC Hacker News-Anmeldeseite


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

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.


ChatGPT gibt die relevante Gherkin-Syntax für ein dargestelltes Verhalten aus



Workflow zum Generieren von Gurken-kompatiblem Code aus der Gherkin-Syntax

Generieren von Cucumber-kompatiblem Code mit Gherkin-Schritten mithilfe von GPT


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.



Aufforderung zur Feinabstimmung von GPT, um die gurkenbasierte Automatisierung zu generieren


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.


HTML-Feed, der zur Automatisierung verwendet werden muss


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.


Die Gurkenschrittdefinition wurde generiert

Zeitalter der Co-Piloten

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!