-
Die Erfindung betrifft ein Validierungssystem zur Ausführung eines Verfahrens zur Priorisierung von Validierungsaufgaben gemäß dem Oberbegriff des Anspruchs 1.
-
Stand der Technik
-
Fahrassistenzsysteme wie z.B. ein adaptiver Geschwindigkeitsregler und/oder Funktionen für das hochautomatisierte Fahren können mithilfe diverser Überprüfungsmethoden verifiziert bzw. validiert werden. Dabei können insbesondere Simulationen verwendet werden. Eine Simulation besteht dabei aus einer Vielzahl an Validierungsaufgaben, die ausgeführt werden müssen, um die vollständige Simulation durchzuführen. Dabei wird die Simulation und damit verbunden die Validierungsaufgaben durch ein Validierungssystem ausgeführt. Das Validierungssystem hat dabei verschiedene Ausführungseinheiten, die die Ausführung der Validierungsaufgaben übernehmen.
-
Der Aufwand, insbesondere der Zeit- und/oder Kostenaufwand, zum Testen derartiger Fahrzeugfunktionen unter Verwendung von Simulationen ist dabei typischerweise hoch, da eine große Anzahl potenziell möglicher Fahrsituationen getestet werden muss.
-
Es ist jedoch häufig nötig abschätzen zu können, wie lange und wie teuer die Ausführung wird. Zum Beispiel, um die Testausführung einplanen zu können oder um zu ermitteln, wie viele Rechenknoten und damit auch Ausführungseinheiten, die die einzelnen Validierungsaufgabe ausführen können, zur Verfügung gestellt werden müssen.
-
Zudem ist es notwendig bei einer hohen Anzahl an Simulationen und damit verbunden Validierungsaufgaben eine Priorität festzulegen.
-
Andernfalls kann gegebenenfalls eine langanhaltende Simulation zu viele Ausführungseinheiten binden, so dass andere Validierungsaufgaben nicht ausgeführt werden können, die aber dringend erforderlich sind.
-
Demzufolge besteht ein Bedarf, bestehende Testverfahren insbesondere für Fahrassistenzsysteme dahingehend zu verbessern, dass eine Priorität für Validierungsaufgaben einer Simulation eines Testfalls angegeben werden und entsprechend die Validierungsaufgaben ausgeführt werden.
-
Es ist daher Aufgabe der Erfindung, ein Validierungssystem zur Ausführung eines Verfahrens zur Priorisierung von Validierungsaufgaben bereitzustellen.
-
Offenbarung der Erfindung
-
Die Aufgabe wird durch ein Validierungssystem zur Ausführung eines Verfahrens zur Priorisierung von Validierungsaufgaben mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von abhängigen Unteransprüchen.
-
Das Validierungssystem zur Ausführung eines Verfahrens zur Priorisierung von Validierungsaufgaben ermöglicht die Gruppierung von Ausführungseinheiten in zumindest zwei Gruppen. Jede Gruppe weist dabei unterschiedliche Fähigkeiten auf, die durch das Validierungssystem oder einen Benutzer festgelegt werden. Diese Fähigkeiten haben demzufolge auch die Ausführungseinheiten der Gruppe. Eine Ausführungseinheit kann auch mehreren Gruppen zugehörig sein. Validierungsaufgaben haben im Gegensatz spezifische Anforderungen an eine Ausführungseinheit. Handelt es sich um eine Validierungsaufgabe, die in Zusammenhang mit einem Hardware-in-the-Loop Testverfahren auszuführen ist, so werden spezifische Protokolle, Schnittstelen als Anforderung der Validierungsaufgabe bei der Ausführung benötigt. Daher werden Ausführungseinheiten zur Ausführung benötigt, die diese Fähigkeiten aufweisen. Die Anforderungen einer Validierungsaufgabe werden bei Ausführung der Validierungsaufgaben durch das Validierungssystem automatisch und / oder durch den Benutzer festgelegt. Zudem wird eine Priorität der Validierungsaufgabe angegeben die eine Ausführungsreihenfolge bestimmt. Die Ausführungsreihenfolge wird in Kombination mit den zur Verfügung stehenden befähigten Ausführungseinheiten und der Priorität dynamisch definiert. Die Validierungsaufgaben werden dann entsprechend der Ausführungsreihenfolge ausgeführt.
-
Das Validierungssystem nach Anspruch 1 kann dabei in verschiedenen Ausführungsformen vorliegen. So kann es sich um ein geschlossenes System handeln oder um einzelne verteilte Komponenten. Zudem kann in einer bevorzugten Ausführungsform die zumindest eine Komponente, die das Validierungssystem ausbildet oder die Komponente, die das Verfahren zur Priorisierung abbildet, auch in einer Cloud-Umgebung liegen oder in einer weiteren bevorzugten Ausführungsform lokal auf beispielsweise einem ESXi-Server ausgeführt werden. Auch die zu validierenden Subjekte unter Test (SUT) können wahlweise in Cloud-Umgebungen oder lokal zur Verfügung gestellt werden.
-
Zweck des Validierungssystems ist insbesondere das Testen einer Vorrichtung zur zumindest teilweisen autonomen Führung eines Verkehrsmittels und / oder Verkehrsteilnehmer. Hier können verschiedene Testverfahren zum Einsatz kommen.
-
Dabei können insbesondere Hardware-in-the-Loop (HIL) Verfahren, Software-in-the-Loop (SIL) Verfahren, Szenario-basiertes Testen, Stepbased Testing bzw. Schrittweises Testen, Data Replay Testing oder eine Kombination von Testverfahren verwendet werden. Dabei sind die genannten Testverfahren erfindungsgemäß nicht abschließend anzusehen.
-
Gemäß einer bevorzugten Weiterbildung der Erfindung werden die Ausführungseinheiten in zumindest zwei Gruppen aufgeteilt. Jede Gruppe von Ausführungseinheiten weist verschiedene Fähigkeiten auf. Dabei kann eine Ausführungseinheit in einer oder auch mehr Gruppen vertreten sein. Die Zuweisung zu Gruppen wird bei der Systeminstallation festgelegt. Jedoch kann vor Starten des Validierungssystems oder vor Starten der Ausführung einer Validierungsaufgabe durch das Validierungssystem oder einen Benutzer festgelegt werden, wie viele und welche Ausführungseinheiten zur Verfügung gestellt werden sollen. Durch diesen Mechanismus können gezielt Ressourcen insbesondere für spezifische Anwendungsfälle bereitgestellt werden und es werden nicht unnötige Ressourcen verbraucht, da Ausführungseinheiten die gestartet aber nicht verwendet werden trotzdem Rechenkapazitäten des Validierungssystems binden.
-
Die Fähigkeiten einer Ausführungseinheit umfassen dabei eine Art der Validierungsaufgabe, ein Ausführungsort und / oder eine Ausführungsdauer. Die Art der Validierungsaufgabe kann beispielsweise durch ein Testverfahren wie SIL Testing oder HIL Testing angegeben werden. Dadurch werden spezifische Anforderungen der Validierungsaufgabe an eine Ausführungseinheit definiert. Dabei können sich beispielsweise Schnittstellen oder zu verwendende Protokolle unterscheiden.
-
Zudem kann eine Art der Validierungsaufgabe die Zugehörigkeit der Validierungsaufgabe zur Continuous Integration (CI) und Continuous Deployment (CD) Pipeline sein. Um eine sichere Weiterentwicklung des Subjekt oder System unter Test (SUT) zu gewährleisten kann die Priorisierung dieser Art von Validierungsaufgabe notwendig sein.
-
Für Automobilhersteller und/oder Zulieferer ist eine funktionierende CI/CD Pipeline aufzubauen notwendig, um eine kontinuierliche Weiterentwicklung ihrer Produkte zu gewährleisten. Dabei sollen kontinuierliche Änderungen am Produkt / an der Software, die beispielsweise eine autonome Fahrfunktion abbildet, ebenso kontinuierlich getestet und ausgeliefert werden können. Nur so lassen sich schnelle Entwicklungszyklen ermöglichen, die insbesondere in der agilen Entwicklung eine große Rolle spielen. Damit kann das vorrangige Testen der Validierungsaufgaben aus einer CI/CD Pipeline notwendig sein, um den Entwicklungsprozess nicht zu gefährden. Daher kann erfindungsgemäß mit dem Validierungssystem zur Ausführung eines Verfahrens zur Priorisierung von Validierungsaufgaben CI/CD Pipeline Validierungsaufgaben priorisiert ausgeführt werden.
-
Je nach Anwendungsfall kann auch ein Anwender des Validierungssystems den Wunsch haben beispielsweise Validierungsaufgaben, die auf einem HIL auszuführen sind, priorisiert zu behandeln. Durch die Ausführung des Verfahrens zur Priorisierung von Validierungsaufgabe, können auch Prioritäten für Aufgaben mit spezifischen Ausführungsort benannt werden.
-
Ein weiteres häufig auftretendes Problem besteht darin, dass Validierungsaufgaben, die eine lange Ausführungsdauer aufweisen, viele andere Validierungsaufgaben und zur Ausführung der anderen Validierungsaufgaben benötigten Ressourcen blockieren. Je nach Anwendungsfall kann das Validierungssystem und / oder der Anwender bzw. Benutzer des Validierungssystems die Ausführung des Verfahrens zur Priorisierung von Validierungsaufgabe Rechenressourcen für Validierungsaufgaben mit kurzer oder langer Ausführungsdauer bevorzugt bereitstellen.
-
Vor Starten einer Ausführung einer Validierungsaufgabe setzt das Validierungssystem automatisch oder der Benutzer Anforderungen der Validierungsaufgabe an die Ausführungseinheiten fest. Darüber hinaus gibt das Validierungssystem oder der Benutzer eine Priorität der Validierungsaufgabe an. Aus den Anforderungen und der gesetzten Priorität der Validierungsaufgaben lassen sich Rückschlüsse auf den Bedarf der Ausführungseinheiten und der Fähigkeiten der Ausführungseinheit schließen. So dass auch vor Starten der Validierungsaufgabe bedarfsgenau und ressourcenschonend Ausführungseinheiten in den benötigten Gruppen gestartet werden können. Ansonsten können Ausführungseinheiten auch ruhen und verbrauchen in diesem Zustand kein bzw. kaum Ressourcen.
-
Durch die Prioritäten der Validierungsaufgaben wird eine Ausführungsreihenfolge ermittelt. Diese Ausführungsreihenfolge bestimmt Zugriffsrechte auf zur Verfügung stehenden befähigten Ausführungseinheiten und den im Validierungssystem zur Verfügung stehenden Rechenressourcen.
-
Figurenliste
-
Zum besseren Verständnis der vorliegenden Erfindung und ihrer Vorteile wird nun auf die nachfolgende Beschreibung in Verbindung mit den zugehörigen Zeichnungen verwiesen.
-
Nachfolgend wird die Erfindung anhand exemplarischer Ausführungsformen näher erläutert, die in den schematischen Abbildungen der Zeichnungen angegeben sind.
-
Es zeigen:
- 1 eine schematische Darstellung von erfindungsrelevanten Verkehrsszenarien
- 2 eine schematische Ansicht des erfindungsgemäßen Verfahrens zur Priorisierung von Validierungsaufgaben
- 3 eine schematische Darstellung einer erfindungsgemäßen Ausführungsreihenfolge
- 4 eine schematische Ansicht der Zusammenhänge zwischen CI Pipeline und erfindungsgemäßen Ausführungsreihenfolge
- 5 beispielhafte Gruppen von Ausführungseinheiten
-
Die Abbildung der 1 zeigt eine schematische Darstellung von erfindungsrelevanten Verkehrsszenarien, die beispielsweise in einem Szenario-basiertem Testverfahren zum Einsatz kommen. Es wird sowohl in der links dargestellten Verkehrsszene wie auch in der auf der rechten Seite der Abbildung gezeigten Szene ein Kreuzungsbereich dargestellt. In der linken Verkehrsszene wird ein Linksabbiegemanöver eines Ego-Fahrzeugs (EGO) dargestellt. Dabei sind vier weitere Fellow-Fahrzeuge (F1 - F4) beteiligt. Zudem wird in der rechten Verkehrsszene die Überquerung des Ego-Fahrzeugs (EGO) ohne Beteiligung von Fellow-Fahrzeugen gezeigt. Aus diesem einfachen Kreuzungsbereich lassen sich verschiedene Verkehrssituationen ableiten, die zur Sicherung einer Fahrfunktion insbesondere einer autonomen Fahrfunktion getestet werden müssen. Daraus ergeben sich eine Vielzahl von Validierungsaufgaben. Aber auch in diesem Testraum mit der entsprechenden Anzahl von Validierungsaufgaben wird eine Priorisierung von Validierungsaufgaben notwendig, um effizient zu Testen. Das erfindungsgemäße Verfahren zur Priorisierung von Validierungsaufgaben ermöglicht bei Ausführung in einem Validierungssystem eine vorteilhafte Umsetzung der Priorisierung von Validierungsaufgaben.
-
In der Abbildung der 2 ist das erfindungsgemäße Verfahren zur Priorisierung von Validierungsaufgaben dargestellt. Dabei werden durch abschließende notwendige Tests beispielsweise einer Fahrfunktion oder erforderliche Tests im Rahmen einer kontinuierlichen Integration (Continuous Integration) von Entwicklungsfortschritten Validierungsaufgaben (A) erzeugt. Diese Validierungsaufgaben (A) haben durch das Validierungssystem und / oder den Benutzer des Validierungssystems eine Anforderung und damit eine von der Ausführungseinheit (AE) erforderliche Fähigkeit (F) und eine Priorität (P) zugewiesen bekommen. Durch die angegebene Priorität (P) wird die Ausführungsreihenfolge der Validierungsaufgaben (A) bestimmt. Durch die erforderliche Fähigkeit (F) an die Ausführungseinheiten (AE) wird die Gruppe (G1_AE oder G2_AE) bestimmt, aus der eine Ausführungseinheit (AE) zur Ausführung der Validierungsaufgabe (A) gewählt wird. In der schematischen Darstellung des Verfahrens zur Priorisierung sind zwei Gruppen (G1_AE und G2_AE) benannt. Erfindungsgemäß können es auch sehr viel mehr Gruppen sein. In der Gruppe G2_AE sind in dem gezeigten Beispiel die Ausführungseinheiten (AE) zusammengefasst, die die Fähigkeit (F), die die Validierungsaufgabe (A) erfordert.
-
In 3 wird eine schematische Darstellung einer erfindungsgemäßen Ausführungsreihenfolge gezeigt. Für dieses Beispiel wurde eine Ausführungsreihenfolge mit Validierungsaufgaben A1 - An gewählt. Durch die vom Validierungssystem oder Benutzer festgelegten Prioritäten wurde die dargestellte Ausführungsreihenfolge bestimmt.
-
Dabei können Validierungsaufgaben (A), die eine gleiche Anforderung an die Fähigkeit der Ausführungseinheiten bedürfen priorisiert werden, es ist allerdings ebenso wie in der dargestellten Ausführungsform Wechsel in den geforderten Fähigkeiten möglich.
-
Durch das erfindungsgemäße Verfahren zur Priorisierung werden Prioritäten und Zuordnung von geforderten Fähigkeiten der Validierungsaufgaben (A) und mögliche Fähigkeiten der Ausführungseinheiten (AE) kombiniert. Dadurch kann eine viel effizientere Testumsetzung erfolgen, da ebenso Engpässe in den benötigten Ausführungseinheiten (AE) identifiziert werden. In dem angegeben Beispiel in 3 sind 3 Ausführungseinheiten (AE_HIL) mit der Fähigkeit eine Ausführung auf einem Hardware-in-the-loop (HIL) System auszuführen zusehen. Es ist möglich, dass zum Beispiel nur ein Teil eines Tests virtuell erfolgt, aber letztlich entsprechende Signale an ein reales Steuergerät gesendet werden. Nicht jede Ausführungseinheit (AE) des Validierungssystem ist dazu eingerichtet. So dass diese Ausführungseinheiten (AE) insbesondere für diese Art der Validierungsaufgaben vorgehalten werden müssen. Gleichermaßen können Ausführungseinheiten (AE_SIL) dazu eingerichtet sein effizient nur virtuelle Tests im Rahmen einer Software-in-the-loop (SIL) Anwendung ausführen zu können. Durch Kenntnis über Fähigkeiten der Ausführungseinheiten (AE) und Bedarfe der Validierungsaufgaben (A) kann eine Optimierung der Gesamttestausführung erfolgen. Letztlich kann ein erheblicher Zeitgewinn realisiert werden, da Validierungsaufgaben nicht ungeplant auf ihre Ausführung und zur Verfügung stehenden Ressourcen des Validierungssystems warten müssen.
-
Insbesondere bei verteilten Entwicklungsteams lässt sich durch die vorliegende Erfindung eine bessere und effizientere Kollaboration zwischen Entwicklungsteams ermöglichen. Die Teams wissen von dem Bedarf der anderen Teams ggf. nichts bzw. können eine Priorisierung in Unkenntnis nicht durchführen. Durch das erfindungsgemäße Verfahren zur Priorisierung wird ein optimaler Testablauf für alle Entwicklungsteams bestimmt basierend auf den angegebenen Prioritäten und den geforderten Fähigkeiten, den Anforderungen der notwendigen Validierungsaufgaben (A).
-
Die Abbildung in 4 zeigt eine schematische Ansicht der Zusammenhänge zwischen CI Pipeline bzw. CI/CD Pipeline und erfindungsgemäßen Ausführungsreihenfolge.
-
Dazu sind in der Abbildung zunächst die Verfahrensschritte der CI-Pipeline angegeben. Es lassen sich aus der Literatur verschiedene Ausführungsvarianten für die CI/CD Pipeline feststellen, die erfindungsgemäß abgedeckt sein sollen. So kann vereinfacht eine Phase der Programmerstellung bzw. Anpassung des bisherigen Produkts identifiziert werden (Build). Die getätigte Änderung muss dann entsprechend getestet werden (Test) und mit bestehenden Programmstrukturen vereinheitlicht werden (Merge). Die fertigen Änderungen sollen dann automatisch und schnell/kontinuierlich an zum Beispiel Kunden ausgeliefert werden (Release).
-
In 4 wurde der Prozess noch einmal weiter gefasst und besteht aus den Verfahrensschritten: Planen (P), Code also der Erstellung der Programmänderung (C), dem kompilieren des Programms (B) und schließlich dem Testen der Änderungen (T). Hierüber ist ein kontinuierlicher Zyklus nach dem Testen und einem ggf. notwendigen neuem Planen denkbar.
-
Insbesondere in der Phase des Testens ist es notwendig die Ressourcen des Validierungssystem bevorzugt nutzen zu können, um schnell und effizient Änderungen des Quellcodes oder eines Steuergeräts zum Beispiel für eine Fahrfunktion des autonomen Fahrens absichern zu können. Nach dem erfindungsgemäßen Verfahren zum Priorisieren von Validierungsaufgaben ist es zum einen möglich die Prioritäten für Validierungsaufgaben der CI/CD Pipeline hoch zu setzen entweder automatisch durch das Validierungssystem oder durch den Benutzer. Des Weiteren können Ausführungseinheiten (AE) ausschließlich für diese Art der Validierungsaufgaben bereitgestellt werden. Damit wird eine Gruppe mit Ausführungseinheiten (AE_CI) für Validierungsaufgaben der CI/CD Pipeline eingerichtet. Damit kann es für diese Aufgaben nicht zu Ressourcenmangel kommen.
-
In 5 werden beispielhafte Gruppen von Ausführungseinheiten dargestellt. In der Gruppe G1_AE wurden Ausführungseinheiten mit der Fähigkeit HIL und/oder SIL-Validierungsaufgaben (HIL und SIL) ausführen zu können zusammengefasst. Eine solche Zusammenlegung ist möglich, kann erfindungsgemäß aber auch in zwei einzelnen Gruppen erfolgen. Hier kann die erwartete Häufigkeit einer speziellen Art von Validierungsaufgaben die Einrichtung von Gruppen von Ausführungseinheiten beeinflussen. Bei einer hohen zu erwarteten Häufigkeit von HIL-Validierungsaufgaben müssen mehr Ausführungseinheiten, die diese Fähigkeit aufweisen dafür abgestellt werden, um eine optimale Testausführung zu gewährleisten.
-
In der Gruppe G2_AE wurden Ausführungseinheiten (AE_CI) speziell für Validierungsaufgaben aus der CI/CD-Pipeline bereitgestellt. Das kann insbesondere in frühen Entwicklungsphasen von großer Bedeutung sein, so dass für den effizienten Entwicklungsprozess das Bereitstellen dieser Ausführungseinheiten erforderlich ist. Es kann dynamisch vor dem Starten einer Ausführung einer Validierungsaufgabe Ausführungseinheiten beziehungsweise Gruppen von Ausführungseinheiten aktiviert oder deaktiviert werden, um eine optimale Ressourcenausnutzung zu ermöglichen und nicht unnötig Ressourcen von Ausführungseinheiten anzufordern, die nicht benötigt werden. Auch ohne, dass Ausführungseinheiten tatsächlich die Ausführung einer Validierungsaufgabe übernehmen, werden Kosten und Ressourcen verbraucht. Daher kann das erfindungsgemäße Verfahren erheblich zur Optimierung beitragen.
-
Die vorgestellten Arten von Validierungsaufgaben sind beispielhaft ausgeführt, aber nicht als abschließend zu betrachten.