Empfohlenes Webinar: Vereinfachen Sie Compliance-Workflows mit dem neuen C/C++test 2024.2 und KI-gesteuerter Automatisierung Zum Video

ISO 26262 Software-Compliance in der Automobilindustrie

Testen von Softwaresystemen

Bei Systemtests wird das System als Ganzes getestet. Sobald alle Komponenten integriert sind, wird das gesamte System gründlich getestet, um sicherzustellen, dass es die angegebenen funktionalen, sicherheitsbezogenen und sonstigen nicht funktionalen Anforderungen erfüllt.

Spezialisierte Testteams führen diese Art von Tests für sicherheitskritische Software durch. Systemtests fallen in den Bereich der Black-Box-Tests. Daher sollten hierfür keine Kenntnisse über den inneren Aufbau des Codes oder der Logik erforderlich sein.

Ein wichtiger Unterschied beim Testen auf Systemebene besteht darin, dass das System in einer Umgebung getestet wird, die der Produktionsumgebung, in der die Anwendung bereitgestellt wird, nahe kommt. In dieser Phase werden bestimmte Sicherheitsfunktionen validiert und systemweite Sicherheitstests durchgeführt.

Automotive-Systemtests auf Serviceebene

Einzelne Systeme in einem Auto werden möglicherweise nicht als Teil eines Dienstes betrachtet. Aufgrund der Vernetzung mit größeren Systemen sollten sie es jedoch sein. In einem Auto beispielsweise besteht die Aufgabe der Motorsteuerung (ECU) allein darin, eine ordnungsgemäße Verbrennung und Emissionswerte im Motor sicherzustellen, das Auto überwacht jedoch mithilfe der ECU den Kraftstoffverbrauch und meldet ihn über eine drahtlose Verbindung an einen zentralen Server.

Diese Kilometerdaten werden dann zur Routenplanung und zur Schätzung der Betriebskosten verwendet. Plötzlich ist die ECU ein kritischer Endknoten in einem geschäftlichen Entscheidungsprozess.

Bild einer Motorsteuereinheit (ECU) und Benutzerdienste, die alle mit der Cloud verbunden sind.
Motorsteuergerät (ECU) und Benutzerdienste, alle mit der Cloud verbunden.

Anstatt die Systemqualität im Hinblick auf die Erfüllung der Anforderungen einzelner Geräte zu betrachten, wird der Rahmen erweitert, um die Qualität der bereitgestellten Dienste zu berücksichtigen. Tests auf Dienstebene stellen sicher, dass nichtfunktionale Anforderungen erfüllt werden. Beispielsweise sind Leistung und Zuverlässigkeit auf Geräteebene oder während des Software-Unit-Tests schwer zu beurteilen. Dienstbasierte Tests können die Betriebsumgebung eines Geräts simulieren, um realistische Belastungen bereitzustellen. Im HVAC-Beispiel kann der neue Temperatursensor mit unterschiedlichen Anforderungsraten getestet werden, um festzustellen, ob er die Leistungsanforderungen erfüllt.

Sicherheit ist ein wichtiges Anliegen bei Automobilsystemen. Cyberangriffe gehen höchstwahrscheinlich vom Netzwerk selbst aus, indem sie die freigelegten APIs angreifen. Servicebasierte Tests können simulierte Umgebungen für robuste Sicherheitstests erstellen, entweder durch Fuzzing (zufällige und fehlerhafte Dateneingaben) oder Denial-of-Service-Angriffe. Ein neuer Temperatursensor im HVAC-Beispiel funktioniert möglicherweise bei erwarteten Anfragen ordnungsgemäß, stürzt jedoch bei Überlastung ab. Ein Angreifer könnte dies ausnutzen, um das System zu überlasten und einen Ausfall zu verursachen.

Virtuelle Testumgebung und Service Level Testing

Ein echtes Testlabor erfordert eine möglichst genaue physische Darstellung der Umgebung, in der ein Auto eingesetzt werden soll. Selbst im modernsten Labor ist es schwierig, eine realistische Umgebung zu skalieren. Ein virtuelles Labor löst dieses Problem.

Virtuelle Labore sind nicht mehr auf schwer zu findende (oder nicht vorhandene) Hardwareabhängigkeiten angewiesen. Sie nutzen eine ausgefeilte Service-Virtualisierung mit anderen wichtigen Testautomatisierungstools.

Service-Virtualisierung

Simuliert alle Abhängigkeiten, die das zu testende Gerät benötigt, um einen vollständigen Systemtest durchzuführen. Dazu gehören alle vom Gerät verwendeten Verbindungen und Protokolle mit realistischen Reaktionen auf die Kommunikation. Zum Beispiel: Service-Virtualisierung kann ein Unternehmensserver-Backend simulieren, mit dem ein Auto kommuniziert. Ebenso kann die Virtualisierung ein abhängiges System, wie etwa Verkehrs- oder Wetterdaten, auf realistische Weise simulieren.

Service- und API-Tests

Bieten Sie eine Möglichkeit, das zu testende System so zu steuern, dass die von ihm bereitgestellten Dienste (und bereitgestellten APIs) einwandfrei funktionieren. Diese Tests können über die Automatisierungsplattform manipuliert werden, um bei Bedarf Leistungs- und Sicherheitstests durchzuführen.

Testlabormanagement und -analyse

Übernehmen Sie die übergreifende Kontrolle über die virtuellen Labore. Nach der Virtualisierung kann das gesamte Labor-Setup nach Bedarf repliziert und Testläufe automatisiert und wiederholt werden. Analysen bieten die notwendige Übersicht über Aktivitäten und Ergebnisse.

Laufzeitüberwachung

Erkennt Fehler in Echtzeit auf dem getesteten System und erfasst wichtige Ablaufverfolgungsinformationen.

Parasoft SOAtest und Virtualize für Service Level Testing von Automobilsoftware

Entwickler können Integrationen früher erstellen, Abhängigkeiten stabilisieren und mit Parasoft die volle Kontrolle über ihre Testdaten erlangen Virtualisieren. Teams können schnell vorankommen, ohne auf den Zugriff auf abhängige Dienste warten zu müssen, die entweder unvollständig oder nicht verfügbar sind. Unternehmen können Partnern ermöglichen, ihre Anwendungen in einer dedizierten Sandbox-Umgebung zu testen. Diese Parasoft-Lösungen sind besonders wertvoll bei der Entwicklung und Prüfung von softwaredefinierten Fahrzeugen (SDVs).

Parasoft SOAtest bietet vollständig integrierte API- und Webservice-Testtools, die Automatisieren Sie funktionale API-Tests von Anfang bis Ende. Teams können automatisierte Tests mit erweiterten Funktionen zur Erstellung von Funktionstests für Anwendungen mit mehreren Schnittstellen und Protokollen rationalisieren.

SOAtest und Virtualize eignen sich gut für netzwerkbasierte Tests auf Systemebene verschiedener Art, einschließlich der folgenden:

Umfassender Protokollstapel, der HTTP, MQTT, RabbitMQ, JMS, XML, JSON, REST, SOAP und mehr unterstützt.

Sicherheits- und Performancetests während der Integration sowie Systemtests mit Einbindung in den bestehenden CI/CD-Prozess.

End-to-End-Tests, die API-, Web-, Mobil- und Datenbankinteraktionen in virtuellen Testumgebungen kombinieren.

Dunkelblaues Banner mit dem Bild eines Mannes, der in einem Serverraum mit einer Frau spricht, die ein Tablet in der Hand hält.
Bild eines Mannes und einer Frau mit einem Tablet in der Hand, die in einem Serverraum diskutieren.

Verbessern Sie Ihre Softwaretests mit Parasoft-Lösungen.