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.
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.
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.
Nehmen wir an, wir haben folgende User Story:
User Story (Prompt)
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.
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.
//
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!
Sie möchten unsere Expertise nutzen und technologische Innovationen umsetzen?
Haben Sie eine Frage oder suchen Sie weitere Informationen? Geben Sie Ihre Kontaktinformationen an und wir rufen Sie zurück.