Webinaire en vedette : Tests d'API améliorés par l'IA : une approche de test sans code | Voir le séminaire
MISRA C 2023
MISRA C est un ensemble de directives de codage pour le langage de programmation C. L'objectif de la norme est d'accroître la sécurité des logiciels en empêchant de manière préventive les programmeurs de commettre des erreurs de codage pouvant entraîner des échecs d'exécution (et d'éventuels problèmes de sécurité) en évitant les constructions de problèmes connus dans le langage C.
Au fil des ans, de nombreux développeurs de systèmes embarqués se sont plaints (et se plaignent toujours) du fait que la norme MISRA C était trop stricte et que le coût de l'écriture d'un code entièrement conforme était difficile à justifier. De manière réaliste, étant donné que la norme MISRA C est appliquée aux logiciels critiques pour la sécurité, la valeur de l'application de la norme à un projet dépend de facteurs tels que :
- Risque de dysfonctionnement du système en raison d'une défaillance logicielle
- Coût d'une défaillance du système pour l'entreprise
- Outils de développement et plateforme cible
- Niveau d'expertise du développeur
Les programmeurs doivent trouver un terrain d’entente pratique qui satisfasse l’esprit de la norme tout en revendiquant la conformité MISRA sans gaspiller leurs efforts sur des activités sans valeur ajoutée.
Quand d'abord introduire MISRA C dans un projet, généralement lorsque le code existe déjà, le document clé est le plan de recatégorisation des directives. Ce document capture toutes les directives, les règles et identifie les catégories qui ont été recatégorisées. Cependant, il est important d'avoir la même catégorisation rationnelle également pour le code nouvellement développé. Par exemple, le diagramme suivant montre une partie d'un plan de recatégorisation.
L'obligation de documenter les écarts n'est nécessaire que pour toutes les règles obligatoires. Toute violation du code adopté doit être examinée. Les écarts doivent clairement indiquer que les violations ne compromettent pas la sécurité et la sûreté. Indépendamment de la recatégorisation, si une constatation compromet la sécurité ou la sûreté du système est constatée, le problème doit être résolu. De plus, les modifications apportées au code existant peuvent introduire d'autres problèmes que le développeur n'a pas clairement perçus.
Améliorez vos tests logiciels avec les solutions Parasoft.
Explorez les chapitres
- Introduction "
- 1. Aperçu »
- 2. Analyse statique »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERT »
- 6. CWE »
- 7. Tests unitaires »
- 8. Tests de régression »
- 9. Tests d'intégration de logiciels »
- 10. Test du système logiciel »
- 11. Couverture du code structurel »
- 12. Matrice de traçabilité des exigences »
- 13. Qualification des outils »
- 14. Rapports et analyses »