Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Einsatz von KI zur Verbesserung des Requirements Engineering für effektives Testing

Hochwertige Anforderungen sind die Basis für erfolgreiches, anforderungsbasiertes Testen. Der Artikel zeigt, wie KI zu verbesserten Anforderungen führt und welche Formulierungen in Prompts dafür nötig sind. Ein Restaurantsystem demonstriert das Anforderungs-Tuning.

Author Image
Andreas Guenther

Berater, Coach und Trainer

Author Image
Breno Pinheiro

Consultant for Requirements Engineering


  • 28.01.2025
  • Lesezeit: 11 Minuten
  • 42 Views

Die Entwicklung moderner Software und Systeme erfordert eine hohe Präzision bei der Definition von Anforderungen, was immer schwieriger wird, je komplexer die Inhalte werden. Um das Requirements Engineering (RE) zu optimieren und das nachfolgende Testing zu erleichtern, kann Künstliche Intelligenz (KI) eingesetzt werden. KI-Technologien können nicht nur Anforderungen schneller erzeugen, sondern auch deren Qualitätssicherung effizient unterstützen. Dabei ist es jedoch entscheidend, verschiedene Aspekte zu definieren, um sicherzustellen, dass die generierten Anforderungen den Testprozess unterstützen.

Ein Beispiel ist das Festlegen des Systemumfangs (Scopes), des Systemkontexts und der damit verbundenen Systemgrenzen, wie Chris Rupp und die SOPHISTen in ihrem Buch „Requirements-Engineering und -Management“ [1] beschreiben (siehe Abb. 1).

Abb. 1: Scope vs. Systemkontext, Quelle [1]

Der Systemkontext ist von zentraler Bedeutung, um das System beziehungsweise Produkt von dessen Umgebung abzugrenzen und den Teil der Umgebung zu identifizieren, der die Anforderungen bestimmt. Eine klare Definition dieser Grenzen sorgt dafür, dass KI-generierte Anforderungen präziser und relevanter werden, wodurch letztlich deren Qualität und die Effizienz der KI-Nutzung verbessert werden können.

Ein Schlüsselaspekt dabei ist die Optimierung der Interaktion mit KI-Systemen durch sorgfältig gestaltete Prompts. Unter einem Prompt bei generativen KI-Systemen versteht man die Eingabe beziehungsweise den Input, zu dem das KI-System die Ausgabe beziehungsweise den Output erzeugt. Die Qualität der KI-generierten Ausgaben kann durch gezielte Anpassungen dieser Prompts wesentlich erhöht werden. In diesem Artikel zeigen wir, wie bestimmte Verbesserungsmethoden die Interaktion mit KI-Systemen effektiver machen und die Ausgabequalität signifikant verbessern können. Einige Regeln der Prompting Guideline [3] werden exemplarisch angeführt.

Anforderungen mit KI

Zu Beginn des RE sind oft grundlegende Ziele und Systembeschreibungen vorhanden, aus denen dann User-Storys, Akzeptanzkriterien und detaillierte Systemanforderungen verfeinert werden sollen. Dieser Schritt der Ableitung ist entscheidend, um sicherzustellen, dass wir die notwendigen Anforderungen für unsere Entwicklung erfassen. Für die Anforderungsermittlung wiederum ist es dabei entscheidend zu wissen, welche Bedeutung die Anforderung für die Zufriedenheit der Stakeholder hat. Nur so können alle notwendigen Anforderungen erfasst werden, insbesondere die Basisfaktoren, die als selbstverständlich vorausgesetzt werden, und kann sichergestellt werden, dass die grundlegenden Erwartungen der Stakeholder erfüllt und die Zufriedenheit mit dem Endprodukt gewährleistet werden.

Eine KI kann hier effizient für die Vollständigkeit dieser Arten von Faktoren und Anforderungen sorgen. Ein effektives RE ist entscheidend, um den Testprozess optimal zu unterstützen. Dabei spielen mehrere Aspekte eine wichtige Rolle, angefangen bei der Strukturierung der Anforderungen bis hin zur klaren Definition der Akzeptanzkriterien.

Zunächst sollte jede Anforderung als einzelnes Item im Backlog erfasst werden. Somit stellen wir sicher, dass jede Anforderung klar definiert und isoliert ist, was das Nachverfolgen und Testen jeder einzelnen Anforderung erheblich erleichtert. Eine präzise und detaillierte Erfassung jeder Anforderung verhindert Missverständnisse und gewährleistet, dass nichts übersehen wird. Dadurch wird der gesamte Prozess transparenter und übersichtlicher, was zu einer besseren Qualität der Software führt. Ihr „Traceability-Konzept“ dankt Ihnen!

Wie wichtig ist ein präzise gefülltes Backlog für den Erfolg eines Testprozesses?

Ein sorgfältig gepflegtes Backlog bildet die Grundlage für einen erfolgreichen Testprozess. Dabei sollten Anforderungen so genau und detailliert wie möglich beschrieben werden. Dies minimiert Unklarheiten und erleichtert es den Testern, spezifische Testfälle zu entwickeln, die alle Aspekte der Anforderungen abdecken. Eine genaue Beschreibung im Backlog hilft dabei, Anforderungen besser zu verstehen und sicherzustellen, dass sie vollständig und testbar sind. Dadurch wird die Basis für eine strukturierte und nachvollziehbare Testplanung gelegt.

Neben der präzisen Erfassung ist auch die Strukturierung der User-Storys von großer Bedeutung. Die Benutzergeschichten sollten nicht nur einzeln betrachtet, sondern auch in Gruppen gebündelt und strukturiert werden. Dies erleichtert es, Zusammenhänge zwischen den Anforderungen zu erkennen und Testszenarien zu entwickeln. Eine gut strukturierte Sammlung von User-Storys kann zudem dabei helfen, Abhängigkeiten und potenzielle Konflikte frühzeitig zu identifizieren. Durch das Bündeln von User-Storys können Testfälle effizienter geplant und durchgeführt werden, was die Testabdeckung verbessert und die Qualitätssicherung unterstützt.

Die Akzeptanzkriterien müssen genauso klar und testbar formuliert sein, da sie als Basis für die Entwicklung von Testfällen dienen. Sie müssen spezifisch genug sein, um eindeutige Testergebnisse zu ermöglichen. Unklare oder zu allgemein formulierte Akzeptanzkriterien können zu Missverständnissen und ineffektiven Tests führen. Eindeutige Akzeptanzkriterien sorgen dafür, dass alle Beteiligten, einschließlich der Tester, ein gemeinsames Verständnis der Anforderungen haben. Dies trägt wesentlich zur Effizienz und Genauigkeit des Testprozesses bei.

Schließlich sind Anwendungsfälle, sogenannte Use Cases, ein effektives Mittel, um den Testpfad darzustellen. Sie zeigen, wie ein System auf verschiedene Eingaben reagiert und welche Ergebnisse erwartet werden. Durch die Verwendung von Use Cases können Testpfade visualisiert und dokumentiert werden, was die Planung und Durchführung von Tests erleichtert. Dies trägt zur Vollständigkeit und Qualität der Tests bei und sorgt dafür, dass das System in allen relevanten Situationen korrekt funktioniert.

Beispiel: AROMA-Restaurantsystem

Als übersichtliches, nachvollziehbares Beispiel nutzen wir eine kurze Beschreibung für die Entwicklung eines Restaurantsystems. Hier ein kurzer Ausschnitt:

„Das Restaurantsystem AROMA ist ein modernes Bestell- und Zahlungssystem für Restaurants, das die veralteten Methoden und Geräte ersetzen soll. Das neue System umfasst die Bereitstellung eines Handheld-Geräts mit Touchscreen oder einer Smartphone-App für Gäste beim Betreten des Restaurants, über die sie Speisen und Getränke auswählen und bestellen können. Die Abrechnung kann über verschiedene Zahlungsmethoden wie Lastschrift, Kreditkarte und PayPal erfolgen. […]“

Ein initialer Prompt sieht beispielsweise wie in Abbildung 2 aus.

Abb. 2: Auszug aus dem Chatverlauf im ChatGPT-4o

Mit diesem Prompt geben wir der KI eine Anweisung, was sie für uns generieren soll. Durch dessen Verwendung erhalten wir nun die von der KI generierten Anforderungen.

Das Ergebnis dieses initialen Prompts zeigt Abbildung 3 aus.

Abb. 3: Auszug aus dem Chatverlauf im ChatGPT-4o

Das Ergebnis sieht auf den ersten Blick vielversprechend aus. Die generative KI erstellt zahlreiche Anforderungen in kürzester Zeit, was uns erheblich Zeit und Aufwand spart.

Bei genauerer Betrachtung fällt jedoch auf, dass einige Anforderungen nicht unserem Scope entsprechen und daher überflüssig oder sogar unerwünscht sind. Beispielsweise hat die KI die erste Anforderung eigenständig festgelegt, obwohl diese in unserer Situation nie zur Sprache kam. Dadurch entstehen unnötige Anforderungen, die nicht zu unseren eigentlichen Bedürfnissen passen.

Dies zeigt, dass die generierten Anforderungen auch im Hinblick auf die KI-Effizienz sorgfältig geprüft und ausgewählt werden müssen, da wir nicht alle verwenden können. Auf diese Weise können wir deren Eignung und Mehrwert für das Projekt gewährleisten, was allerdings zusätzlichen Aufwand bedeutet. Dies hängt allerdings mit dem anfänglichen Prompt zusammen, der nur sehr wenig Inhalt und Kontext enthält und daher der KI viel Spielraum für Interpretationen lässt.

Verbesserung des initialen Prompts

Um eine generative KI besser nutzen zu können und relevantere Ergebnisse zu erhalten, ist es hilfreich, den Prompt gezielt zu verbessern. Ein möglicher Weg ist es, der KI eine bestimmte Rolle im Prompt zuzuordnen. Durch eine klare Rollenzuweisung können die Qualität und Richtigkeit der erzeugten Anforderungen wesentlich erhöht werden.

Ein Requirements Engineer hat laut Definition andere Eigenschaften und Fähigkeiten als ein Entwickler. Diese unterschiedlichen Kompetenzen können durch das „implizite Wissen“ oder das Training der KI berücksichtigt werden. Wenn der KI eine Rolle als versierter Requirements Engineer zugewiesen wird, kann sie bessere Entscheidungen darüber treffen, welche Anforderungen wichtig und angemessen sind und wie diese schriftlich ausgedrückt werden sollen. Dies reduziert die Wahrscheinlichkeit, dass irrelevante Artefakte generiert werden, und stellt sicher, dass die erzeugten Anforderungen präzise und relevant sind.

Wir haben die in Abbildung 4 gezeigte Prompting-Regel definiert, um die Adressaten-Rolle des Prompts zu beschreiben [3].

Abb. 4: Auszug aus dem Prompting Guideline, Quelle [2]

Eine weitere Möglichkeit, den Prompt zu verbessern, besteht darin, der KI eine spezifische Temperatur vorzugeben. Dadurch wird klar definiert, wie das Ergebnis der KI aussehen soll. Überlegen Sie dabei, ob Sie möchten, dass das KI-System eher vorhersehbare und deterministische oder kreativere Anforderungen generiert. Eine niedrige Temperatur führt zu vorhersagbaren Antworten, die nahe an den Trainingsdaten (d.h. der KI antrainierte Informationen) und üblichen Mustern liegen. Eine hohe Temperatur hingegen fördert kreativere und unkonventionellere Antworten, die jedoch manchmal weniger relevant oder passend für die gestellte Aufgabe sein können.

Wir haben die in Abbildung 5 gezeigte Regel zur Prompt-Gestaltung definiert, um die Temperatur im Prompt festzulegen [3].

Abb. 5: Auszug aus dem Prompting Guideline, Quelle [2]

Mit solch einer definierten Rolle, klaren Temperatur und somit einem klaren Kontext kann die generative KI zielgerichteter und effizienter arbeiten. Die generierten Anforderungen werden so besser auf die spezifischen Bedürfnisse und Rahmenbedingungen des Projekts abgestimmt, was letztendlich zu einem erfolgreicheren und reibungsloseren Anforderungsmanagement führt.

Durch die Anwendung der Verbesserungen am Prompt erhalten wir das Resultat aus Abbildung 6.

Abb. 6: Auszug aus dem Chatverlauf im ChatGPT-4o

Das Ergebnis dieses verbesserten Prompts zeigt Abbildung 7.

Abb. 7: Auszug aus dem Chatverlauf im ChatGPT-4o

Vergleichen wir nun die Spezifikation des verbesserten Prompts mit der Spezifikation des initialen Prompts, erkennen wir sofort die gesteigerte Qualität der Ausgabe, die uns die KI liefert. Dies wird besonders deutlich, wenn wir die Detailgenauigkeit, Formulierungsmuster und Relevanz der generierten Anforderungen betrachten. Im initialen Prompt waren die generierten Anforderungen oft zu allgemein gehalten oder enthielten irrelevante Informationen, die nicht direkt auf die spezifischen Bedürfnisse und Rahmenbedingungen unseres Projekts abgestimmt waren. Dies führte dazu, dass zusätzliche Arbeit notwendig war, um die Anforderungen zu überarbeiten und anzupassen.

Durch die Verfeinerung des Prompts konnten wir die Effizienz der KI erheblich steigern. Die KI konnte nun präziser auf unsere Ausgangssituation eingehen und Anforderungen generieren, die spezifischer und genauer auf unsere Bedürfnisse zugeschnitten sind. Beispielsweise berücksichtigt die KI nun genau die Art der Interaktionen, die im AROMA-Restaurantsystem erforderlich sind, sowie die verschiedenen Benutzerrollen und deren spezifische Anforderungen. Dies umfasst detaillierte Funktionen wie die Möglichkeit für Gäste, Sonderwünsche bei Bestellungen hinzuzufügen, und die Echtzeit-Übermittlung von Bestellungen an die Küche, was im initialen Prompt nicht ausreichend berücksichtigt wurde.

Darüber hinaus zeigt sich in der verbesserten Spezifikation eine größere Klarheit und Struktur, die es uns erleichtert, die generierten Anforderungen zu bewerten und zu implementieren. Die Anforderungen sind nun klarer formuliert, was die Verständlichkeit erhöht.

Wir stellen auch fest, dass die KI durch den optimierten Prompt besser in der Lage ist, Kontextinformationen zu verarbeiten und einzubinden. Dies erhöht die Qualität der erstellten Anforderungen insgesamt, da die KI nun relevante Informationen besser herausfiltern und irrelevante Einzelheiten ausblenden kann. Zum Beispiel sind nun keine überflüssigen Punkte mehr vorhanden, die für unseren Kontext unerheblich sind. Dies verringert den Bedarf, die erstellten Anforderungen nachträglich zu korrigieren und anzupassen, und spart dadurch Zeit und Ressourcen. Eine

weitere – aus unserer Erfahrung sehr wichtige – Möglichkeit, den Prompt zu optimieren, ist die Verwendung von präzisen Begriffen, die im jeweiligen Kontext klar definiert sind. Achten Sie darauf, dass das KI-System die Definitionen, die Sie verwenden, kennt oder die allgemein anerkannt sind. Verwenden Sie Begriffe konsistent, um Verwirrung zu vermeiden. Wir haben noch die Regel aus Abbildung 8 zur Verbesserung von Prompts formuliert [3].

Abb. 8: Auszug aus dem Prompting Guideline, Quelle [2]

Nachdem wir nun zahlreiche Verbesserungen an unserem Prompt vorgenommen haben, ist es an der Zeit, einen Blick auf einen Ausschnitt des endgültigen „sophisticated“ Prompts zu werfen. Abbildung 9 zeigt Ausschnitte des (ca. vierseitigen) „SOPHISTicated“ Prompts.

Abb. 9: Auszug aus dem Chatverlauf im ChatGPT-4o (1)

Abb. 9: Auszug aus dem Chatverlauf im ChatGPT-4o (2)

Abb. 9: Auszug aus dem Chatverlauf im ChatGPT-4o (3)

Das Ergebnis zeigt Abbildung 10.

Abb. 10: Auszug aus dem Chatverlauf im ChatGPT-4o (1)

Abb. 10: Auszug aus dem Chatverlauf im ChatGPT-4o (2)

Abb. 10: Auszug aus dem Chatverlauf im ChatGPT-4o (3)

Fazit

Durch die gezielte Verfeinerung von Prompts mithilfe spezifischer Regeln kann die KI dazu beitragen, umfassende und präzise Anforderungen für Systeme zu erstellen. Einmal formuliert, kann ein solcher Prompt dann für viele RE-Einsätze verwendet werden. Die Richtlinien der Prompting Guideline haben sich als äußerst erfolgreich erwiesen, sie geben deutliche Anweisungen, wie gute Prompts gestaltet sein sollen, was zu einer wesentlichen Verbesserung der Effizienz und Genauigkeit beigetragen hat.

Literaturangaben

[1] C. Rupp u. a., Requirements-Engineering und -Management, Carl Hanser Verlag, 2021

[2] SOPHIST GmbH, K(A)I RESE, 2024,
siehe: www.sophist.de/trainings/unsere-trainings/kuenstliche-intelligenz-im-requirements-engineering

[3] SOPHIST GmbH, Übersicht Prompting Guideline, 2024, siehe: www.sophist.de/prompting-guide-2

. . .

Author Image

Andreas Guenther

Berater, Coach und Trainer
Zu Inhalten

Andreas Günther ist Berater, Coach und Trainer bei SOPHIST und spezialisiert auf sprachliche und modellbasierte Methoden im Requirements- und Software-Engineering (RE/SE). Auch beschäftigt er sich mit der Erstellung von Abnahmekriterien und Testfällen im Rahmen des RE/SE. Oftmals liegt in seinen Kundenprojekten der Fokus auf dem Definieren von Prozessen, Methoden und Tools im Sinne der Transformation und Organisationsentwicklung. Momentan versucht er, einer KI das RE beizubringen und dabei vor allem die KI-Qualität soweit zu tunen, dass wirkliche Qualität daraus entspringt.

Author Image

Breno Pinheiro

Consultant for Requirements Engineering
Zu Inhalten

Breno Pinheiro ist Berater für Requirements- und Software-Engineering (RE/SE) bei SOPHIST und begleitet Kunden bei der Definition und Analyse von Anforderungen, wobei er sein fundiertes Wissen im Bereich der KI im RE einsetzt, um innovative Lösungen zu entwickeln. Durch seine Tätigkeit als CPRE Foundation Level Trainer hat er zudem die Möglichkeit, sein Wissen und seine Erfahrungen im Bereich Systems-Engineering und KI im RE zu teilen und weiterzuentwickeln.


Artikel teilen