ecu.test agent

ecu.test agent hilft dir, Testschritte mit KI zu erzeugen. Er liest die aktuelle Blockbeschreibung und den relevanten Workspace-Kontext aus und fügt passende Testschritte für dich ein. Dafür verbindet er sich mit deinem aktiven globalen Mapping, globalen Konstanten, konfigurierten Bibliotheksworkspaces und analysiert das aktuelle Package. Er kann zudem aus deinen vorhandenen Packages lernen, wenn du Referenzimplementierungen bereitstellst.

Um ecu.test agent in deinem Workspace zu nutzen, musst du ihn mit dem agent-Service verbinden und nach deinen Bedürfnissen konfigurieren.

Info

Es gibt in ecu.test agent jetzt auch eine Unterstützung für Traceanalysen. Diese befindet sich noch in einer frühen Entwicklungsphase, kann allerdings schon ausprobiert werden.

Von ecu.test agent unterstützte Features der Traceanalyse und damit verbundene Einschränkungen sind in So erzeugst du Traceschritte beschrieben.

Einrichtung

Verwende Optionen ‣ Einstellungen ‣ ecu.test agent, um den agent-Service zu verbinden und zu konfigurieren.

Verbindung

  • Url: Basis-URL des agent-Services.

  • Api-token: Authentifizierungs-Token für den Dienst. Du kannst das Token ein-/ausblenden.

  • Proxy-Einstellungen: Optional kannst du einen Proxy konfigurieren. Unterstützte Modi: Kein Proxy, Systemproxy, Benutzerdefiniert (mit optionaler Authentifizierung). Browser-/PAC-Proxys werden derzeit nicht unterstützt.

Info

Klicke auf Check, um die Konnektivität zu verifizieren. Bei Erfolg zeigt der Dialog OK. Wenn du mit unserem Dienst verbunden bist, werden zudem deine verbleibenden Credits angezeigt.

Multimedia-Einstellungen

Hier können Einstellungen bzgl. der Multimedia Testschritte getroffen werden, die ecu.test agent während der Ausführung nutzen, beispielsweise Testschritte, die Koordinaten anhand eines Bildes und eines Prompts erzeugen. Das eingestellte Modell muss die Fähigkeit haben, Bilder analysieren zu können. Es wird empfohlen, Bilder automatisch auf eine Maximalgröße zu skalieren, um die Ausführungszeit zu verkürzen und die Qualität der Antworten zu verbessern. Zudem skalieren manche Modelle zu große Bilder vor der Verarbeitung intern, so dass die zurückgegebenen Pixelkoordinaten nicht mit den Originalbildern übereinstimmen.

Testschritte, die diese Einstellungen verwenden:

Referenzimplementierungs-Kontexte

Um die Qualität der generierten Schritte zu verbessern, kannst du ecu.test agent erlauben, aus deinen vorhandenen Packages zu lernen. Wiederkehrende Muster und Lösungen werden erkannt und auf den aktuellen Block übertragen. Das kann die Qualität der generierten Schritte deutlich verbessern.

  • Füge einen oder mehrere benannte Kontexte hinzu. Jeder Kontext verweist auf einen Ordner, der Packages als „Referenzimplementierungen“ enthält.

  • Im Testfall-Editor kannst du im Dropdown der Toolbar Mit ecu.test agent generieren die zu verwendenden Kontexte auswählen.

  • Details siehe Referenzimplementierungen.

Filtereinstellungen

Hier kannst du konfigurieren, wie viele Elemente jeder Kategorie ecu.test agent bei der Generierung berücksichtigen soll. Das ist eine Art Vorfilterung, um die an den Dienst gesendeten Datenmengen zu begrenzen. Für jede Generierung werden die relevantesten Elemente jeder Kategorie ausgewählt, basierend auf der semantischen Ähnlichkeit zur aktuellen Blockbeschreibung.

  • Signal-Mappings: Anzahl der berücksichtigten Signal-Mappings.

  • Jobs: Anzahl der berücksichtigten Tool- und Port-Jobs.

  • Package-Mappings: Anzahl der berücksichtigten Package-Mappings.

  • Package aus Bibliotheks-Workspaces: Anzahl der berücksichtigten Bibliotheks-Package.

  • Packagevariablen: Anzahl der berücksichtigten Packagevariablen.

  • Globale Konstanten: Anzahl der berücksichtigten globalen Konstanten.

  • Referenzimplementierungs-Blöcke: Anzahl der einbezogenen, am besten passenden Referenz-Blöcke.

Info

Die Summe aller Filterlimits darf 50 nicht überschreiten. Höhere Werte können die Qualität beeinflussen, erhöhen jedoch Anfragengröße und Latenz.

Example

Wenn es 100 Signale im globalen Mapping gibt und das Limit für Signal-Mappings auf 5 gesetzt ist, dann wählt ecu.test agent für jeden Block, für den du generierst, die 5 relevantesten Signale basierend auf der Blockbeschreibung aus diesen 100 verfügbaren Signalen aus. ecu.test agent könnte also in diesem Block beispielsweise 5 verschiedene Lesen-Schritte für 5 unterschiedliche Signale generieren.

Benutzerdefinierte Anweisungen

Mit diesen Anweisungen kannst du ecu.test agent weiter an die individuellen Bedürfnisse deines Projekts anpassen und die Generierungsqualität verbessern.

Info

Formuliere klare Anweisungen (z. B. Stilregeln, Namenskonventionen, bevorzugte/zu vermeidende Elemente).

So erzeugst du Testschritte

Wähle im Testfall-Editor einen Block aus, dessen Inhalt du generieren möchtest. Klicke mit der rechten Maustaste und verwende Mit ecu.test agent generieren, um Testschritte für diesen Block zu erzeugen.

Du kannst auch die Schaltfläche Mit ecu.test agent generieren in der Toolbar (Dropdown-Menü) verwenden:

  • Auswahl mit ecu.test agent generieren: Generiert nur für die ausgewählten Blöcke.

  • Alle leeren mit ecu.test agent generieren: Generiert nur für Blöcke, die noch keine Schritte haben.

  • Alles mit ecu.test agent generieren: Generiert für alle Blöcke.

Nach erfolgreicher Generierung zeigt ein Overlay auf dem Icon des Blocks an, dass die Testschritte mit ecu.test agent erzeugt wurden. Dieses Overlay bleibt bestehen, bis der Block oder einer der enthaltenen Schritte bearbeitet wird. Das Overlay kann auch manuell über den Editier-Dialog des Blocks entfernt werden.

Info

Wähle im selben Dropdown einen Referenzimplementierungs-Kontext aus, um ecu.test agent zu steuern. Details siehe Referenzimplementierungen. Prüfe die generierten Schritte, bevor du den Testfall ausführst.

Info

Gib eine klare Blockbeschreibung an (Aktion, Parameter, Erwartung), siehe So verbesserst du die Qualität der generierten Testschritte.

Unterstützte Testschritte

ecu.test agent kann diese Testschritte generieren und parametrisieren:

  • Mappings lesen und prüfen (mit optionalen Toleranz- und Zeitoptionen)

  • Mappings schreiben

  • Warten

  • Berechnungen durchführen und prüfen

  • Tool- und Port-Jobs parametriert aufrufen

  • Package-Aufruf (Workspace- oder Bibliotheks-Package mit Ein-/Ausgabeparametern)

  • If-Then-Else

  • MultiCheck

  • Loop

  • Exit

  • Kommentar

  • Start- und Stop-Trace

Falls ecu.test agent keine passenden Schritte generieren kann, fügt er ein To-do hinzu und informiert dich, welche zusätzlichen Informationen ggf. fehlen. Wenn die Antwort nicht verarbeitet werden kann, wird ein Kommentar eingefügt, damit du die Blockbeschreibung anpassen und es erneut versuchen kannst.

Welche Informationen berücksichtigt werden

ecu.test agent stellt aus deinem Projekt einen Kontext zusammen, um die Generierung zu steuern. Elemente werden mithilfe der Filterlimits unter Einstellungen ‣ ecu.test agent ‣ Filtereinstellungen gefiltert.

  • Aktuelle Blockbeschreibung: Aktion, Parametrierung und Erwartung.

  • Aktuelle Package-Implementierung: Andere Blöcke aus dem geöffneten Package.

  • Packagevariablen: Parameter und Rückgabewerte des aktuellen Packages, einschließlich Typ und Beschreibung.

  • Signal-Mappings: Signal-Mappings aus dem globalen Mapping mit Namen, Pfaden, Typen, Einheiten und Beschreibungen.

  • Tool- und Port-Jobs aus dem globalen Mapping mit Namen und Beschreibungen.

  • Package-Mappings: Zugeordnete Packages aus dem globalen Mapping mit Name, Beschreibung und Pfad. Auch Parameter-/Rückgabebezeichner und Beschreibungen dieser Packages werden berücksichtigt.

  • Package aus Bibliotheks-Workspaces: In konfigurierten Bibliotheksworkspaces gefundene Packages.

  • Globale Konstanten: Globale Konstanten der aktuellen Konfiguration mit Werten und Beschreibungen.

  • Referenzimplementierungen: Die ähnlichsten Blöcke aus den ausgewählten Referenzimplementierungs-Kontexten.

  • Deine benutzerdefinierten Anweisungen, wie in den Einstellungen definiert.

So verbesserst du die Qualität der generierten Testschritte

Sei in Blöcken konkret

  • Aktion: Beschreibe das Ziel, nicht die Lösung.

  • Parametrierung: Gib relevante Eingaben, Einschränkungen, Bereiche und Einheiten an.

  • Erwartung: Nenne beobachtbare Ergebnisse, Schwellenwerte, Toleranzen und Zeiten.

Benutzerdefinierte Anweisungen verwenden

  • Füge Stil- und Namenskonventionen hinzu (z. B. Variablenpräfixe, erforderliche Einheiten, erlaubte Mappings).

  • Hebe die Verwendung bestimmter Signale, Variablen oder Konstanten hervor bzw. schränke sie ein.

  • Wende testspezifische Strategien an (z. B. nach dem Lesen warten, Toleranzen hinzufügen, eine bestimmte Aktion stets am Beginn/Ende eines Testfalls ausführen usw.).

  • Wende domänenspezifische Logik oder Regeln an.

  • Halte es klar, konkret und konsistent; verwende Aufzählungen oder kurze Sätze.

Filtereinstellungen anpassen

  • Erhöhe Limits für Kategorien, die für deinen Block am wichtigsten sind, halte die Summe jedoch unter 50.

  • Sollen nur Package-Aufrufe generiert werden, setze das Limit der Signal-Mappings auf 0; umgekehrt, wenn ausschließlich Signal-Mappings gewünscht sind.

  • Niedrigere Limits können Latenz und Kosten reduzieren.

Gute Metadaten pflegen

  • Füge klare Beschreibungen zu Mappings, Variablen, globalen Konstanten und Packages hinzu.

Referenzimplementierungen verwenden

  • Erzeuge Referenzen für repräsentative Packages und wähle diesen Kontext in der Toolbar aus.

Referenzimplementierungen

Referenzimplementierungen ermöglichen es ecu.test agent, aus deinen vorhandenen Packages zu lernen. Wiederkehrende Muster und Lösungen werden erkannt und auf den aktuellen Block übertragen. Das kann die Qualität der generierten Schritte deutlich verbessern.

Kontext hinzufügen

  • Öffne Optionen ‣ Einstellungen ‣ ecu.test agent ‣ Referenzimplementierungs-Kontexte.

  • Klicke auf die Registerkarte +, gib einen Namen ein und lege den Pfad fest (workspace-relative Pfade werden unterstützt).

Kontext auswählen

  • Öffne im Testfall-Editor das Dropdown Mit ecu.test agent generieren und wähle die gewünschten Kontexte.

  • ecu.test agent berücksichtigt die am besten passenden Blöcke (gemäß deinem Limit). Die Übereinstimmung basiert auf der semantischen Ähnlichkeit zwischen der aktuellen Blockbeschreibung und den Referenzblöcken.

Info

Die Referenzen werden, falls nötig, bei jedem Generierungsvorgang aktualisiert. Es werden immer die neuesten Versionen der Blöcke in den Referenzimplementierungen berücksichtigt.

Info

Packages oder Verzeichnisse mit einem vorangestellten Punkt (z.B. .hiddenPackage.pkg) gelten als versteckt und werden nicht in die Referenzen aufgenommen.

Warnung

Das Generieren von Referenzimplementierungen kann je nach Anzahl und Größe der Packages einige Zeit in Anspruch nehmen. Wir empfehlen, nur repräsentative Packages zu verwenden, welche typische Lösungen für deine Testszenarien enthalten.

So erzeugst du Traceschritte

Kontext

Aktuell bestimmt sich der Kontext für die Traceanalyse lediglich aus dem benutzerdefinierten Prompt, der im Reiter Traceanalyse unter Individuelle Anweisungen in den Einstellungen des ecu.test agent hinterlegt werden kann, der Beschreibung der Traceanalyse, den bereits vorhandenen generischen Signalen, den Variablen und den globalen Konstanten. Die Anzahl verwendeter generischer Signale ist aktuell fest hinterlegt und auf 10 begrenzt. Die Filtereinstellungen finden noch keine Verwendung, d.h. globale Konstanten, Package-Variablen, etc. werden bisher nicht berücksichtigt. Gleiches gilt für Referenzimplementierungen.

Traceschritte

Die Erzeugung von Traceschritten mit ecu.test agent funktioniert analog zur Verwendung im Testfall. Wähle im Traceanalyse-Editor einen Block aus, dessen Inhalt du generieren möchtest. Name oder Beschreibung des Blocks sollten Informationen zu der zu realisierenden Analyseaufgabe enthalten. Klicke mit der rechten Maustaste und verwende Mit ecu.test agent generieren oder ein Kommando im Dropdown-Menü Mit ecu.test agent generieren in der Toolbar, um Traceschritte für den ausgewählten Block zu erzeugen.

Die Early-Access-Version kann folgende Arten von Traceschritten generieren:

  • Berechnungsschritt

    • Erwartung True in den Modi ‚Überall erfüllt‘ und ‚Mindestens einmal erfüllt‘

    • Nicht unterstützt: andere Erwartungen (False, Numeric, etc.), andere Modi, weiterführende Optionen

  • Triggerblock

    • alle Modi

    • Nicht unterstützt: erweiterte Optionen und Optionen zum Reporting

  • Plot

    • Unter dem Punkt Einstellungen der Ploteinstellungen wird lediglich Gesamtplot unterstützt.

    • Separate Plots werden noch nicht unterstützt.

    • Für Achsen werden nur dezimale numerische Darstellungen und die Y-Skalierung unterstützt.

In Ausdrücken können folgende Funktionen generiert werden:

  • Always

  • Derivative

  • Edge

  • FallingEdge

  • RisingEdge

Nachfolgend findest du ein paar Beispiele für Blockbeschreibungen, die zu guten Ergebnissen führen:

  • Prüfe, dass das Signal Speed den Wert 80 km/h mindestens einmal erreicht.

  • Prüfe, dass das Signal Speed den Wert 130 km/h niemals überschreitet.

  • Ein Trigger soll bei steigenden Flanken in Signal X starten und bei fallenden Flanken in Signal X stoppen. Während des Triggers soll überprüft werden, ob Signal Y konstant bleibt. Beide Signale sollen grafisch dargestellt werden. Signal X soll blau sein.

  • Das Signal Acceleration soll mit einer Toleranz von 5% der Ableitung des Signals Speed entsprechen. Plotte beide Signale, Speed in blau, Acceleration in rot.

  • Berechne aus dem Signal Speed die Beschleunigung und speichere das Ergebnis in einem neuen Signal Acceleration.