Revolutionierung des Softwaretestens: Wie LLMs die automatisierte Testfall- und Datengenerierung vorantreiben

Ashok Pallamala Porträtfoto
3 min gelesen
Fassen Sie dies mit AI zusammen

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:

  1. Funktionsprüfung

  2. Datentypvalidierung

  3. Leistungsprüfung

  4. Sicherheitstests

  5. 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.

Kinder-Pipeline

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

AspektManueller ProzessLLM-gesteuerter Prozess
Erforderliche Zeit3 bis 4 Tage15 bis 20 Minuten
TestfallgenerierungManuell von Ingenieuren durchgeführtAutomatisiert durch LLM
Vorbereitung der TestdatenManueller Aufwand für jeden FallAutomatisch generiert mit Kontext
DatentypvalidierungManuell geschriebene Rand-/FehlerfälleAutomatisch generierte Fälle mit vollständiger Grenze, ungültigen und fehlerhaften Daten
Priorisierung von TestfällenManuell identifiziert (P0, P1, P2)Automatisch zugewiesen durch LLM basierend auf der Auswirkung
LeistungstestfälleErfordert umfangreiche PlanungErstellt mit Testdaten und Leistungszielen
AufwandsreduzierungHoher Aufwand und zeitaufwendigZeitersparnis von über 90 %
FokusverschiebungSchreiben und PlanenValidierung und Optimierung
Ashok Pallamala Porträtfoto
QA-Architekt bei SnapLogic
Kategorie: Technik