Parasoft-Logo Suche

Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »

ISO 26262 Software-Compliance in der Automobilindustrie

Softwareintegrationstests

Integrationstests folgen auf Unit-Tests und dienen der Validierung des Architekturentwurfs bzw. der übergeordneten Anforderungen. Sie können sowohl Bottom-up als auch Top-down durchgeführt werden, wobei in vielen Softwareunternehmen eine Kombination verschiedener Ansätze üblich ist.

Bottom-Up-Integration

Tester nehmen Unit-Testfälle und entfernen Stubs oder kombinieren sie mit anderen Codeeinheiten, die höhere Funktionsebenen bilden. Diese Arten integrierter Testfälle werden verwendet, um Anforderungen auf hoher Ebene zu validieren.

Top-Down-Integration

Bei diesem Test werden zuerst die Module oder Subsysteme auf höherer Ebene getestet. Anschließend folgt das Testen der Module auf niedrigerer Ebene (Subsubsysteme). Dieser Ansatz setzt voraus, dass wichtige Subsysteme vollständig genug sind, um sie als Ganzes einzuschließen und zu testen.

Das V-Modell eignet sich gut zur Veranschaulichung der Beziehung zwischen den Entwicklungsphasen und den Validierungsphasen. In jeder Testphase werden vollständigere Teile der Software anhand der Phase validiert, die sie definiert.

Das V-Modell könnte eine Wasserfall-Entwicklungsmethode implizieren. Es gibt jedoch Möglichkeiten, Agile, DevOps und CI/CD in diese Art der Produktentwicklung zu integrieren und dabei dennoch die Standards einzuhalten.

Grafik des V-Modells, die die Beziehung zwischen Architekturentwurf und Integrationstests zeigt.

Das V-Modell der Softwareentwicklung zeigt die Beziehung zwischen jeder Phase und der Validierung, die in jeder Testphase abgeleitet wird.

Während das Durchführen von Tests als Softwarevalidierung gilt, wird es durch einen parallelen Verifizierungsprozess unterstützt, der die folgenden Aktivitäten umfasst, um sicherzustellen, dass die Teams den Prozess und das Produkt richtig erstellen:

Bewertungen

Walkthroughs

Analyse

Rückverfolgbarkeit

Test

Codeabdeckung und mehr

Die Hauptaufgabe der Überprüfung besteht darin, sicherzustellen, dass die aus der vorherigen Phase gelieferten Artefakte gemäß den Unternehmens- und Branchenrichtlinien gemäß den Spezifikationen erstellt werden. 

Integrations- und Systemtests als Teil eines kontinuierlichen Testprozesses

Eine gewisse Testautomatisierung ist die Grundlage für kontinuierliches Testen. Viele Organisationen beginnen mit der Automatisierung manueller Integrations- und Systemtests (Top-down) oder Komponententests (Bottom-up).

Um kontinuierliches Testen zu ermöglichen, müssen sich Unternehmen auf die Entwicklung einer skalierbaren Testautomatisierungspraxis konzentrieren, die auf einer Grundlage von Unit-Tests aufbaut, die isoliert und schneller auszuführen sind. Sobald die Unit-Tests vollständig automatisiert sind, sind der nächste Schritt Integrationstests und schließlich Systemtests.

Kontinuierliches Testen nutzt Automatisierung und aus den Tests gewonnene Daten, um eine objektive Echtzeit-Risikobewertung eines in Entwicklung befindlichen Systems zu ermöglichen. Bei einheitlicher Anwendung erlaubt es sowohl Geschäfts- als auch Technikmanagern, fundiertere Entscheidungen hinsichtlich Releaseumfang, -zeitpunkt und -qualität zu treffen.

Kontinuierliches Testen bedeutet nicht einfach nur mehr Automatisierung. Es ist eine umfassendere Neubewertung von Softwarequalitätspraktiken, die von den Qualitätskosten eines Unternehmens bestimmt und hinsichtlich Geschwindigkeit und Agilität ausgewogen sind. Selbst innerhalb des V-Modells, das in der sicherheitskritischen Softwareentwicklung verwendet wird, ist kontinuierliches Testen immer noch ein praktikabler Ansatz, insbesondere während Testphasen, beispielsweise während Unit-Tests und Integrationstests.

Das folgende Diagramm veranschaulicht, wie verschiedene Testphasen Teil eines kontinuierlichen Prozesses sind, der auf einer Feedbackschleife aus Testergebnissen und Analysen basiert.

Beispiel einer kontinuierlichen Testpipeline

Ein kontinuierlicher Testzyklus

Parasoft-Analyse und -Berichte zur Unterstützung von Integrations- und Systemtests

Die Testautomatisierungstools von Parasoft unterstützen die Validierung (tatsächliche Testaktivitäten) durch Testautomatisierung und kontinuierliches Testen. Sie unterstützen auch die Verifizierung dieser Aktivitäten und somit die Einhaltung von Prozess- und Normenvorgaben. Ein Schlüsselaspekt der Entwicklung sicherheitskritischer Automobilsoftware ist die Rückverfolgbarkeit von Anforderungen und die Codeabdeckung.

Zweiwege-Rückverfolgbarkeit

Anforderungen an sicherheitskritische Software sind der wichtigste Treiber für Produktdesign und -entwicklung. Diese Anforderungen umfassen funktionale Sicherheit, Anwendungsanforderungen und nicht funktionale Anforderungen, die das Produkt vollständig definieren. Dieses Vertrauen auf dokumentierte Anforderungen ist ein zweischneidiges Schwert, denn schlechte Anforderungen sind eine der Hauptursachen für Sicherheitsvorfälle in Software. Mit anderen Worten: Nicht die Implementierung war schuld, sondern schlechte oder fehlende Anforderungen.

Automatisierung der bidirektionalen Rückverfolgbarkeit

Die Pflege von Rückverfolgbarkeitsaufzeichnungen in jedem Umfang erfordert Automatisierung. Tools zur Verwaltung des Anwendungslebenszyklus umfassen ausgereifte Funktionen zur Anforderungsverwaltung, die in der Regel die zentrale Stelle für die Rückverfolgbarkeit darstellen. Integrierte Softwaretesttools wie Parasoft vervollständigen die Überprüfung und Validierung von Anforderungen, indem sie eine automatisierte bidirektionale Rückverfolgbarkeit zum ausführbaren Testfall bereitstellen. Dies umfasst das Ergebnis „Bestanden oder Nichtbestehen“ und führt bis zum Quellcode zurück, der die Anforderung implementiert.

Parasoft integriert sich in marktführende Anforderungsmanagement-Tools oder ALM-Systeme wie IBM DOORS Next, PTC Codebeamer, Polarion von Siemens, Atlassian Jira, Jama Connect, Jira und weitere. Wie die Abbildung unten zeigt, unterstützt jede der Testautomatisierungslösungen von Parasoft – C/C++test, C/C++test CT , Jtest , dotTEST , SOAtest und Selenic – die im Entwicklungszyklus eingesetzt werden, die Zuordnung von Tests zu Arbeitselementen, die in diesen Systemen definiert sind, wie z. B. Anforderungen, Fehler und Testfälle/Testläufe. Die Rückverfolgbarkeit wird über das zentrale Berichts- und Analyse-Dashboard von Parasoft DTP verwaltet.

Grafik einer Feedbackschleife für Testergebnisse und Analysen für verschiedene Testphasen in einem kontinuierlichen Prozess.

Rückverfolgbarkeit und Berichterstattung von Anforderungen

Parasoft DTP korreliert die eindeutigen Kennungen des Verwaltungssystems mit:

  • Ergebnisse der statischen Analyse
  • Codeabdeckung
  • Ergebnisse aus Unit-, Integrations- und Funktionstests

Screenshot des Dashboards des Parasoft DTP Reporting Center, das Metriken zur bidirektionalen Anforderungsrückverfolgbarkeit zeigt.

Parasoft bietet ein Berichts-Dashboard, das den Teststatus des Projekts, die Korrelation mit den Anforderungen und den Fortschritt bis zur Fertigstellung erfasst.

Die Ergebnisse werden in den Rückverfolgbarkeitsberichten von Parasoft DTP angezeigt und an das Anforderungsmanagementsystem zurückgesendet. Sie bieten vollständige bidirektionale Rückverfolgbarkeit und Berichterstattung als Teil der Rückverfolgbarkeitsmatrix des Systems.

Schnappschuss einer Codebeamer-Rückverfolgbarkeitsmatrix

Codebeamer-Rückverfolgbarkeitsmatrix. Systemanforderungen über Anforderungen auf hoher Ebene bis hin zu Anforderungen auf niedriger Ebene, Testfällen und Testergebnissen.

Die Rückverfolgbarkeitsberichte in Parasoft DTP sind hochgradig anpassbar. Das folgende Bild zeigt eine Vorlage für eine Anforderungsrückverfolgbarkeitsmatrix für in Polarion erstellte Anforderungen, die auf die Testfälle, die Ergebnisse der statischen Analyse, die Quellcodedateien und die manuellen Codeüberprüfungen zurückgeführt werden können.

Screenshot der in Siemens Polarion integrierten Rückverfolgbarkeitsmatrix für Parasoft DTP-Anforderungen.

Vorlage für die Anforderungsrückverfolgbarkeitsmatrix von Parasoft DTP, integriert mit Siemens Polarion.

Die bidirektionale Korrelation zwischen Testergebnissen und Arbeitselementen bildet die Grundlage für die Rückverfolgbarkeit der Anforderungen. Parasoft DTP fügt Test- und Codeabdeckungsanalysen hinzu, um die Vollständigkeit der Tests zu bewerten. Die Aufrechterhaltung dieser bidirektionalen Korrelation zwischen Anforderungen, Tests und den Artefakten, die sie implementieren, ist ein wesentlicher Bestandteil der Rückverfolgbarkeit.

Code-Abdeckung

Die Codeabdeckung drückt den Grad aus, in dem der Quellcode der Anwendung allen Testverfahren unterzogen wird, einschließlich Unit-, Integrations- und Systemtests – sowohl automatisiert als auch manuell.

Das Sammeln von Abdeckungsdaten während des gesamten Lebenszyklus ermöglicht genauere Qualitäts- und Abdeckungsmetriken und deckt gleichzeitig ungetestete oder unzureichend getestete Teile der Anwendung auf. Je nach Sicherheitsintegritätsstufe (ASIL in ISO 26262) variieren Tiefe und Vollständigkeit der Codeabdeckung.

Die Anwendungsabdeckung kann Unternehmen auch dabei helfen, ihre Testbemühungen zu konzentrieren, wenn sie aufgrund von Zeitbeschränkungen nicht alle manuellen Regressionstests durchführen können. Das Erfassen von Abdeckungsdaten zum laufenden System auf seiner Zielhardware während der Integrations- und Systemtests vervollständigt die Codeabdeckung aus den Unittests.

Vorteile der aggregierten Codeabdeckung

Erfasste Abdeckungsdaten werden im Rahmen des kontinuierlichen Integrationsprozesses (CI) sowie als Teil des Arbeitsablaufs des Testers genutzt. Parasoft DTP führt erweiterte Analysen der Codeabdeckung aller Tests, Quellcodeänderungen, statischen Analyseergebnisse und Testergebnisse durch. Die Ergebnisse helfen dabei, ungetesteten und unzureichend getesteten Code und andere Hochrisikobereiche in der Software zu identifizieren.

Das Analysieren von Code, Ausführen von Tests, Verfolgen der Abdeckung und Berichten der Daten in einem Dashboard oder Diagramm ist ein nützlicher erster Schritt zur Risikobewertung. Die Teams müssen jedoch dennoch viel Zeit und Ressourcen darauf verwenden, die Zeichen der Zeit zu interpretieren und zu hoffen, dass sie die Daten richtig interpretiert haben.

Um die potenziellen Risiken der Anwendung zu verstehen, sind erweiterte Analyseprozesse erforderlich, die die Daten zusammenführen und korrelieren. Dies bietet mehr Einblick in die tatsächliche Codeabdeckung und hilft bei der Identifizierung von Testlücken und sich überschneidenden Tests. Wie hoch ist beispielsweise die tatsächliche Abdeckung für die getestete Anwendung, wenn Ihre Tools unterschiedliche Abdeckungswerte für Unit-Tests, automatisierte Funktionstests und manuelle Tests melden?

Die Prozentsätze können nicht einfach addiert werden, da sich die Tests überschneiden. Dies ist ein entscheidender Schritt, um das mit der zu entwickelnden Anwendung verbundene Risikoniveau zu verstehen.

Screenshot des Berichts- und Analyse-Dashboards von Parasoft DTP, das die Änderungsverwaltung zeigt.

Parasoft DTP-Berichts- und Analyse-Dashboard

Beschleunigen Sie Integrations- und Systemtests mit Parasoft Test Automation Tools

Die Software-Testautomatisierungstools von Parasoft beschleunigen die Verifizierung, indem sie die vielen mühsamen Aspekte der Aufzeichnung, Dokumentation, Berichterstattung, Analyse und Berichterstattung automatisieren.

Symbol in einem blauen Kreis, das eine weiße horizontale Linie mit Pfeilen an beiden Enden zeigt.

Die bidirektionale Rückverfolgbarkeit aller Artefakte gewährleistet, dass Anforderungen durch Code und Tests nachgewiesen werden können. Metriken, Testergebnisse und Ergebnisse statischer Analysen werden den Komponenten zugeordnet und umgekehrt.

Symbol in einem blauen Kreis mit weißen öffnenden und schließenden Klammern und einem Schrägstrich dazwischen zur Darstellung des Codes.

Die Code- und Testabdeckung überprüft, ob alle Anforderungen umgesetzt wurden und stellt sicher, dass die Umsetzung wie erforderlich getestet wird.

Symbol in einem blauen Kreis, das den weißen Umriss eines Ziels zeigt.

Die Ausführung von ziel- und hostbasierten Tests unterstützt je nach Bedarf unterschiedliche Validierungstechniken.

Symbol in einem blauen Kreis, das den Umriss eines kleinen weißen Kreises in der Mitte von drei anderen Kreisen zeigt, die jeweils durch eine Linie miteinander verbunden sind, die verbundene Smart-Geräte darstellt.

Intelligente Testausführung verwaltet Änderungen, indem der Fokus auf Tests für nur den geänderten Code und alle betroffenen Abhängigkeiten gelegt wird.

Symbol in einem blauen Kreis mit vier vertikalen weißen Linien unterschiedlicher Höhe, die ein Diagramm darstellen.

Berichterstattung und Analysen liefern wichtige Erkenntnisse für fundierte Entscheidungen und ermöglichen die Überwachung des Fortschritts. Die Entscheidungsfindung muss auf Daten basieren, die aus den automatisierten Prozessen gewonnen werden.

Symbol in einem blauen Kreis, das den weißen Umriss einer Richtlinien-Checkliste zeigt.

Die automatisierte Dokumentationserstellung aus Analyse- und Testergebnissen unterstützt die Einhaltung von Prozessen und Standards.

Symbol in einem blauen Kreis, das drei weiße Pfeile zeigt, die einen durchgehenden Kreis bilden.

Die Automatisierung der Einhaltung von Standards reduziert Aufwand und Komplexität, indem sie die sich wiederholenden und mühsamsten Prozesse automatisiert. Die Tools können die Projekthistorie verfolgen und Ergebnisse mit Anforderungen, Softwarekomponenten, Tests und erfassten Abweichungen vergleichen.

Mann und Frau diskutieren im Technikgebäude

Verbessern Sie Ihre Softwaretests mit Parasoft-Lösungen.

Kontakt