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!

‍

‍

我们已准备好迎接您的下一步!

您是否愿意利用我们的专业知识并实施技术创新?

本网站
使用 Cookie

本网站使用 Cookie 来进行用户引导和网站分析,以帮助我们改进网站。您可以 此处 查看我们的 Cookie 政策 此处 。继续使用本网站即表示您同意我们的 Cookie 政策。

全部接受
接受选择
最佳。 功能性 cookie 用于优化网站,社交媒体 cookie,用于广告目的并在本网站和第三方网站上提供相关优惠的 cookie,以及用于跟踪网站访问的分析 cookie。
功能有限。 网站使用部分功能性 Cookie 以确保正常显示,例如保存您的个人设置。不会存储任何个人数据。
返回 概览

咨询专家

您有任何疑问或想了解更多信息吗?请留下您的联系方式,我们会尽快与您联系。.