EN 50128 "Bahnanwendungen - Telekommunikationstechnik, Signaltechnik und Datenverarbeitungssysteme" / IEC 62279
Hinweis: die Norm EN 50128 wurde durch die Norm EN 50657 ersetzt.
Die Norm EN 50128 mit dem Titel "Bahnanwendungen - Telekommunikationstechnik, Signaltechnik und Datenverarbeitungssysteme - Software für Eisenbahnsteuerungs- und Überwachungssysteme" ist eine Europäische Norm, die festlegt, welche Verfahren, Prinzipien und Maßnahmen für sicherheitsrelevante Software bei der Eisenbahnsteuerung und -überwachung (zug- und streckenseitig) anzuwenden sind.
IEC 62279 ist die internationale Version der Norm, die mit der EN 50128 identisch ist.
Im Rahmen der Softwaretests ist unter anderem ein Testbericht zu erstellen, der neben anderen Anforderungen eine Bewertung der Testabdeckung und der Testvollständigkeit enthält (Punkt 6.1.4.5).
Passend zum Software-Entwicklungsprozess müssen unter anderem Verifikations- und Validierungswerkzeuge wie statische Codeanalysierer und Testabdeckungsmonitore ausgewählt werden.
Die Software muss so erstellt werden, dass sie analysierbar, testbar, verifizierbar und wartbar ist (Punkt 7.5.1.1). Die Größe und Komplexität des entwickelten Quellcodes müssen ausgewogen sein (Punkt 7.5.4.2).
Unter anderem muss ein Software-Komponententestbericht erstellt werden (Punkt 7.5.3), der eine Stellungnahme zur Testabdeckung für jede Komponente enthält, in der gezeigt wird, dass der geforderte Grad der Testabdeckung für alle geforderten Kriterien erreicht worden ist.
Erforderliche Testabdeckung für Code
Je nach Sicherheits-Integrationslevel (SIL) verlangt die Norm EN 50128 die folgende Test-Coverage (R steht für "recommended"/empfohlen, HR steht für "highly recommended"/dringend empfohlen):SIL 0 | 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 jeden Code, der sich nicht zweckmäßig testen lässt, ist der Nachweis der Korrektheit mit einem geeigneten Verfahren wie beispielsweise Statischer Codeanalyse (Grenzwertanalyse, Checklisten, Steuerflussanalyse, Datenflussanalyse, Fehlererwartung, "Walkthroughs"/Entwurfsüberprüfungen) zu erbringen.
Statische Softwareanalyse ist für die Sicherheits-Integrationslevel 1-4 dringend empfohlen.
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 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.