Warum LLMs für die Generierung von Testfällen und Testdaten verwenden?
Die Erstellung effektiver Testfälle und realistischer Testdaten ist seit langem ein Engpass im Softwareentwicklungszyklus. Herkömmliche Methoden basieren oft auf manueller Erstellung, was zeitaufwändig und anfällig für menschliche Fehler sein kann und nicht immer die gewünschte Testabdeckung gewährleistet. Der Mangel an robusten automatisierten Tools für diese wichtige Aufgabe hat uns dazu veranlasst, nach innovativen Lösungen zu suchen.
Um diese Lücke zu schließen, haben wir die Leistungsfähigkeit großer Sprachmodelle (LLMs) genutzt, um sowohl Testfälle als auch entsprechende Testdaten aus strukturierten Eingabeparametern zu generieren. Mit diesem Ansatz konnten wir eine Testabdeckung von 90 % erreichen und den Aufwand für die Qualitätssicherung um bis zu 90 %reduzieren, sodass sich die Teams auf exploratives Testen und Qualitätsstrategien konzentrieren können.
Arbeitsablauf:

Einführung von SnapLogic AgentCreator die KI-basierte Testgenerierung
Um diese Lösung zu implementieren, haben wir eine UI-Anwendung entwickelt, die mit unserem internen SnapLogic interagiert. Diese App sammelt allgemeine Testkontexte vom Benutzer, darunter:
Details zur User Story
Endpunktinformationen
Kunden-/Anschlussinformationen
Sobald diese Informationen übermittelt wurden, werden sie an SnapLogic weitergeleitet, wo die Eingabe analysiert und an dynamisch ausgelöste untergeordnete Pipelines weitergeleitet wird, die jeweils auf einen bestimmten Testtyp zugeschnitten sind:
Funktionsprüfung
Datentypvalidierung
Leistungsprüfung
Sicherheitstests
Proxy- und Netzwerktests
Pipeline-Details:
Die übergeordnete Pipeline von Snaplogic empfängt die Benutzereingaben, analysiert die Details und ruft für jeden Testtyp untergeordnete Pipelines auf.

So funktioniert es: LLM-gestützte Pipeline zur Testgenerierung
Jede Kind-Pipeline erstellt dynamisch eine Eingabeaufforderung mithilfe des SnapLogic Prompt Generator Snap und fügt die für den Testtyp relevanten Eingabeparameter ein.
Diese Eingabeaufforderung wird dann über den Snap „Anthropic Calude on AWS Messages“ an Anthropic Claude 3, unser bevorzugtes LLM, gesendet. Das LLM verarbeitet den Kontext und gibt eine detaillierte Liste mit folgenden Informationen zurück:
Zusammenfassungen der Testfälle
Testfallbeschreibungen
Erwartete Ergebnisse
Testdaten im strukturierten JSON-Format eingeben
Diese Ergebnisse werden innerhalb von SnapLogic analysiert, in eine lesbare Struktur umgewandelt und zu einem umfassenden Testbericht zusammengestellt.

Prompt-Generator
Der Prompt-Kontext wird für jeden Testtyp mit den angegebenen Eingabeparametern dynamisch generiert.

Die Eingabeaufforderung wird an das LLM-Modell anthropic.claude-3-5-sonnet gesendet, wobei Anthropic Calude auf AWS Messages snap. LLM analysiert das bereitgestellte Eingabeformat und generiert strukturierte Testfälle mit Testdaten.

LLM-Struktur-Ausgabeformat
LLM generiert Testfälle und Testdaten für jedes Testszenario zusammen mit einer entsprechenden Beschreibung, der erwarteten Funktionalität und der Priorität jedes Testfalls.

Umfassender Testbericht
Sobald LLM Testfälle und Testdaten für alle Testtypen generiert hat, wird der endgültige Testbericht mit allen Details in Google Spreadsheet erstellt.

Manuelle vs. LLM-gesteuerte Testfallgenerierung
| Aspekt | Manueller Prozess | LLM-gesteuerter Prozess |
|---|---|---|
| Erforderliche Zeit | 3 bis 4 Tage | 15 bis 20 Minuten |
| Testfallgenerierung | Manuell von Ingenieuren durchgeführt | Automatisiert durch LLM |
| Vorbereitung der Testdaten | Manueller Aufwand für jeden Fall | Automatisch generiert mit Kontext |
| Datentypvalidierung | Manuell geschriebene Rand-/Fehlerfälle | Automatisch generierte Fälle mit vollständiger Grenze, ungültigen und fehlerhaften Daten |
| Priorisierung von Testfällen | Manuell identifiziert (P0, P1, P2) | Automatisch zugewiesen durch LLM basierend auf der Auswirkung |
| Leistungstestfälle | Erfordert umfangreiche Planung | Erstellt mit Testdaten und Leistungszielen |
| Aufwandsreduzierung | Hoher Aufwand und zeitaufwendig | Zeitersparnis von über 90 % |
| Fokusverschiebung | Schreiben und Planen | Validierung und Optimierung |




