Adoptée fin 2023 par le CENELEC, l'EN 50716:2023 décrit les exigences de développement, de déploiement et de maintenance des logiciels ferroviaires — applications de contrôle-commande et de signalisation, et applications embarquées sur le matériel roulant. Elle remplace les normes EN 50128:2011 et EN 50657:2017.
Pour l'analyse et le test des composants logiciels, l'analyse statique — analyse de flux de contrôle et de flux de données incluses —, l'analyse et les tests dynamiques ainsi que la couverture de test sont fortement recommandés à tous les niveaux d'intégrité, de SIL 1 à SIL 4.
Le recours à des normes de codage est fortement recommandé pour l'intégrité de base, SIL 1 et SIL 2 — et devient obligatoire pour SIL 3 et SIL 4.
À tous les niveaux, la norme recommande fortement de limiter la taille et la complexité des fonctions, sous-programmes et méthodes.
Pour les tests fondés sur la structure — tests boîte blanche —, la norme fixe les niveaux suivants.
| Critère de couverture | 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ées (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 |
HR fortement recommandé · R recommandé · — non requis.
Pour SIL 3 et SIL 4, la couverture au niveau des composants doit être mesurée selon l'une de ces combinaisons : branches (2) et conditions composées (3) ; ou branches (2) et flux de données (4) ; ou chemins d'exécution (5) ; ou encore une couverture mesurée au niveau de l'intégration sur un ou plusieurs des critères 2, 3, 4 ou 5.
D'autres critères de couverture peuvent être retenus, selon l'architecture logicielle et le langage de programmation, dès lors que ce choix est justifié.
La couverture des déclarations, des branches, des conditions peut ê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.
En savoir plus sur Testwell CTC++ → Demander une évaluation gratuite
Le Testing Laboratory for Safety Components de TÜV SÜD Rail GmbH a certifié que Testwell CTC++ est :
Consulter le certificat TÜV SÜD (PDF) →
Pour toute question sur l'utilisation de Testwell CTC++ dans le développement de systèmes critiques pour la sécurité, contactez-nous.
Références, témoignages et usages de Testwell CTC++ dans le transport ferroviaire.
DO-178C, ISO 26262, CEI 61508, CEI 62304, ISO 25119 : chaque référentiel pose ses propres exigences de couverture.