22 August 2022
DIN EN 50657 Bahnanwendungen – Anwendungen für Schienenfahrzeuge – Software auf Schienenfahrzeugen
Die Europäische Norm EN 50657 legt als Nachfolgenorm der DIN EN 50128:2001 den Prozess und die technischen Anforderungen an die Entwicklung von Software für programmierbare elektronische Systeme für die Anwendung auf Schienenfahrzeugen fest.
Sie betrifft ausschließlich Software und die Wechselwirkung zwischen Software und dem System, zu dem die Software gehört - unabhängig davon, ob es sich um sicherheitsrelevante oder nicht-sicherheitsrelevante Software handelt. Software, die Teil einer Signaleinrichtung (Eisenbahnsteuerung und -überwachung) von Zügen ist, ist durch die EN 50657 nicht betroffen.
Die DIN EN 50657 bezeichnet als Ziel von Softwaretests, die Überprüfung des Verhaltens oder der Leistungsfähigkeit der Software in Bezug auf die entsprechende Testspezifikation bis zum Grad, der durch die ausgewählte Testabdeckung erreichbar ist (Kap. 6.1.1). Die Kriterien und der Grad der zu erreichenden Testabdeckung ist in der Testspezifikation zu nennen. Ebenfalls muss eine Bewertung der Testabdeckung und der Testvollständigkeit erstellt werden.
Für alle Test, Überprüfungen und Analysen gilt, dass sie eine ausreichend hohe Abdeckung des implementierten Codes haben (Kapitel 6.7.4.6).
Gemäß Tabelle A.5 sind unter anderem Statische Analyse, Dynamische Analyse und Tests sowie die Testabdeckung für Codes für die Level SIL 1 bis SIL 4 dringend empfohlen (highly recommended).
Die Erhebung von Metriken ist empfohlen (recommended).
Bezüglich der Statischen Analyse sind Grenzwertanalyse, Checklisten, Kontroll- und Datenflussanalyse, Fehlererwartung und Walkthroughs/Entwurfsüberprüfungen empfohlen bzw. dringend empfohlen.
Erforderliche Testabdeckung für Code
Je nach Sicherheits-Integrationslevel (SIL) verlangt die Norm EN 50657 in der Tabelle A.21 die folgende Test-Coverage (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) | - | 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 |
Toolunterstützung
Zur Messung der Statement-, Branch-, MC/DC- und Modified Condition Coverage (MCC) von in C, C++, Java oder C# geschriebener Software kann Testwell CTC++ eingesetzt werden.Für die Datenflussanalyse, Pfadabdeckung sowie die statische Codeanalyse eignet sich GrammaTech CodeSonar®.
Zur Messung der Code-Komplexität von in C, C++, Java oder C# geschriebener Software kann beispielsweise Testwell CMT++ bzw. Testwell CMTJava eingesetzt werden.
Zertifizierung / Qualification-Kit
Für Testwell CTC++ 10.x steht ein Zertifikat der TÜV Süd Rail GmbH für die Nutzung in sicherheitskritischen Projekten (alle SIL- und ASIL-Levels) zur Verfügung.Verifysoft bietet ein Qualification-Kit für Testwell CTC++ (aktuell für Versionen 9.x und früher) an, welches die Sicherheitsnormen DO-178C, EN-50128, IEC 61508 und ISO 26262 abdeckt.




