EN 50716 Applications ferroviaires – Exigences pour le développement de logiciels
La norme EN 50716:2023 a été adoptée par le CENELEC (Comité européen de normalisation électrotechnique) fin 2023. Cette norme remplace les normes EN 50128:2011 et EN 50657:2017 et décrit les exigences pour le développement, le déploiement et la maintenance des logiciels pour les applications ferroviaires (applications de contrôle-commande et de signalisation et applications sur le matériel roulant ferroviaire).
Pour l'analyse et le test des composants logiciels, l'analyse statique (y compris l'analyse du flux de contrôle et l'analyse du flux de données), l'analyse et les tests dynamiques ainsi que la couverture des tests pour les codes sont fortement recommandés pour tous les niveaux d'intégrité logicielle (SIL 1 à SIL 4).
L'utilisation de normes de codage est fortement recommandée (highly recommended) pour l'intégrité de base, SIL 1 et SIL 2 et même obligatoire (mandatory) pour SIL 3 et SIL 4. Dans ce contexte, il est fortement recommandé, pour tous les niveaux de sécurité, de veiller à ce que la taille et la complexité des fonctions, des sous-programmes et des méthodes soient limitées.
Couverture de code requise
En fonction du niveau d'intégration de sécurité (SIL), la norme EN 50716 exige dans le tableau A.21 pour les tests basés sur la structure (basés sur le code ou boîte blanche) la couverture de test suivante pour les codes (R signifie « recommandé », HR signifie « fortement recommandé ») :Intégrité de base | SIL 1 | SIL 2 | SIL 3 | SIL 4 | |
1 Couverture des instructions (Statement Coverage) | R | HR | HR | HR | HR |
2 Couverture de branche (Branch Coverage) | - | R | R | HR | HR |
3 Conditions composée ((Condition Coverage)) |
- | R | R | HR | HR |
4 Analyse de flux de données (Data Flow) | - | R | R | HR | HR |
5 Couverture des chemins d´exécution (Path Coverage) | - | R | R | HR | HR |
Pour SIL 3 ou SIL 4, la couverture des tests au niveau des composants doit être mesurée comme suit :
branches (2) et conditions composée (3)
ou
branches (2) et flux de données (4)
ou
chemins d´exécution (5)
ou
couverture des tests au niveau de l'intégration mesurées à un ou plusieurs des niveaux 2, 3, 4 ou 5.
D'autres critères de couverture des tests (en fonction de l'architecture du logiciel et du langage de programmation) peuvent être utilisés si cela peut être justifié.
Support d'outils
La couverture des déclarations, des branches, des conditions eut être analysée par Testwell CTC++ (l'outil mesure même les niveaux de couverture les plus élevés MC/DC et MCC). Testwell CTC++ est adapté aux projets en C, C++ et Java.L'analyse du flux des données, la couverture des chemins et l'analyse statique du code peuvent être effectuées avec CodeSonar.
Afin d'analyser la complexité du code des projets C, C++, Java et C#, Testwell CMT++ et Testwell CMTJava peuvent être utilisés.

Certificat TÜV Süd pour Testwell CTC++ Code Coverage Analyzer
- "suitable" pour l'utilisation dans le "safety-related" développement conformément à l'IEC 61508:2010 (pour tout SIL),
- "qualified" pour l'utilisation dans le "standard-compliant" processus de développement conformément à l'ISO 26262:2018 (pour tout ASIL),
- "suitable" pour l'utilisation dans le "safety-related" développement conformément à l'EN 50716:2023 (pour tout SIL), et
- "suitable" pour l'utilisation dans le "safety-related" développement conformément à l'IEC 62304:2006+A1:2015 (pour toutes les "software safety classes").
Pour plus d'informations sur l'utilisation de Testwell CTC++ dans le cadre du développement de logiciel dans les systèmes critiques de sécurité, veuillez nous contacter.




