Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>

Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>
Zum Abschnitt springen
Die Codierungsstandards für autonome Fahrzeuge ändern sich aufgrund der Weiterentwicklung der Technologie und der Bedürfnisse der Menschen ständig. Lesen Sie weiter, um mehr über die Herausforderungen beim Testen von Software für autonomes Fahren und Best Practices zur Sicherstellung der Einhaltung von Codierungsstandards zu erfahren.
Zum Abschnitt springen
Zum Abschnitt springen
Autonomes Fahren stellt im Vergleich zu herkömmlichen Anforderungen zusätzliche Herausforderungen an die Compliance bei der Entwicklung von Fahrzeugen. Darüber hinaus ist autonomes Fahren ein äußerst wettbewerbsintensiver Bereich. Wer als Erster ein zertifiziertes Produkt auf den Markt bringen kann, hat einen deutlichen Vorteil gegenüber der Konkurrenz. Daher können Entwickler statische Analysen und andere Qualitätsinitiativen leicht als Hindernis für die Entwicklung betrachten.
Obwohl die kulturelle Akzeptanz für Entwicklungsteams eine Herausforderung darstellen kann, ist die Aufklärung über die Qualitätsprozesse, die für die sicherheitskritische Softwareentwicklung erforderlich sind, von entscheidender Bedeutung für schnellere, kostengünstigere Arbeitsabläufe mit besserer Dokumentation und höheren Compliance-Raten. Wie gehen Sie also beim Testen von Software für autonomes Fahren vor?
Lassen Sie uns die Welt erkunden Selbstfahrende Autos, statische Analyse, funktionale Sicherheit Anforderungen und mehr.
Beim autonomen Fahren fahren Fahrzeuge selbstständig, ohne dass ein menschliches Eingreifen erforderlich ist. Dieser Vorgang nutzt eine Vielzahl von Technologien, darunter Algorithmen der künstlichen Intelligenz, Sensoren, Kameras, Mikroprozessoren und mehr. Bedenken Sie, dass „selbstfahrend“ und „autonom“ nicht dasselbe sind.
Auch bei einem selbstfahrenden oder automatisierten Auto ist irgendwann menschliches Eingreifen erforderlich. Vollständig autonome Fahrzeuge können ihre Umgebung ohne menschliches Zutun erfassen und navigieren. Um den Grad der Autonomie eines Autos zu kategorisieren, gibt es sechs Stufen, die 2014 von SAE International entwickelt wurden.
Dieses Ebenensystem legt nahe, dass die Automatisierung linear zunimmt, was nicht immer der Fall ist. Es bleibt jedoch ein nützliches Hilfsmittel zur Klassifizierung von Automatisierungsarten in Fahrzeugen.
Autonome Fahrsoftware ist jede Software, die auf autonomen Fahrplattformen verwendet wird. Dazu gehört weit mehr als nur künstliche Intelligenz und maschinelles Lernen. Dazu gehören auch Dinge, die in nicht autonom fahrenden Fahrzeugen zu finden sind, wie zum Beispiel elektronische Steuergeräte oder Steuergeräte. Diese computergestützten Bordressourcen steuern alles von den Bremsen über Türen bis hin zu Fahrerassistenzsystemen. Es sind jedoch neuronale Netze, die das autonome Fahren vorantreiben.
Diese Netzwerke können Datenmuster finden, die maschinelle Lernalgorithmen analysieren und in Aktionen umsetzen können. Eine Beispielsituation könnte sein, dass das System des autonomen Autos erkennt, dass eine grüne Ampel auf Gelb wechselt und als Reaktion darauf langsamer wird.
Software für autonomes Fahren nutzt viele Arten von Sensoren, um Daten wahrzunehmen und zu analysieren. Sie können bestimmen, wo sich ein Fahrzeug im physischen Raum oder im Verhältnis zu Objekten wie Bordsteinen oder anderen Autos befindet. Andere Software zeichnet einen Weg für das Fahrzeug zu einem bestimmten Ort auf oder steuert Beschleunigung, Bremsen, Lenkung und mehr.
Es ist genau so, wie Sie ein Fahrzeug bedienen würden – nur dass es eine Reihe von Programmen, Algorithmen und KI ist, die das für Sie erledigen.
Wie jedes System, das für den menschlichen Gebrauch konzipiert ist, erfordern autonome Fahrplattformen strenge Tests und die Einhaltung spezifischer Standards. Zum Beispiel, ISO 26262 fungiert als Automotive-Standard für funktionale Sicherheit für den gesamten Automotive-Produktentwicklungsprozess. Es hilft Automobilherstellern, die Auswirkungen von System- und Hardwarefehlern zu erkennen, zu verwalten und abzuschwächen, um die Sicherheit zu gewährleisten. Allerdings reicht es nicht aus, alle technischen Herausforderungen abzudecken, die autonome Fahrzeuge mit sich bringen. Sie können die vorgesehene Leistung erbringen, sind jedoch realen Szenarien wie extremen Wetterbedingungen oder dem Verhalten von Menschen nicht gewachsen. Betrachten wir zum Beispiel das Dartverhalten von Kindern auf der Straße oder das eines betrunkenen Erwachsenen.
Anstelle vieler interessanter Szenarien und um bei der Analyse von Umwelt- und menschlichem Verhalten zu helfen, wurde die Automobilnorm ISO 21448:2021 hinzugefügt, um Hinweise zu den anwendbaren Design-, Verifizierungs- und Validierungsmaßnahmen sowie zu Aktivitäten während der Betriebsphase zu geben erforderlich, um die Sicherheit der beabsichtigten Funktionalität (SOTIF) zu erreichen und aufrechtzuerhalten.
AUTOSAR, oder Automotive Open System Architecture, ist eine Partnerschaft interessierter Gremien, die standardisierte Softwarearchitekturen für Steuergeräte in Fahrzeugen verfolgen und entwickeln. Darüber hinaus erstellt MISRA, die Motor Industry Software Reliability Association, Richtlinien, nach denen Entwickler elektronische Komponenten für die Automobilindustrie erstellen können.
Daher geht es beim Testen von Software für autonomes Fahren um mehr als nur um die Prüfung, ob die Softwarekomponenten auch im Fehlerfall Sicherheit gewährleisten. Dazu gehört das Testen der autonomen Reaktion des Fahrzeugs auf reale Bedingungen und die Gewährleistung der Sicherheit. Darüber hinaus müssen Organisationen nachweisen, dass die autonome Software alle regulatorischen Anforderungen erfüllt.
Autonome Fahrzeuge erfordern Simulationen realer Testfälle. Dazu gehören realistische Fahrumgebungen, Modelle anderer Fahrzeuge und Situationen, denen automatisierte Autos begegnen würden. Da es sich jedoch um computergestützte Systeme handelt, müssen auch Bedenken hinsichtlich Cyberangriffen berücksichtigt werden.
Die Codierungsstandards für autonome Fahrzeuge entwickeln sich ständig weiter, da sich auch die Technologie und die Bedürfnisse der Menschen weiterentwickeln. Dennoch können Entwickler beim Schreiben von Code für die Autos von morgen jederzeit auf traditionelle sicherheitskritische Compliance-Standards zurückgreifen.
Es gibt eine Reihe allgemeiner Codierungsstandards für Software für verschiedene Branchen. Ein Codierungsstandard an sich ist jedoch lediglich eine Reihe von Codierungsregeln, Best Practices und Richtlinien, nach denen Entwickler Code schreiben sollten.
Dies geht über allgemeine Ratschläge wie die Einschränkung der Verwendung globaler oder standardisierter Namenskonventionen hinaus. Es gibt Richtlinien oder Best Practices von Einzelpersonen und Unternehmen mit jahrzehntelanger Erfahrung in der Softwareentwicklung, die eine Steigerung der Codequalität garantieren.
Von der Automobilindustrie bis hin zu medizinischen Geräten, der Luftfahrt, dem Schienenverkehr und mehr haben Branchen C- und/oder C++-Sicherheitscodierungsstandards übernommen. Einige davon umfassen:
Wenn es um autonomes Fahren geht, sollten Teams die zuvor aufgeführten Codierungsstandards verwenden. Dies wären diejenigen, die dringend empfohlen werden, aber aufgrund der Natur autonomer Fahrzeuge reichen diese Sicherheitscodierungsstandards nicht aus.
Andere Standards wie CWE und OWASP verfügen über Codierungsregeln und -richtlinien, gehen jedoch über den Rahmen des Codes hinaus. Sie berücksichtigen auch den gesamten Entwicklungsablauf, Organisationsrichtlinien und Prozesse, die Menschen befolgen müssen, um die Sicherheit autonomer Fahrzeuge zu gewährleisten.
Bei der Betrachtung autonomer Fahrzeuge und der fortschrittlichen KI-Systeme, die mit autonomen Prozessen verbunden sind, kommen zusätzliche Standards und Vorschriften ins Spiel. Diese Liste erhebt keinen Anspruch auf Vollständigkeit, bietet jedoch allgemeine Hinweise:
Wichtige Aspekte autonomer Fahrzeuge, die diese und andere Standards berücksichtigen, sind:
Der inhärente sicherheitskritische Charakter der Entwicklung von Software für autonomes Fahren erfordert natürlich gründliche und kontinuierliche Tests. Aber wie alle Arten der Softwareentwicklung birgt auch die Entwicklung KI-gesteuerter Systeme ihre eigenen Fallstricke und Herausforderungen.
Compliance zu erreichen ist keine leichte Aufgabe. Selbst die erfahrensten Profis können in gewisser Weise scheitern. Aber es gibt allgemeine Best Practices außerhalb der Softwareentwicklung für autonomes Fahren, von denen alle Softwareentwickler profitieren.
Unabhängig vom Umfang, Zeitplan oder Budget des Projekts ist die Festlegung von Erwartungen und Standards zu Beginn von entscheidender Bedeutung. Dies stellt nicht nur sicher, dass Ihr Code für alle im Team leichter verständlich ist, sondern stellt auch sicher, dass es weniger Probleme bei der schnellen Behebung von Fehlern gibt. Niemand muss telefonieren oder ein Ratespiel spielen.
Genau wie kontinuierliches Testen ermöglicht Ihnen die regelmäßige Überprüfung des Codes, Standards besser durchzusetzen und Probleme frühzeitig zu beheben. Dadurch können Sie Dinge wie tiefe Verschachtelung, unleserlichen Code, korrekte Namenskonventionen und mehr erkennen.
Die studentische Denkweise – auch als Experte auf einem Gebiet – kann dazu beitragen, Ihre Fähigkeiten zu stärken und zu verbessern. Daher lohnt es sich, in die Ausbildung und Schulung Ihrer Entwickler zu investieren, die über das hinausgeht, wofür sie ursprünglich eingestellt wurden. Außerdem verändert sich die Technologie ständig. Das bedeutet, dass Ihr Team mithalten muss.
Statische Analysetests sind nicht die Lieblingsbeschäftigung jedes Entwicklers. Durch die Automatisierung ist es jedoch viel einfacher geworden, die Vorteile solcher Testarten zu nutzen. Die Nutzung aller Tools im Arsenal, einschließlich KI und maschinellem Lernen, ist in einem agilen oder Shift-Links-Setup ein Kinderspiel.
Auch hier gilt: Der einfachste Weg, Probleme zu vermeiden, besteht darin, sie von vornherein zu verhindern. Dokumentation und Berichterstattung ermöglichen es den Teams, bei Bedarf Querverweise zu erstellen, sodass sie nicht zusätzliche Zeit in Anspruch nehmen müssen, um die Person ausfindig zu machen, die den Code ursprünglich geschrieben hat. Oder schlimmer noch, sie machen einfach eine Annahme und machen mit etwas weiter, das nicht nutzbar ist.
Einführung der statischen Analyse mit den bald angekündigten Codierungsstandards MISRA C++ 2023 und AUTOSAR C++ 14, Compliance als nachhaltiger Prozess kann entmutigend wirken. Aber Tests bleiben ein wesentlicher Bestandteil bewährter Verfahren, selbst in einem so innovativen Bereich wie dem autonomen Fahren.
Testen mit Tools wie z C/C++-Test von Parasoft Integriert Vorteile in Ihren Arbeitsablauf, darunter:
Es gibt zahlreiche Unternehmen, die versuchen, als Erste ein wirklich autonomes Fahrzeug auf den Markt zu bringen. Diese Technologie erfordert umfassende Tests, um Leben zu schützen, richtig zu funktionieren und sich an den Alltag anzupassen.
Obwohl es sich nicht um ein offizielles Dokument der National Highway Traffic Safety Administration (NHTSA) handelt, hat das Institute of Electrical and Electronics Engineers (IEEE) im Jahr 2022 einen vorläufigen Satz von Richtlinien für ADS-Standards veröffentlicht IEEE P2846 Draft Standard für Annahmen für Modelle im sicherheitsbezogenen automatisierten Fahrzeugverhalten versucht, die einzigartigen Probleme mit Autonomie und Fahren anzugehen. Allerdings ist die Bereitstellung einer Standardrichtlinie für diesen Anwendungsfall nicht die einzige zukünftige Überlegung.
Wie bereits erwähnt, stützen sich Softwaretests für autonomes Fahren auch auf die reale Welt, um tatsächlich selbstfahrende Autos zu ermöglichen. Die traditionelle Technologie und die Verhaltensweisen, mit denen wir navigieren, müssen sich möglicherweise mit der weit verbreiteten Einführung des automatisierten Fahrens ändern. Es stellt sich die Frage: Was wäre, wenn Städte so gestaltet würden, dass sie von Menschen genutzt werden und keine Autos parken?
Die Einbeziehung statische Analyse oder andere Arten von kontinuierlichen Tests in Ihren Workflow liefern greifbare Ergebnisse. Aber mit Tools wie einer der vielen Lösungen von Parasoft ist es viel einfacher, die Sicherheitskonformität mit Software für automatisierte Autos zu erreichen. Denken Sie daran, Folgendes zu tun:
Mit dem Ziel, effizient, gründlich und entwicklerorientiert zu sein, werden Sie die Einhaltung der Sicherheitsvorschriften schneller erreichen, als Sie denken.