Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »
Livre blanc
Vous vous demandez ce que contient le guide ? Commencez par consulter l’aperçu ci-dessous.
Avec la dépendance croissante aux logiciels dans systèmes embarquésGarantir la qualité est devenu de plus en plus complexe. De nombreux développeurs ne peuvent pas exécuter facilement les programmes de test dans des environnements de déploiement réels, faute d'accès au matériel du système final. Pour relever ce défi et d'autres encore, la qualité du code doit être prise en compte tout au long du cycle de développement, grâce à une synergie de techniques éprouvées de prévention précoce des défauts, facilitée par l'automatisation de la mise en œuvre et du suivi.
À mesure que la complexité des logiciels augmente systèmes ferroviairesLes risques de défaillances systématiques et aléatoires existent également. La norme EN 50128 définit les exigences et les processus permettant de réduire ces risques à un niveau acceptable. tests de développement C et C++ Cette solution prend en charge l'application de la norme EN 50128. et son successeur EN 50716Ils permettent aux équipes de produire des logiciels embarqués de meilleure qualité, de réaliser des tests plus efficaces et de suivre de manière constante les progrès accomplis vers les objectifs de qualité.
Parasoft automatise les principales activités de contrôle qualité, notamment l'analyse statique, les tests unitaires et de composants, ainsi que la couverture de code, tout au long du cycle de développement, en commençant par le poste de travail de l'ingénieur afin d'éviter l'introduction de modèles de codage sujets aux défauts.
Ce livre blanc technique explique comment garantir la sécurité fonctionnelle des logiciels ferroviaires en satisfaisant aux exigences des normes EN 50128/EN 50716, et comment Parasoft C/C++test aide les équipes à atteindre les niveaux SIL 0 à 4 grâce à une analyse statique automatisée, des tests dynamiques, une couverture et des rapports complets.
La norme EN 50128 fait partie d'un ensemble de normes européennes connexes qui définissent les exigences relatives aux applications ferroviaires. Les autres normes de cet ensemble sont :
La norme EN 50128, intitulée « Systèmes de communication, de signalisation et de traitement – Logiciels pour systèmes de contrôle et de protection ferroviaires », traite spécifiquement des aspects logiciels des applications ferroviaires. Elle définit cinq niveaux d'intégrité de sécurité (SIL) pour les logiciels, le SIL le plus bas étant 0 et le plus élevé 4.
Le niveau d'intégrité du logiciel (SIL) dépend du risque potentiel lié à une défaillance logicielle. Un logiciel présentant un risque plus élevé pour la sécurité en cas de défaillance est classé avec un SIL plus élevé. Pour chaque SIL, les techniques et mesures requises sont définies dans les tableaux normatifs de l'annexe A de la norme EN 50128.
Soit conscient que EN 50716 remplace à la fois la norme EN 50128 (signalisation/contrôle) et la norme EN 50657 (matériel roulant embarqué), les fusionnant en une seule norme unifiée pour les logiciels ferroviaires, et s'alignant étroitement sur les normes EN 50126 (RAMS) et EN 50129 (Sécurité).
Parasoft C/C++test est une solution de test de développement intégrée permettant d'automatiser un large éventail de bonnes pratiques éprouvées pour améliorer la productivité des équipes de développement logiciel et la qualité des logiciels, notamment :
Cela offre aux équipes un moyen pratique de prévenir, de détecter et de corriger les erreurs afin de garantir le bon fonctionnement de leur code C et C++. Pour une résolution rapide, chaque problème détecté est priorisé selon un niveau de gravité configurable, automatiquement attribué au développeur ayant écrit le code concerné et intégré à son EDI avec des liens directs vers le code problématique et une description de la procédure de correction.
C/C++test automatise l'intégralité du flux d'exécution des tests, de la création des cas de test à l'exécution, en passant par la compilation croisée et le déploiement. Il affiche ensuite les résultats, notamment les indicateurs de couverture, dans l'interface graphique. Les tests peuvent être pilotés de manière interactive depuis l'interface graphique ou en ligne de commande pour une exécution automatisée, ainsi que pour des tests de régression par lots.
En mode interactif, les utilisateurs peuvent exécuter les tests individuellement ou par groupes sélectionnés pour faciliter le débogage ou la validation. Pour l'exécution par lots, les tests peuvent être regroupés en fonction du code utilisateur auquel ils sont associés, de leur nom ou de leur emplacement sur le disque.
Les rapports aux formats HTML, PDF et personnalisés peuvent être configurés via l'interface graphique ou un fichier d'options. Les rapports standard incluent un résumé des résultats d'analyse et de test (réussite/échec), la liste des fichiers analysés et un résumé de la couverture du code.
Les rapports sont personnalisables et peuvent inclure la liste des analyses statiques actives, des résultats de test détaillés avec le statut de réussite/échec de chaque test, les paramètres des graphiques de tendance des indicateurs clés et le code source complet avec un code couleur indiquant la couverture de code. Les rapports générés peuvent être envoyés automatiquement par e-mail, selon différents filtres basés sur les rôles. Outre la transmission directe des données aux développeurs responsables du code présentant des anomalies, C/C++test envoie des rapports de synthèse aux responsables et chefs d'équipe.
Les résultats d'analyse de code et de tests, l'analyse de couverture et autres données de test C/C++ peuvent être envoyés à Parasoft DTP. Ces données sont ensuite corrélées avec celles générées par des analyseurs tiers, le contrôle de version, le suivi des anomalies et d'autres composants d'infrastructure, puis traitées. Il en résulte des analyses exploitables et intelligentes qui offrent une visibilité sur les risques associés à l'application testée, ainsi que la traçabilité nécessaire. démontrer la conformité à la norme EN 50128.
La revue et la correction des anomalies sont facilitées par l'attribution et la distribution automatisées des tâches. Chaque anomalie détectée est priorisée, attribuée au développeur ayant écrit le code correspondant et intégrée à son environnement de développement intégré (IDE) avec toutes les données et les liens vers le code. Afin d'aider les responsables à évaluer et à documenter les tendances, un système de reporting centralisé garantit une visibilité en temps réel sur l'état et les processus qualité. Ces données permettent également de déterminer si des actions supplémentaires sont nécessaires pour atteindre les objectifs internes ou démontrer la conformité réglementaire.
La norme EN 50128 définit les exigences relatives aux outils de support utilisés pour le développement et la vérification des logiciels ferroviaires. Parasoft C/C++test appartient à la classe d'outils T2, définie comme un outil « supportant le test ou la vérification de la conception ou du code exécutable, où les erreurs de l'outil peuvent ne pas révéler de défauts mais ne peuvent pas non plus créer directement d'erreurs dans le logiciel exécutable ». Conformément aux exigences des outils de classe T2, C/C++test fournit un guide d'utilisation qui décrit clairement son fonctionnement et donne des instructions sur son utilisation.
Les tableaux ci-dessous présentent les techniques et mesures recommandées et/ou imposées par la norme EN 50128, annexe normative A, qui peuvent être mises en œuvre, totalement ou partiellement, à l'aide de Parasoft C/C++test. Pour chaque technique et mesure, les tableaux ci-dessous fournissent une brève description de la manière de s'y conformer, totalement ou partiellement, grâce aux fonctionnalités de Parasoft C/C++test. Les marqueurs suivants indiquent que, pour le niveau d'intégrité de sécurité (SIL) donné :
Les tableaux suivants détaillent la correspondance entre les fonctionnalités de test C/C++ de Parasoft et les exigences de la norme EN 50128 pour différentes catégories de développement et de vérification de logiciels. Chaque tableau présente les recommandations relatives au niveau d'intégrité de sécurité (SIL) applicable.
| Fonctionnalités de test C/C++ | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 |
|---|---|---|---|---|---|
| Approche modulaire | HR | M | M | M | M |
| Utilisez les normes de codage et les modules de métriques de code pour vérifier que le code présente une modularité appropriée en contrôlant la métrique de couplage entre les objets, l'utilisation des variables globales, le nombre de paramètres de fonction, la documentation du code, etc. | |||||
| Composants | HR | HR | HR | HR | HR |
| Utilisez le module des normes de codage pour vérifier la robustesse et la maintenabilité des composants logiciels. Voir le tableau A.20 pour plus de détails. | |||||
| Normes de conception et de codage | HR | HR | HR | M | M |
| Utilisez l'une des configurations de test prédéfinies pour les normes de codage (MISRA C, MISRA C++, JSF++, etc.) ou élaborez une configuration de test personnalisée en respectant un ensemble approprié de règles de codage intégrées et définies par l'utilisateur, notamment les bonnes pratiques C/C++, l'évitement du code dangereux, le respect des conventions de nommage et de formatage pour une meilleure lisibilité, et bien plus encore. Consultez le tableau A.12 pour plus de détails. | |||||
| Programmation structurée | R | HR | HR | HR | HR |
| Utilisez les modules de normes de codage et de métriques de code pour vérifier la complexité structurelle des composants logiciels (par exemple en maintenant les valeurs des métriques de complexité cyclomatique et essentielle des fonctions à un niveau approprié). | |||||
| Sous-ensemble de langue | - | - | - | HR | HR |
| Utilisez le module de normes de codage avec une configuration personnalisable de règles de normes de codage pour vérifier que le code applique le sous-ensemble de langage C/C++ souhaité – utilisez l'une des configurations prédéfinies (par exemple MISRA C/C++, CERT C/C++, JSF++, normes de codage Ellemtel et plus encore) ou préparez un sous-ensemble C/C++ personnalisé. | |||||
| Programmation orientée objet | R | R | R | R | R |
| Fonctionnalités de test C/C++ | SIL 0 | SIL 1 | SIL 2 | SIL 3 | SIL 4 |
|---|---|---|---|---|---|
| Analyse statique | - | HR | HR | HR | HR |
| Effectuez une analyse statique à l'aide d'un ensemble personnalisable de normes de codage, de règles de contrôle et d'analyse des flux de données. Consultez le tableau A.19 pour plus de détails. | |||||
| Analyse et essais dynamiques | - | HR | HR | HR | HR |
| Effectuez l'exécution des tests unitaires (à différents niveaux : du fichier au projet) et la surveillance de l'application, le tout avec une analyse de couverture de code. Voir le tableau A.13 pour plus de détails. | |||||
| Métrique | - | R | R | R | R |
| Utilisez les modules de métriques de code et de normes de codage pour calculer un large éventail de métriques de code, notamment les métriques de complexité, le couplage entre les objets, la profondeur d'héritage, etc. | |||||
| Traçabilité | R | HR | HR | M | M |
| Associez les tests unitaires aux exigences, aux tâches de développement ou aux anomalies en insérant les informations appropriées sous forme de métadonnées dans les commentaires du code. | |||||
| Couverture des tests pour le code | R | HR | HR | HR | HR |
| Utilisez le module de couverture pour générer un rapport de couverture de code pour les tests unitaires exécutés et pour les tests fonctionnels exécutés en surveillant l'application en cours d'exécution. Consultez le tableau A.21 pour plus de détails. | |||||
| Tests fonctionnels/boîte noire | HR | HR | HR | M | M |
| Exécutez les tests unitaires préparés pour vérifier la fonctionnalité du code développé. Consultez le tableau A.14 pour plus de détails. | |||||
| Test d'interface | HR | HR | HR | HR | HR |
| Exécutez les tests unitaires générés automatiquement en utilisant un large éventail de valeurs d'entrée pour les fonctions testées (valeurs limites, valeurs des paramètres caractéristiques, valeurs définies par l'utilisateur pour des types donnés, etc.). Utilisez des sources de données externes pour définir un seul test unitaire avec un certain nombre de combinaisons d'entrées. | |||||
Remarque : Les tableaux de conformité supplémentaires (A.6, A.7, A.8, A.12, A.13, A.14, A.19, A.20, A.21, A.22, A.23) suivent la même structure et établissent une correspondance entre les capacités de test C/C++ et les exigences SIL pour les catégories suivantes : intégration, tests logiciels globaux, techniques d’analyse logicielle, normes de codage, analyse et tests dynamiques, tests fonctionnels/boîte noire, analyse statique, composants, couverture de test du code, architecture logicielle orientée objet et conception détaillée orientée objet. Chaque tableau fournit une description détaillée de la manière de satisfaire aux exigences spécifiques de la norme EN 50128 à l’aide des outils Parasoft.
Parasoft C/C++test aide les équipes de développement de logiciels ferroviaires à satisfaire totalement ou partiellement aux exigences du processus de développement et de vérification des logiciels définies par la norme EN 50128. et son successeur EN 50716Les équipes obtiennent des informations importantes lorsque DTP agrège les résultats provenant de tests automatisés et analyse de code En C/C++test, l'analyse intelligente et la surveillance continue des tests réduisent considérablement le travail nécessaire à la vérification logicielle.
Prêt à plonger plus profondément ?