Mit LLMs zur Testfallautomatisierung

23.10.2024

Mit LLMs (ChatGPT) zur Testfallautomatisierung

Wie Künstliche Intelligenz den Weg zur automatisierten JavaScript-Generierung ebnet

Vorteile für Unternehmen und Erkenntnisse aus der Praxis

In der dynamischen Welt der Softwareentwicklung ist die Testautomatisierung unerlässlich, damit die Qualität und Zuverlässigkeit von Anwendungen gewährleistet werden kann. Viele DevOps-Teams setzen dabei auf Behaviour Driven Development (BDD), um Akzeptanzkriterien und Testfälle präzise zu formulieren und sicherzustellen dass die Software den Erwartungen entspricht. Mit dem Aufkommen von Large Language Modellen (LLM) eröffnen sich neue Möglichkeiten in der Testautomatisierung.

Bei der Infometis haben wir uns das Ziel gesetzt, durch unsere KI-Lerngruppe innovative Anwendungsfälle für den Einsatz von Künstlicher Intelligenz in der Softwareentwicklung zu evaluieren, um unseren Kunden die Vorteile näher zu bringen. In diesem Beitrag zeigen wir, wie LLMs den Weg von User Stories und Anforderungen über BDD-Spezifikationen bis hin zur automatischen Erstellung des JavaScripts erleichtert. Welche Vorteile diese Technologie für Unternehmen bietet und welche Erkenntnisse wir aus der Umsetzung dieses Use Cases ziehen, können sie ebenfalls in diesem Artikel lesen.

Reale Problemstellungen angehen

In unserem letzten Blogbeitrag (Infometis KI-Lerngruppe) vom 20. August 2024 zum 5-Schritte AI Transformation Playbook haben wir veranschaulicht, welche Schritte von der Ideenfindung bis zur Implementierung eines KI Use Cases berücksichtigt werden müssen. Unter der Prämisse KI nicht nur in der Theorie zu verstehen, sondern sie auch aktiv in den Unternehmensalltag zu integrieren, verfolgen wir bei der Infometis einen Bottom-up Ansatz. Dies bedeutet, dass die Use Cases direkt von unseren Mitarbeitenden stammen, basierend auf konkreten Herausforderungen aus ihrer täglichen Arbeit. So auch in diesem Fall: Der vorgestellte Use Case wurde aus einer realen Problemstellung eines Infometen entwickelt.

Der Use Case kann in drei Schritte zusammengefasst werden:

1. Schritt: Aus der Anforderung (User Story / Prosa Text) sollen Akzeptanzkriterien und Testfälle in BDD (Given-When-Then Format) erstellt werden

2. Schritt: Die Testfälle im Given-When-Then Format werden in ein Cucumber Feature File transformiert

3. Schritt: Aus dem Cucumber Feature File wird das JavaScript für die Testautomatisierung erstellt

Nach der Anforderungserhebung und Bewertung der Datenverfügbarkeit und -qualität haben wir verschiedene Large Language Modell evaluiert. Aus den ersten Proof of Concepts könnten wir bereits positive Ergebnisse in der automatischen Generierung von JavaScript für die Testfallautomatisierung ziehen.  

Infometis CustomGPT “From BDD to JavaScript”

Zur Lösung des Problems wurde in diesem PoC ein eigenes CustomGPT (From BDD to JavaScript) konfiguriert. Dabei wurden bspw. Vorgaben zu Datenquellen, Struktur, Sprache und Kontext zugeführt. Das LLM konnte mit diesen strukturierten Angaben ein funktionsfähiges Resultat erzeugen.

Praxisbeispiel: Suche nach einer Schulung auf der Infometis Webseite

Nehmen wir an, wir haben folgende User Story:

User Story (Prompt)

  • Als Benutzer möchte ich mit Hilfe der Infometis-Suchleiste auf der Infometis Webseite nach einer Schulung suchen.
  • Wenn der Benutzer nach dem Suchstring „ChatGPT Prompt Engeneering“ sucht, möchte er die Suchergebnisse für den Suchstring sehen

Output CustomGPT

//

Danke für die Anforderung! Ich werde jetzt den gewünschten Testfall im Given-When-Then-Format erstellen, ihn in ein Cucumber Feature File umwandeln und schliesslich den entsprechenden JavaScript-Code zur Testautomatisierung generieren.

1. Testfall im Given-When-Then-Format

Titel: Suche nach einer Schulung mit dem Suchstring „ChatGPT Prompt Engineering“

Given: der Benutzer befindet sich auf der Infometis-Webseite

When: der Benutzer den Suchstring „ChatGPT Prompt Engineering“ in die Suchleiste eingibt und die Suche startet

Then: sollte der Benutzer die Suchergebnisse für „ChatGPT Prompt Engineering“ sehen.

2. Cucumber Feature File

3. JavaScript für die Testautomatisierung

Erklärungen zum JavaScript:

//

Vorteile der Verwendung von LLMs zur Generierung von JavaScript

Der Einsatz von Large Language Modellen zur Generierung von JavaScript für Testautomatisierung bietet zahlreiche Vorteile, die den Entwicklungsprozess effizienter und effektiver gestalten. Zu den wichtigsten Vorteilen zählen:

1. Automatisierte Konvertierung von User Stories in BDD-Spezifikationen: LLMs können User Stories und Anforderungen in klar strukturierte BDD-Spezifikationen im "Given-When-Then"-Format umwandeln. Dadurch wird der Übergang von der Anforderungsanalyse zur Testimplementierung deutlich vereinfacht.

2. Automatisierte Testgenerierung: Nach der Umwandlung von User Stories in BDD-Spezifikationen können LLMs diese Spezifikationen direkt in JavaScript umwandeln, was den manuellen Aufwand zur Erstellung von Tests erheblich reduziert.

3. Zeitersparnis: Die automatische Generierung von BDD-Spezifikationen und Tests spart wertvolle Entwicklungszeit, die besser für andere Aufgaben genutzt werden kann, wie z. B. die Entwicklung neuer Features oder die Verbesserung der Benutzererfahrung.

4. Konsistente Codequalität: Durch den Einsatz von LLMs wird sichergestellt, dass der generierte Code einem einheitlichen Standard folgt, was die Wartbarkeit und Lesbarkeit verbessert.

5. Skalierbarkeit:

- Mit LLMs können Teams schnell auf eine grosse Anzahl von Tests skalieren, ohne zusätzlichen manuellen Aufwand betreiben zu müssen.

- Mit einem Add-on können Anforderungen direkt aus Jira an ein LLM übergeben werden, was den Workflow nahtlos und effizient gestaltet.

Verbesserungspotential: Das Resultat, konkret das JavaScript, des CustomGPTs kann für die Testautomatisierung verwendet werden, muss evtl. an der ein oder anderen Stelle optimiert werden.

Die Vorteile von LLMs: Die Vorteile von Large Language Modellen liegen in der Analyse- und Ausgabefähigkeit von Texten und Sprachmustern sowie Code und bieten dadurch ein enormes Potential. Zur Lösung dieser Problemstellung kommen sowohl die Analysefähigkeiten (Suchen, Extrahieren, Klassifizieren und Sortieren) als auch die Ausgabefähigkeiten (Generieren, Zusammenfassen, Umformulieren und Übersetzen) von LLMs zur Anwendung.

Möchtest du es selbst ausprobieren?

Wir begleiten Sie auf Ihrer KI-Reise. Entdecken Sie auf unserer Webseite den passenden Service – wir unterstützen Sie gerne bei Ihrem nächsten Projekt!

Wir sind bereit für Ihren nächsten Schritt!

Sie möchten unsere Expertise nutzen und technologische Innovationen umsetzen?

Diese Webseite
verwendet Cookies

Cookies werden zur Benutzerführung und Webanalyse verwendet und helfen dabei, diese Webseite zu verbessern. Sie können hier unsere Cookie-Erklärung anzeigen oder hier Ihre Cookie-Einstellungen anpassen. Durch die weitere Nutzung dieser Webseite erklären Sie sich mit unserer Cookie-Richtlinie einverstanden.

Alle akzeptieren
Auswahl akzeptieren
Optimal. Funktionale Cookies zur Optimierung der Webseite, Social-Media-Cookies, Cookies für Werbezwecke und die Bereitstellung relevanter Angebote auf dieser Website und Websites Dritter sowie analytische Cookies zur Verfolgung von Website-Zugriffen.
Eingeschränkt. Mehrere funktionale Cookies für die ordnungsgemässe Anzeige der Website, z. B. um Ihre persönlichen Einstellungen zu speichern. Es werden keine personenbezogenen Daten gespeichert.
Zurück zur Übersicht

Sprechen Sie mit einem Experten

Haben Sie eine Frage oder suchen Sie weitere Informationen? Geben Sie Ihre Kontaktinformationen an und wir rufen Sie zurück.

Vielen Dank. Wir haben Ihre Anfrage erhalten und werden uns im angegebenen Zeitraum bei Ihnen melden.
Oops! Something went wrong while submitting the form.