Know-how – Wir teilen unser Wissen mit Ihnen

Top Artikel

Unsere Kunden

Softwareintegration und Softwareintegrationstest

Das Wichtigste auf einen Blick:

Übersicht

Letztes Jahr gab der Volkswagen-Konzern bekannt, dass Softwareintegration seine neue Kernkompetenz werden soll. Aber was umfasst eine Softwareintegration? Das erfahren Sie in diesem Beitrag.

Was versteht man unter Softwareintegration?

Softwareintegration ist die Praxis, verschiedene Arten von Softwareteilen oder Subsystemen zu verbinden und zu vereinheitlichen. Es ist ein Prozess, bei dem Softwaremodule in eine vollständig integrierte Software eingebaut werden. Diese muss zwangsläufig konsistent mit der Softwarearchitektur sein. Das zu überprüfen, ist Aufgabe eines Softwareintegrationstests.

Wozu dient ein Softwareintegrationstest?

In der Softwareentwicklung bezeichnet der Begriff Integrationstest eine aufeinander abgestimmte Reihe von Einzeltests, die das Zusammenspiel verschiedener voneinander abhängiger Komponenten in einem komplexen System testen. Komponenten, die zunächst in einem gemeinsamen Kontext getestet werden, haben im Idealfall die entsprechenden Modultests erfolgreich bestanden und können selbstständig fehlerfrei laufen.

Ein Softwareintegrationstest kontrolliert den Prozess der Softwareintegration. So kann ebenfalls festgestellt werden, ob auch Schnittstellen zwischen den Softwaremodulen und den Softwarebestandteilen vorhanden sind.

Der Zusammenbau der Software sollte dabei schrittweise und mit begleiteten Tests erfolgen, um Fehler möglichst früh zu erkennen – das stellt auch das funktionelle Wachstum während der Integration sicher.

So entwickeln Sie eine geeignete Softwareintegrationsstrategie
1. Schritt : Entwickeln Sie die Softwareintegrationsstrategie.

Identifizieren Sie die Softwarebestandteile entsprechend der Softwarearchitektur und legen Sie deren Integrationsreihenfolge fest. Anschließend müssen die integrierten Softwarebestandteile entsprechend der Integrationsstrategie getestet werden. Auch eine Regressionsstrategie für das erneute Testen der integrierten Softwarebestandteile ratsam – falls eine Veränderung stattgefunden hat.

Es ist sinnvoll, beide Strategien – Softwareintegrationsstrategie sowie Regressionsstrategie – miteinander zu verknüpfen. Beide hängen enorm voneinander ab, da eine physische Integrationsstufe in der Regel mit einer Teststufe oder wenigstens mit einer Basissoftware integriert wird. Und danach wird die Applikationssoftware integriert. Der Schwerpunkt des Integrationstests sind die Schnittstellen zwischen den Softwarekomponenten, der Datenfluss dazwischen und das dynamische Verhalten.

Die Teststrategie wird in Automotive SPICE® im Rahmen des Testplans beschrieben. Folgende Punkte sollten u. a. enthalten sein:

  • Was muss wie getestet werden?
  • Wie viel Zeit und Personal wird dafür benötigt bzw. steht zur Verfügung?
  • Welche Hilfsmittel stehen zum Testen bereit?
  • Welche Risiken und Gegenmaßnahmen gibt es?
  • Wie werden neue Testfälle in die Regressionstestsammlung übernommen und wie erfolgt die Entscheidung und Bewertung?
  • evtl. Verwendung verschiedener Testabdeckungen für unterschiedliche Releases gemäß Releaseplan
  • Methoden zur Bestimmung der Testdaten
  • Definition von Testkriterien
  • Performance-Messungen bei dynamischen Tests
  • Testdokumentation

2. Schritt: Entwickeln Sie eine Spezifikation für die Softwareintegrationstests.
  1. Dies geschieht, indem Sie die Testspezifikation für den Softwaretest inklusive der Testfälle für den integrierten Softwarebestandteil – laut der Softwareintegrationsteststrategie – anwenden. 

Achtung: Die Testintegration ist dann geeignet, wenn die Konformität der integrierten Softwarebestandteile mit der Softwarearchitektur gegeben ist.

Softwareintegrationstests können den Fokus haben auf

  • korrekten Datenfluss zwischen den Softwarebestandteilen,
  • rechtzeitige Zeitabhängigkeiten des Datenflusses zwischen Softwarebestandteilen,
  • fehlerfreie Interpretation aller Daten einer Schnittstelle durch die Softwarebestandteile, die diese verwenden,
  • das dynamische Zusammenspiel zwischen den Softwarebestandteilen, 
  • die Einhaltung der Ressourcenverbrauchsziele an den Schnittstellen.

3. Schritt: Integrieren Sie die Softwaremodule zu Softwarebestandteilen und die Softwarebestandteile zur integrierten Software entsprechend der Softwareintegrationsstrategie.

Die Integration wird entsprechend der Integrationsstrategie und dem Projektplan durchgeführt. Ebenfalls dazu zählen die Applikations- und Variantencodierungsparameter, die meist erst während der Projektlaufzeit im Rahmen der Fahrzeugerprobung entstehen. In manchen Fällen werden sie ganz oder aber nur teilweise durch den OEM erstellt.

4. Schritt: Wählen Sie Ihre Testfälle aus der Softwareintegrationsspezifikation aus.

Die Auswahl der Testfälle muss zu einer ausreichenden Testabdeckung entsprechend der Softwareintegrationsstrategie und des Releaseplans führen.

In der Praxis werden oft Testfallsammlungen angewendet. Aus ihnen werden Testfälle je nach Fortschrittsgrad der Funktionalität der Releaseplanung ausgewählt, um dann die geplante Testabdeckung zu erreichen. Grundsätzlich wächst der Umfang der Testfälle und damit der Testaufwand mit steigender Umsetzungsrate der Funktionalität.

5. Schritt: Führen Sie den Softwareintegrationstest anhand der gewählten Testfälle durch und halten Sie Ihre Ergebnisse in einem Testprotokoll fest.

Eine nützliche Anmerkung hierbei: Der Softwareintegrationstest kann durch die Nutzung von Hardware-Debug-Schnittstellen oder durch Simulationsumgebungen wie Software-in-the-Loop-Simulationen unterstützt werden. Ein positives Testergebnis wird erreicht, wenn die erzielten, die erwarteten und geplanten Ergebnisse identisch sind. Bei Abweichungen von den erwarteten Ergebnissen oder bei ganz anderen Ergebnissen gilt der Testfall als negativ bzw. als nicht bestanden.

6. Schritt: Stellen Sie die bidirektionale Traceability zwischen den Softwarearchitekturelementen und den Testfällen der Softwareintegrationsspezifikation sicher.

Die bidirektionale Traceablitiy wird idealerweise durch Verlinkungen erreicht – und zwar zwischen Designtool und Testtools. Die Traceability muss während der gesamten Projektdauer und auch nach den Änderungen aufrechterhalten werden.

7. Schritt: Stellen Sie die Konsistenz zwischen den Softwarearchitekturelementen und den Testfällen der Softwareintegrationstestspezifikation sicher.

Von Konsistenz spricht man, sobald für jedes zu testende Architekturelement alle zugehörigen Testfälle der Softwareintegrationstests korrekt verlinkt sind und umgekehrt. Die Testfälle müssen zudem in Bezug auf das Architekturelement korrekt sein. Dies wird durch entsprechende Reviews gewährleistet.

8. Schritt: Fassen Sie die Ergebnisse in einem Testabschlussbericht zusammen und kommunizieren Sie diese.

Die Bereitstellung aller notwendigen Informationen der Testdurchführung als Zusammenfassung ermöglicht es allen anderen relevanten Beteiligten, die Folgen zu beurteilen.

Fazit

Der Testabschlussbericht entscheidet letztlich darüber, ob die Qualität der integrierten Software gegeben und ausreichend ist, um mit dem nächsten Schritt (dem Softwaretest) fortzufahren. Außerdem dient er als Tätigkeitsnachweis – beispielsweise für Unternehmen  – und ist gleichzeitig Instrument zur Fortschrittskontrolle. Zudem stellt der Testabschlussbericht die Grundlage für noch anstehende Reparaturarbeiten und weitere Überarbeitungen dar.

Wir von der Automotive Beratung machen Sie fit für die Zukunft!