Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »
Entdecken Sie die Kapitel
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.
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.
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 zentrales Anliegen in Automobilsystemen . Cyberangriffe gehen höchstwahrscheinlich vom Netzwerk selbst aus, indem sie die offengelegten APIs attackieren. Servicebasiertes Testen ermöglicht die Erstellung simulierter Umgebungen für robuste Sicherheitstests, entweder durch Fuzzing (zufällige und fehlerhafte Dateneingaben) oder Denial-of-Service-Angriffe. Ein neuer Temperatursensor im Beispiel der Klimaanlage könnte bei erwarteten Anfragen korrekt funktionieren, aber bei Überlastung ausfallen. Ein Angreifer könnte dies ausnutzen, um das System zu überlasten und einen Ausfall zu verursachen.
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.
Simuliert alle Abhängigkeiten, die das zu testende Gerät für einen vollständigen Systemtest benötigt. Dies umfasst alle vom Gerät verwendeten Verbindungen und Protokolle mit realistischen Kommunikationsreaktionen. Beispielsweise kann die Dienstvirtualisierung ein Server-Backend simulieren, mit dem ein Auto kommuniziert. Ebenso kann die Virtualisierung abhängige Systeme wie Verkehrs- oder Wetterdaten realistisch simulieren.
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.
Ü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.
Erkennt Fehler in Echtzeit auf dem getesteten System und erfasst wichtige Ablaufverfolgungsinformationen.
Mit Parasoft Virtualize können Entwickler Integrationen früher erstellen, Abhängigkeiten stabilisieren und die volle Kontrolle über ihre Testdaten erlangen . 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 für die Entwicklung und das Testen von softwaredefinierten Fahrzeugen (SDVs).
Parasoft SOAtest bietet vollständig integrierte Tools für API- und Webservice-Tests, die durchgängige funktionale API-Tests automatisieren . Teams können automatisierte Tests mit fortschrittlichen Funktionen zur Erstellung funktionaler Tests für Anwendungen mit mehreren Schnittstellen und Protokollen optimieren.
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.
Entdecken Sie die Kapitel