06.11.2024
11:40 - 12:25 Uhr

Vortrag
Test & AI

Ralf Somplatzki
GEBIT Solutions GmbH

KI im Softwaretest: Prompt Engineering zur Erzeugung relevanter Testdaten

Praxisbeispiele für KI-gestützte Testdatengenerierung

Abstract
KI und insbesondere Prompt-Engineering gewinnen in der Softwareentwicklung immer mehr an Bedeutung. Es liegt daher nahe, sich diese Technologie auch in der Disziplin Softwaretest zunutze zu machen. Beispiele dazu sind im Netz und in der Literatur vor allem im Hinblick auf die Testerstellung und -durchführung zu finden. Weniger jedoch im Kontext der Erzeugung von Testdaten.
Dieser Beitrag veranschaulicht anhand von Praxisbeispielen, wie KI die Gewinnung relevanter Testdaten für systematische Systemtests unterstützen kann.

Ausgangslage und Motivation
Die Gebit Solutions GmbH ist darauf spezialisiert, Softwarelösungen für den Handel zu realisieren. Projekte laufen über mehrere Jahre mit zweistelligen Teamgrößen. Einen Schwerpunkt nimmt die Software für den "Point-of-Sale" ein. Gesetzliche, organisatorische wie auch marktbedingte Einflüsse erfordern schnelle Reaktionen in der Entwicklung bei gleichzeitiger hoher Qualitätsanforderung. Tester stehen unter dem Druck, in immer kürzeren Zyklen, immer komplexere Systeme auf die Eignung für den produktiven Einsatz zu prüfen. [2]
Einen großen Anteil im Hinblick auf die Komplexität nehmen zunehmende Varianten in Datenstrukturen, Schnittstellen und Kommunikationsformen ein.
Die Herausforderung ist eine ausreichende und repräsentative Testdatenbasis zu gewinnen, um ziel- und praxisorientiert testen zu können. Gleichzeitig spielen wirtschaftliche und Effizienzanforderungen eine bedeutende Rolle.
Wie kann KI helfen, das Testen im Hinblick auf Qualitäts- und wirtschaftliche Ziele zu optimieren?

Lösungsweg
Das variantenreiche Verhalten der Software, abhängig von spezifischen Datenkonstellationen, hat vor zwei Jahren dazu geführt, eine datengetriebene Testautomatisierung aufzusetzen [1].
Die darauffolgende Herausforderung war die Reduzierung manueller Aufwände, z.B. für Anonymisierung, das Vermeiden unnötiger Redundanzen, Bereitstellen aller erforderlichen Variationen, etc.
Das Ganze sollte an produktionsnahen Daten orientiert sein, um die Kundenwirklichkeit möglichst gut im Test zu berücksichtigen.

Für den Einstieg optimal geeignet schien die Generierung von Personas für den Testmandanten und zur Berücksichtigung bei Testentwürfen. Auf Grund der positiven Erfahrungen wurde letztlich  eine "Best-Practice" erarbeitet, die sich für die Einarbeitung in das Themengebiet KI und Testdaten empfehlen lässt:

  • Generieren von Personas (Vernachlässigbares Unschärfe-Risiko)
  • Erzeugung von typischen (Standard-)Stammdaten (hier z.B. Artikeldaten)
  • Variationen in den Eigenschaften, z.B.: Warengruppen, Mehrwertsteuer, etc.
  • Erzeugen von Varianten-Strukturen (komplexe und kombinierte Datenstrukturen  (z.B.: Staffelpreise, Paketierungsvarianten, Wiegeartikel, etc.)
  • Zielgruppengerechte Datenbestände (Branchenspezifisch, Sprachvarianten, Saisonartikel)
  • Spezialisierung abhängig von Testanalyse-Aspekten: (z.B.: Äquivalenzbereiche und Grenzwerte)
  • Verfeinerung nach Testansätzen und -zielen (Standardfälle, Negativtests, Stabilitätstests)
  • Weitere Testvarianten über "funktionale Tests" hinaus (Mengentests, Lasttests, ...)

Schon beim ersten, vielleicht trivial wirkenden Punkt (Personas), zeigte sich, dass der Einsatz von KI nicht nur Aufwände in der Testvorbereitung reduziert, sondern auch hilft, Testvoraussetzungen optimaler an den konkreten Einsatzfall anzupassen: Die Personas wurden komplexer und realitätsnaher als wenn sie am Reißbrett entworfen würden.

Für alle o.a. Aufgaben hat sich die Methodik bewährt, zunächst mit einem kleinen Datenbestand einen generischen Prompt zu entwickeln. Grundlage für den Prozess ist ein Template für die gewünschte Datenstruktur. Mit dem finalen Prompt kann die KI angewiesen werden, beträchtliche Datenmengen zu erzeugen, die in ihrer Gesamtheit den jeweils angestrebten Vorgaben Rechnung tragen.

Um den Anteil der Testdaten als Testorakel abzusichern hat sich der, bereits eingangs erwähnte, datengetriebene Testansatz bewährt. Dabei wird, abhängig von konkreten Daten, ein spezifisches Verhalten erwartet und geprüft.
Dieses Vorgehen bringt eine Reihe von Vorteilen mit: Vollständigkeitsprüfungen, Funktionale Testabdeckung, Prüfung der Datenkonsistenz, etc.

Fazit
Benefits

  • KI erlaubt Testspezialisten, gedankliche "Fleißarbeit" zu reduzieren und somit Freiraum für Analyse und Konzeptarbeit zu gewinnen  (s. auch Fazit in [3]).
  • Aufwändige manuelle (repetitive) Arbeiten lassen sich auf wertbringende Analysearbeit reduzieren.

Herausforderungen

  • Die Qualität und der Wert der KI-Ausgaben hängen von der Qualität und dem Umfang der zugrunde liegenden Datenbasis ab.
  • Variationen der KI-Ergebnisse erfodern Überprüfungsmaßnahmen durch Testspezialisten. Ein großer Teil eines Unschärfe-Risikos kann durch einen ergänzenden, datengetriebenen Testansatz reduziert werden.

Ralf Somplatzki, GEBIT Solutions GmbH

Ralf Somplatzki ist seit mehr als 15 Jahren im Bereich Systemtest und Testautomatisierung tätig. Dabei bilden 30 Jahre Erfahrung im Bereich Softwareentwicklung, -Architektur und Requirements-Engineering die Grundlage für eine ganzheitliche Betrachtung der QA in Softwareprojekten.
Nach der Einführung einer neuen, agilen QA-Strategie in der Gebit Solutions GmbH unterstützt er aktuell Teams und Kunden bei der Entwicklung von Teststrategien und der Einführung automatisierter Systemtests.