EN 50657 Applications ferroviaires – Applications du matériel roulant – Logiciels embarqués
Succédant à la norme EN 50128: 2001, la norme européenne EN 50657 spécifie le processus et les exigences techniques pour le développement de logiciels pour les systèmes électroniques programmables destinés à être utilisés sur les véhicules ferroviaires.
La norme concerne exclusivement le logiciel et l'interaction entre le logiciel et le système auquel il appartient - qu'il s'agisse d'un logiciel pertinent ou non pour la sécurité. Les logiciels qui font partie d'un dispositif de signalisation (commande et surveillance ferroviaire) des trains ne sont pas concernés par la norme EN 50657.
La norme EN 50657 définit l'objectif des tests logiciels comme la vérification du comportement ou de la performance du logiciel par rapport à la spécification de test correspondante, au degré réalisable par la couverture de test (chapitre 6.1.1). Les critères et le degré de couverture des tests à atteindre doivent être indiqués dans la spécification des tests. De même, une évaluation de la couverture des tests et de la complétude des tests doit être créée.
Tous les tests, vérifications et analyses doivent avoir une couverture suffisamment élevée du code implémenté (chapitre 6.7.4.6).
Selon le tableau A.5, des techniques telles que l'analyse statique, l'analyse dynamique et les tests ainsi que la couverture de code sont fortement recommandées pour les niveaux SIL 1 à SIL 4.
La collecte de métriques est recommandée.
En ce qui concerne l'analyse statique, l'analyse des valeurs limites, les listes de contrôle, l'analyse des flux de contrôle et de données, l'anticipation des défaillances et les " walkthroughs/design reviews " sont recommandés voir même fortement recommandés.
Couverture de code requise
En fonction du niveau d'intégration de sécurité (SIL), la norme EN 50657 exige la couverture de test suivante dans le tableau A.21 (R signifie "recommandé", HR signifie "fortement recommandé") :Intégrité de base | SIL 1 | SIL 2 | SIL 3 | SIL 4 | |
Couverture des instructions (Statement Coverage) | - | HR | HR | HR | HR |
Couverture de branche (Branch Coverage) | - | R | R | HR | HR |
Conditions composée (MC/DC Coverage) |
- | R | R | HR | HR |
Analyse de flux de données (Data Flow) | - | R | R | HR | HR |
Couverture des chemins d´exécution (Path Coverage) | - | R | R | HR | HR |
Support d'outils
La couverture des états, des branches, des MC/DC et des conditions modifiées (MCC) peut être analysée par Testwell CTC++. Cet outil de couverture est adapté aux projets For C, C++, Java et C#.L'analyse du flux des données, la couverture des chemins et l'analyse statique du code peuvent être effectuées avec CodeSecure 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 / Kit de qualification
Pour Testwell CTC++ 10.x nous fournissons un certificat de TÜV Süd Rail GmbH (couvrant tout SIL et ASIL des normes concernés).Alternativement (et pour DO-178C), un kit de qualification pour Testwell CTC++ (actuellement disponible pour version 9.x et antérieur) fournit de la documentation, des cas de test et des procédures qui vous permettent de qualifier l´analyseur de couverture Testwell CTC++ pour les projets basés sur les normes de sécurité DO-178C, EN-50128, IEC 61508, IEC 60880 et ISO 26262.