Kaffeepause von 16:15 bis 16:35
14:45 Uhr
KI-basierte Optimierung der Testauswahl im CI-Prozess
Wie KI uns bei der Auswahl von Tests unterstützen kann
Details anzeigen
Autor:innen:
Jens Bielefeldt | Compleo Charging Solutions GmbH & Co. KG
Dario Fenske | Compleo Charging Solutions GmbH & Co. KG
Kai-Uwe Basener | KOSTAL Industrie Elektrik GmbH & Co. KG
Sprache:
Deutsch
Zielgruppe:
DevOps-Ingenieure, KI-Entwickler, Tester, Qualitätsexperte
Voraussetzungen:
Kenntnisse über den Softwareentwicklungsprozess, Kenntnisse über den CI-Prozess, elementare Kenntnisse über KI
Überblick und Zusammenfassungen:
In diesem Vortrag wird gezeigt, wie wir die Testauswahl innerhalb des CI-Prozesses unter Zuhilfenahme eines KI-Agenten optimieren.
Mit einem Continuous Integration Prozess werden Komponenten fortlaufend zu einer Anwendung zusammengefügt und Regressionstests durchgeführt. CI-Prozesse zielen, trotz kurzer Entwicklungszyklen, auf die Absicherung einer hohen Produktqualität ab. Dabei werden im Laufe des Zyklus immer höhere Anforderungen an den Prozess und die durchzuführenden Tests gestellt. Dies wirkt sich auf die Anzahl sowie die Durchführungsdauer der Tests und der somit benötigten Ressourcen aus. Aufgrund der zeitlich und hardwarebedingt limitierten Ressourcen sowie neuer Funktionen, die abgesichert werden müssen, ist eine Optimierung notwendig. Dabei muss für alle Testebenen, die im CI-Prozess ausgeführt werden, eine automatisierte Testauswahl getroffen werden, da dies nicht manuell von einem Testmanager mehr umgesetzt werden kann. Die vorhandenen Testressourcen müssen, um ein schnelles Feedback zu liefern und Wartezeiten in der Entwicklung zu minimieren, mit einbezogen werden.
In diesem Vortrag werden die bisherigen Erfahrungen und der aktuelle Stand unseres Konzeptes zur Automatisierung der Testauswahl innerhalb eines bestehenden CI-Prozesses vorgestellt. Dabei verfolgen wir zwei Ansätze, zum einen eine regelbasierte Auswahl, zum anderen eine KI unterstützte, bei dem wir modell-basiertes Reinforcement Learning einsetzen. Die Regeln zur Testauswahl sind häufig unternehmens-, projekt- und teamabhängig. In beiden Ansätzen werden kontinuierlich verschiedene Informationen des Entwicklungsprozesses benötigt und zur Auswahl herangezogen.
Ein solches Vorgehen für eine Testauswahl durch einen KI-Agenten wurde bisher nur sehr eingeschränkt umgesetzt, und so sind viele damit verbundenen Fragen noch offen:
· Wie muss die Infrastruktur hinter dem KI-Agenten aussehen?
· Wie soll die Umgebung für das RI Learning modelliert werden?
· Wie muss der CI-Prozess angepasst werden?
Hierzu wurde im Rahmen des Forschungsprojektes ein KI-Agent mit Hilfe signifikanter Daten aus einem laufenden Softwareentwicklungsprozesses wie Commits, Bug fixes und Testhistorie trainiert, sodass eine geeignete Priorisierung der ausführbaren Tests durch einen Agenten getroffen wird. Diese Priorisierung führt zu einer effizienteren Ressourcennutzung und ermöglicht eine frühzeitige Fehlererkennung, was letztendlich zu einer Qualitätsverbesserung und Kostenreduktion führen kann.
Art der Vermittlung:
Projektbeispiel
Nutzen:
Kennenlernen neuer Konzepte zur Optimierung des CI-Prozesses mittels KI-Agenten
15:35 Uhr
Höchste Verfügbarkeit durch safe und secure Tracing im Feld
Softwarefehler im Feld effizient analysieren
Details anzeigen
Autor:innen:
Dr. Albrecht Mayer | Infineon Technologies AG | Germany
Gasper Skvarc Bozic | Infineon Technologies AG | Germany
Ibai Irigoyen Ceberio | Infineon Technologies AG | Germany
Sprache:
Deutsch, Folien auf Englisch
Zielgruppe:
Systemarchitekten, Entwickler, technische Manager
Voraussetzungen:
Technisches Verständnis von sicheren Echtzeitsystemen
Überblick und Zusammenfassungen:
Viele Systeme, zum Beispiel für autonomes Fahren, müssen höchste Safety- aber auch Verfügbarkeitsanforderungen erfüllen. Dabei war in der Vergangenheit der Focus oft auf der Hardware mit statistisch gut modellierbaren Ausfallmechanismen. Nach der Aussage von großen Automobilherstellern ist aber der Einfluss der Software auf die Verfügbarkeit zehnmal größer, nur ist diese Ursache deutlich schwieriger zu bekämpfen.
Das liegt daran, dass Software Fehler immer systematische Fehler sind und im betrachteten Fall solche, die eine sehr unwahrscheinliche Kombination von Stimuli zum Auftreten benötigen. Diese ist so unwahrscheinlich, dass sie nicht während der Testphase auftritt. Oft ist es eine bestimmte Kombination von Hardware und Software Verhalten insbesondere deren Zeitverhalten. Deshalb lässt sich das auch nicht durch eine „fehlerfreie“ Softwareentwicklung vermeiden, da diese immer auf Annahmen über das Hardware- und Systemverhalten beruht.
Es lässt sich also nicht vollständig vermeiden, dass Fehler erst im Feld auftreten. Als PC Nutzer ist das keine große Überraschung, für sicherheitskritische Systeme müssen diese aber sehr viel schneller behoben werden, bevor ein Schaden entsteht. Ein Vorraussetzung, die inzwischen auch bei Autos gegeben ist, ist die Updatefähigkeit im Feld.
Eine andere Vorraussetzung ist die Diagnosefähigkeit im Feld. Es gibt natürlich Diagnosefunktionen auf Softwareebene, diese können aber immer nur für bekannte Effekte entworfen werden und nicht für völlig unbekannte.
Einen Ausweg bietet hier eine safe und secure on-chip Hardware Trace Funktion, die flexibel Aktivitäten vor dem Symptom (z.B. ein Reset) aufzeichnen kann. Diese ist in der TC4x AURIX™ Generation verfügbar. Es gibt verschiedene Ansätze diese im Feld zu nutzen. Es muss dabei in allen Fällen eine Konfiguration in die Traceeinheit eingebracht werden, die die relevanten Beobachtungspunkte circulär aufzeichnet und diese Aufzeichnung durch einen Trigger auf das Symptom anhält. Danach wird der Inhalt des Tracespeichers ausgelesen und lokal gespeichert oder übertragen. Diese wesentlichen Schritte lassen sich detailliert mit kostenlos verfügbaren AURIX™ Tools demonstrieren. Abhängig vom eigenen Nutzungsszenario kann eine Kombination von kommerzielle Tools und eigener Software diese freien Tools ersetzen.
Art der Vermittlung:
Motivation und Übersicht mit Folien (Englisch). Praktische Demonstration mit frei verfügbaren Tools und einem TC4x AURIX™ Board.
Nutzen:
Einführung in ein großen Problems für die Verfügbarkeit von sicherheitskritischen Systemen
Einführung eines neuen Ansatzes, um das für Echtzeitsysteme im Feld zu addressieren
Anleitung um diesen mit verfügbaren, freien Tools und Software prototypisch schnell zu realisieren
16:35 Uhr
Testfälle aus dem Systems Engineering wiederverwenden
Transfer vom Systementwurf in das Implementierungsmodell
Details anzeigen
Autor:in:
Hartmut Wittke | BTC-ES | Germany
Sprache:
deutsch
Zielgruppe:
System Engineers, Entwickler und Tester in der modellbasierten Software Entwicklung
Voraussetzungen:
Grundlegende Kenntnisse der SysML und UML und der modellbasierten Entwicklung .
Überblick und Zusammenfassungen:
In der modellbasierten Entwicklung mit IBM Rhapsody wird in der System Spezifikation üblicherweise SysML verwendet.
Das System Modell dient als ausführbare Spezifikation für nachfolgende Verfeinerungs- und Detaillierungsschritte bis hin zur konkreten Impelementierung der (Subsytem-) Funktionalitäten.
Während in den frühen Entwicklungsphasen die SysML mit ihren spezifischen Konzepten u.A. für Interfaces und Ports mächtige Werkzeuge für den System Engineer zur Verfügung stellt, wird in der Implentierung der (Subsystem-) Funktionalität in der Regel die UML verwendet, deren Konzepte weit besser auf die Bedürfnisse der Software Entwickler abgestimmt sind. So unterstützt IBM Rhapsody C und C++ als zugrundeliegende Implementierungssprachen durch eine leistungsfähige und effiziente Code Generierung.
In der Implementierungsmodellierung mit UML werden Schnittstellen detailiert, Funktionalität ggf. dekomponiert und neu allokiert und Verhaltensmodellierung und Funktionen-Implementierung werden verfeinert.
TestConductor als modellbasiertes Test Werkzeug unterstützt das Testen von Modellverhalten sowohl für SysML als auch für UML Modelle. Gerade für die Verwendung des System Modells als ausführbare Spezifikation ist die frühzeitige Durchführung von Tests hilfreich, weil schon für den noch recht abstrakten System-Enturf die Korrektheit der Realisierung geprüft werden kann.
Testfälle werden in der Regel durch SequenzDiagramme spezifiziert, die optimal dafür geeignet sind funktionale Abläufe als Abfolgen von Nachrichten zwischen beteiligten Komponenten des Modells darzustellen. TestConductor übernimmt die Erzeugung geeigneter Treiber- und Beobachtungsfunktionen für benutzerdefinierte Spezifikationen und steuert die automatisierte Ausführung solcher SequenzDiagramm-Testfälle.
Die in der Systemmodellierung investierten Aufwände für die Erstellung von Testfällen möchte man natürlich so weit möglich auch für den Test der Implementierung später im Entwicklungsprozess nutzen können. Auch wenn System Modell und Implementierungsmodell getrennte Modelle sind, so sollten doch die im System-Modell definierten Testfälle logisch auf die Implementierung anwendbar sein.
Wir habe ein Werkzeug entwickelt, dass die modellbasierte Regelerstellung für eine Abbildung von Testfällen aus einem Modell in ein anderes Modell ermöglicht. Dabei können sowohl einzelne Nachrichten auf Nachrichten im Zielmodell, aber auch Subsequenzen auf Ziel-Susbsequenzen abgebildet werden.
Art der Vermittlung:
Der Vortrag stellt die Anwendung von SequenzDiagramm-basiertem Testen auf einem System Modell und einem Implementierungsmodell vor und zeigt am Beispiel, wie die Transformation von Testfällen vorgenommen werden kann.
Nutzen:
Der Vortrag zeigt eine technische Lösung für die durchgängige Verwendung von Test-Spezifikationen im modellbasierten Entwicklungsprozess.
17:20 Uhr
Qualifying a Compiler's C Library for FuSa and Cybersecurity
The benefits of using a certified C library
Details anzeigen
Autor:in:
Gerard Vink | TASKING | Netherlands
Sprache:
English
Zielgruppe:
Software engineers and engineering management that deal with FuSa and Cybersecurity topics
Voraussetzungen:
Software development and basic FuSa and CySec know how
Überblick und Zusammenfassungen:
The use of C libraries that are qualified for functional safety related projects offers significant benefits in developing safety critical systems. These libraries are rigorously tested and certified against FuSa standards like ISO 26262 or IEC 61508. By leveraging such libraries developers reduce the risk of software defects that lead to system failures, enhancing overall system reliability and safety. In this presentation we outline the FuSa and cybersecurity requirements that these libraries must satisfy and explain how this is achieved, including a discussion on whether all functions specified in the ISO C standard are suitable for use in safety critical software. We conclude with a discussion of the tradeoffs between conducting such qualification efforts yourself or using pre-certified libraries.
Art der Vermittlung:
Explanations, practical examples, and discussion
Nutzen:
Gained knowledge:
- Creating awareness that FuSa and Cybersecurity standards have different requirements for the qualification of tools such as the compiler and the qualification of the compiler's standard libraries.
- Understand the requirements that must be met, and how to achieve them, to qualify a C library according to the FuSa (ISO 26262, IEC 61508) and cybersecurity (ISO/SAE 21434) standards.
- Be able to assess whether a do it yourself or buy decision is the best solution for one's use case.