Safe Continuous Integration

Autor / Redakteur: Gudrun Neumann * / Christine Kremser

Ein manueller Software-Integrationsprozess kann nicht immer mit der Geschwindigkeit der Änderungen in der Entwicklung mithalten. Deshalb gehen mehr und mehr Hersteller dazu über, einen Continuous Integration (CI) Prozess aufzusetzen: Build-Zyklen erfolgen früh und iterativ zusammen mit automatisierten Tests.

Anbieter zum Thema

Test und Entwicklung müssen ineinandergreifen: Das ist das Ziel der Continuoius Integration.
Test und Entwicklung müssen ineinandergreifen: Das ist das Ziel der Continuoius Integration.
(Bild: gemeinfrei/Pixabay / CC0 )

In diesem Beitrag wird anhand eines beispielhaften CI Prozesses dargestellt, welche Anforderungen der Standards zur Funktionalen Sicherheit beachtet werden müssen.

Dabei wird ein besonderes Augenmerk auf Versionsmanagement, Traceability und Automatisierung von Tests liegen.

Auch bei dieser Vorgehensweise müssen die Nachweise für die sicherheits-relevanten Tätigkeiten erbracht werden, wie z.B. Auswahl der Testmethoden und Testspezifikationen.

Eine Zusammenfassung der wesentlichen Aspekte erfolgt am Ende des Beitrags.

Einleitung

In der Industrie werden ganz verschiedene Anforderungen an einen Software Integrations-Prozess gestellt. Dazu gehören, besonders bei sicherheitsgerichteter Entwicklung, die Wiederholbarkeit der Verifikationsschritte und ein frühes sichtbares Ergebnis, d.h. ein zumindest in Teilen funktionierendes Software System. Dies kann durch die im Folgenden beschriebenen Continuous Integration der Software erreicht werden.

Definitionen

Softwareintegrationstests dienen

  • zur Verifizierung, dass die Anforderungen an die sicherheitsbezogene Software erreicht wurden und
  • zum Nachweis, dass alle Softwaremodule, -elemente und Teilsysteme ordnungsgemäß zusammenarbeiten und ihre bestimmungsgemäßen Funktionen und keine anderen ausführen

(siehe auch IEC 61508, Teil 3).

Man unterscheidet zwischen reiner Softwareintegration und der Integration von Software auf der Zielhardware.

Im Folgenden wird nur die reine Softwareintegration betrachtet.

Es gibt verschiedene Strategien zur Integration von Software Komponenten zu einem Softwaresystem:

  • „Big Bang“, d.h. alle Software-Komponenten werden in einem Schritt integriert.
  • „Schrittweise Integration“, d.h. sinnvoll zusammengehörende Software Komponenten werden integriert und in einem weiteren Schritt die so entstandenen Software-Komponenten.
  • „Continuous Integration (CI)“, d.h. jede durch den Entwickler freigegebene Software Änderung wird möglichst sofort mit schon bestehendem Code integriert und getestet.

Voraussetzungen für eine CI sind:

  • Versions- bzw. Konfigurationsmanagement
  • Automatisiertes Software Build
  • Automatisiertes Testen

(ID:44094083)