Verwenden Sie Agentic AI, um intelligentere API-Tests zu generieren. In wenigen Minuten. Erfahren Sie mehr >>
Softwareintegrationstests
Integrationstests folgt dem Unit-Test mit dem Ziel, den Architekturentwurf oder die Anforderungen auf hoher Ebene zu validieren. Integrationstests können Bottom-up und Top-down mit einer Kombination von Ansätzen durchgeführt werden, wie es in vielen Softwareorganisationen ü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.

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:
Rezensionen
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
Ein gewisses Maß an Testautomatisierung ist grundlegend für kontinuierliches Testen. Viele Organisationen beginnen mit der Automatisierung manueller Integrations- und Systemtests (Top-down) oder Unittests (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.
Kontinuierliche Prüfung nutzt Automatisierung und aus Tests gewonnene Daten, um eine objektive Bewertung der Risiken eines in der Entwicklung befindlichen Systems in Echtzeit zu ermöglichen. Einheitlich angewendet, ermöglicht es sowohl Geschäfts- als auch technischen Managern, bessere Kompromissentscheidungen zwischen Release-Umfang, -Zeit 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.

Parasoft-Analyse und -Berichte zur Unterstützung von Integrations- und Systemtests
Parasoft-Testautomatisierungstools unterstützen die Validierung (tatsächliche Testaktivitäten) im Hinblick auf Testautomatisierung und kontinuierliches Testen. Diese Tools unterstützen auch die Verifizierung dieser Aktivitäten, was bedeutet, dass sie die Prozess- und Standardanforderungen unterstützen. Ein wesentlicher Aspekt der sicherheitskritischen Automobilsoftwareentwicklung ist Rückverfolgbarkeit der Anforderungen und 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 lässt sich in marktführende Anforderungsmanagement-Tools oder ALM-Systeme wie IBM DOORS Next, PTC Codebeamer, Polarion von Siemens, Atlassian Jira, Jama Connect, Jira und andere integrieren. Wie in der Abbildung unten gezeigt, jede der Testautomatisierungslösungen von Parasoft, C/C++test, C/C++test CT, Test, dotTEST, SOAtestsowie Selenisch, das im Entwicklungslebenszyklus verwendet wird, unterstützt die Zuordnung von Tests zu in diesen Systemen definierten Arbeitselementen wie Anforderungen, Defekten und Testfällen/Testläufen. Die Rückverfolgbarkeit wird über Parasoft verwaltet. Das zentrale Berichts- und Analyse-Dashboard von DTP.

Parasoft DTP korreliert die eindeutigen Kennungen des Verwaltungssystems mit:
- Ergebnisse der statischen Analyse
- Codeabdeckung
- Ergebnisse aus Unit-, Integrations- und Funktionstests

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.

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.

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.

Automatisierung der Einhaltung von Standards reduziert den Mehraufwand und die Komplexität durch Automatisierung der repetitivsten und langwierigsten Prozesse. Die Tools können den Projektverlauf und die zugehörigen Ergebnisse anhand von Anforderungen, Softwarekomponenten, Tests und aufgezeichneten Abweichungen verfolgen.


Verbessern Sie Ihre Softwaretests mit Parasoft-Lösungen.
Entdecken Sie die Kapitel
- Einführung "
- 1. Übersicht »
- 2. Statische Analyse »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERT »
- 6. CWE »
- 7. Unit-Tests »
- 8. Regressionstests »
- 9. Software-Integrationstests »
- 10. Testen von Softwaresystemen »
- 11. Strukturelle Codeabdeckung »
- 12. Anforderungsrückverfolgbarkeitsmatrix »
- 13. Werkzeugqualifizierung »
- 14. Berichterstattung und Analyse »