Logo für GIGAOM 365x70

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

DO-178C-Softwarekonformität für die Luft- und Raumfahrt sowie Verteidigung

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.

DO-178C spezifiziert sowohl Software- als auch Hardware/Software-Integrationstests. In Bezug auf den Softwareentwicklungsaspekt von Bordsystemen entspricht dies dem Konzept „Systemtests“ für die Zwecke hier. Es gibt viele weitere Aspekte von System- und Flugtests von Bordsystemen, die hier nicht behandelt werden.

Abschnitt 6.4.3, ein anforderungsbasierter Hardware-/Software-Integrationstest, konzentriert sich auf den Betrieb der Software in der Zielhardwareumgebung. Ziel ist die Validierung hochrangiger Anforderungen. Es ist auch wichtig, darauf hinzuweisen, dass nichtfunktionale Anforderungen getestet werden müssen. Abschnitt 6.4.2.1 erfordert Tests im Normalbereich, um den normalen Betrieb der Software nachzuweisen, während Abschnitt 6.4.2.2 Robustheitstestfälle erfordert. Dies sind Tests, die abnormale Datenbereiche verwenden, die außerhalb der erwarteten Werte für Eingaben liegen, um nachzuweisen, dass das System sie ohne Fehler verarbeiten kann.

Foto, das einen weiten Blick auf eine Fluggastbrücke am Flughafen zeigt, die mit geparkten Verkehrsflugzeugen, Gepäckschleppern und Rampen gefüllt ist.

Diese Art von Tests sicherheitskritischer Software wird von einem spezialisierten Testteam durchgeführt. 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 überprüft und systemweite Sicherheitstests durchgeführt.


Service Level Testing von Bordsystemen

Bordsysteme können mit größeren Systemen verbunden sein, die beispielsweise Status- und Flugdaten sammeln und analysieren. Jede Art von Kommunikationsbus oder -netzwerk muss auf Datenintegrität, Sicherheit und Vertraulichkeit getestet werden. Systemtests müssen diese Umgebungen für eine vollständige Validierung einschließen.

Anstatt die Systemqualität im Hinblick auf die Erfüllung der Anforderungen einzelner Komponenten 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 Software-Unit-Tests schwer zu beurteilen. Servicebasierte Tests können die Betriebsumgebung eines Geräts simulieren, um realistische Belastungen bereitzustellen.

Sicherheit ist bei luftgestützten Systemen ein wachsendes Problem. Cyberangriffe sind in modernen Systemen möglich und gehen wahrscheinlich 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.

Virtuelle Testumgebung und Service Level Testing

Ein echtes Testlabor erfordert eine möglichst genaue physische Darstellung der Umgebung, in der ein System funktionieren soll. Selbst im modernsten Labor ist es schwierig, eine realistische Umgebung zu skalieren. Ein virtuelles Labor behebt dieses Problem.

Virtuelle Labore sind nicht mehr auf schwer zu findende (oder nicht vorhandene) Hardware angewiesen. Sie nutzen hochentwickelte Service-Virtualisierung mit anderen wichtigen Testautomatisierungstools.

Service-Virtualisierung

Die Service-Virtualisierung simuliert alle Abhängigkeiten, die das zu testende Gerät benötigt, um vollständige Systemtests durchführen zu können. Dazu gehören alle vom Gerät verwendeten Verbindungen und Protokolle mit realistischen Reaktionen auf die Kommunikation. Beispielsweise kann die Service-Virtualisierung ein Enterprise-Server-Backend simulieren, mit dem ein zu testendes System kommuniziert. Ebenso kann die Virtualisierung ein abhängiges System, wie etwa Patienteninformationen, auf realistische Weise steuern und simulieren.

Service- und API-Tests

Bei diesem Test wird das zu testende System so gesteuert, dass die von ihm bereitgestellten Dienste und APIs einwandfrei funktionieren. Diese Tests können über die Automatisierungsplattform manipuliert werden, um bei Bedarf Leistungs- und Sicherheitstests durchzuführen.

Laufzeitüberwachung

Dadurch werden Fehler im getesteten System in Echtzeit erkannt und wichtige Ablaufverfolgungsinformationen erfasst.

Testlabormanagement und -analyse

Nach der Virtualisierung kann ein gesamtes Labor-Setup nach Bedarf repliziert werden, was eine umfassende Kontrolle der virtuellen Labore ermöglicht. Testläufe können automatisiert und wiederholt werden. Analysen liefern die notwendige Zusammenfassung der Aktivitäten und Ergebnisse.

Parasoft SOAtest & Virtualize für Service Level Testing von Bordsoftware

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.

Parasoft SOAtest bietet vollständig integrierte API- und Webservice-Testtools, die automatisieren End-to-End-Funktions-API-Tests. 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 verschiedener Art auf Systemebene, 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.