DIN EN 50716 Bahnanwendungen – Anforderungen für die Softwareentwicklung
Die Norm EN 50716:2023 wurde Ende 2023 vom CENELEC (Europäisches Komitee für Elektronische Normung / European Committee for Electrotechnical Standardization / Comité Européen de Normalisation Electrotechnique) angenommen. EN 50716 ersetzt die EN 50128:2011 und EN 50657:2017 und beschreibt Anforderungen für Entwicklung, Bereitstellung und Wartung von Software für Bahnanwendungen (Anwendungen der Zugsteuerung, Zugsicherung und Signalgebung (control, command and signalling) sowie Anwendungen auf Bahnfahrzeugen).
Für die Analyse und den Test von Softwarekomponenten sind Statische Analyse (inkl. Kontrollflussanalyse und Datenflussanalyse), Dynamische Analyse und Tests sowie Testabdeckung für Codes für alle Software-Integritätslevel (SIL 1 bis SIL 4) dringend empfohlen (highly recommended).
Die Nutzung von Codierstandards ist für die Basisintegrität, SIL 1 und SIL 2 dringend empfohlen (highly recommended) und für SIL 3 und SIL 4 sogar verpflichtend (mandatory). Dabei ist für alle Sicherheitsstufen dringend empfohlen, auf eine begrenzte Größe und Komplexität von Funktionen, Unterprogrammen und Methoden zu achten.
Erforderliche Testabdeckung für Code
Je nach Sicherheits-Integrationslevel (SIL) verlangt die Norm EN 50716 in der Tabelle A.21 für strukturbasierte (codebasierte bzw. White-Box-Tests) die folgende Testabdeckung für Codes (R steht für "recommended"/empfohlen, HR steht für "highly recommended"/dringend empfohlen):Basisintegrität | SIL 1 | SIL 2 | SIL 3 | SIL 4 | |
1. Anweisungen (Statement Coverage) | R | HR | HR | HR | HR |
2. Verzweigungen (Branch Coverage) | - | R | R | HR | HR |
3. Zusammengesetzte Bedingungen (MC/DC oder MCC-Coverage) |
- | R | R | HR | HR |
4. Datenfluss | - | R | R | HR | HR |
5. Pfadabdeckung | - | R | R | HR | HR |
Für SIL 3 oder SIL 4 sollte die Testabdeckung auf Komponentenebene wie folgt gemessen werden:
Verzweigungen (2) und Zusammengesetzte Bedingungen (3)
oder
Verzweigungen (2) und Datenfluss (4)
oder
Pfad (5)
oder
die Testabdeckung auf Integrationsebene sollte nach einer oder mehr von 2, 3, 4 oder 5 gemessen werden.
Es können andere Kriterien für die Testabdeckung (abhängig von der Software-Architektur und der Programmiersprache) verwendet werden, sofern dies begründet werden kann.
Toolunterstützung
Zur Messung der Statement-, Branch-, MC/DC- und Modified Condition Coverage (MCC) von in C, C++ oder Java geschriebener Software kann Testwell CTC++ eingesetzt werden.Für die Datenflussanalyse, Messung der Code-Komplexität sowie die statische Codeanalyse eignet sich CodeSonar.
Zur Messung der Code-Komplexität von in C, C++ oder Java geschriebener Software kann beispielsweise Testwell CMT++ bzw. Testwell CMTJava eingesetzt werden.
TÜV Süd Certificate für Testwell CTC++ Code Coverage Analyzer
- für die sicherheitsrelevante Entwicklung nach IEC 61508:2010 für alle SIL geeignet ist,
- für den Einsatz in einem standardkonformen Entwicklungsprozess gemäß ISO 26262:2018 für alle ASIL geeignet ist,
- für den Einsatz in der sicherheitsrelevanten Softwareentwicklung gemäß EN 50716:2023 für alle SIL geeignet ist und
- für den Einsatz in der sicherheitsrelevanten Softwareentwicklung gemäß IEC 62304:2006+A1:2015 für alle Software Safety Klassen geeignet ist.
Für weitere Informationen über den Einsatz von Testwell CTC++ in der sicherheitskritischen Entwicklung kontaktieren Sie uns bitte.