RSE

Tests unitaires pour logiciels critiques : méthodologie, normes et outils

Lors du développement d’un logiciel critique, les tests unitaires sont une étape importante permettant de détecter des défauts dans le cycle de développement. Ils permettent de s’assurer de la qualité du Logiciel, l’absence de code mort ainsi que de garantir la conformité aux exigences normatives et à la conception du Logiciel.

Chez SERMA Safety and Security, les tests unitaires reposent sur une expertise multinorme/multidomaine. Nous utilisons des outils internes qualifiés et une approche souveraine, nous permettant de mener des activités compatibles avec les secteurs les plus exigeants comme celui de la défense.

Tests unitaires : Présentation et exigences normatives

Les tests unitaires consistent à tester les modules/composants du Logiciel indépendamment les uns des autres. Ils ont deux objectifs principaux :

  • Un objectif de couverture fonctionnelle : s’assurer que la conception détaillée des modules Logiciel a été correctement implémentée lors de la phase de codage.
  • Un objectif de couverture structurelle qui dépend du niveau d’intégrité du Logiciel (criticité) : s’assurer que les tests sont suffisamment complets et rigoureux pour le niveau d’intégrité du Logiciel testé (ex : couverture d’instructions, de branches, Modified Condition/Decision Coverage…) et l’absence de code mort (code inatteignable lors de l’exécution)

Pour ce faire les entrées de chaque module/composant sont simulées à des valeurs bien précises (en fonction de la conception détaillée) et les résultats obtenus sont comparés aux résultats attendus.

Les tests unitaires sont une étape nécessaire au processus de développement d’un logiciel critique qui permet de :

  • Réduire les risques de défaillance
  • Améliorer la fiabilité globale du Logiciel
  • Répondre aux exigences des normes de sureté de fonctionnement

Chez SERMA Safety and Security, nous réalisons des tests unitaires multisectoriels :

  • CEI 61508-3 Sécurité fonctionnelle des systèmes électriques/électroniques/électroniques programmables relatifs à la sécurité – Partie 3 : exigences concernant les Logiciels
  • EN 50716 (ou EN 50128)  Applications ferroviaires – Exigences pour le développement de Logiciels
  • CEI 62304 – Logiciels de dispositifs médicaux – Exigences concernant le processus du cycle de vie du logiciel

Nous nous adaptons aux différents requis des normes et au niveau d’intégrité du Logiciel à tester.

Une méthodologie de tests unitaires pour les logiciels critiques

Les activités de tests unitaires du Logiciel reposent sur une méthodologie éprouvée et structurée en plusieurs étapes :

  • Définition d’une stratégie à partir des exigences et des contraintes normatives
  • Rédaction d’un plan de tests unitaires
  • Rédaction des cas de tests dans un template clair
  • Exécution des cas de tests et récupérations des résultats
  • Analyse des résultats
  • Rédaction des rapports de tests unitaires

Des outils qualifiés

Les normes de sureté de fonctionnement Logiciel (CEI 61508-3, EN 50716, etc…) ont des exigences concernant les outils utilisés lors du développement d’un logiciel critique. Les outils utilisés dans le cadre des tests unitaires sont considérés de classe T2 (ces outils ne peuvent pas injecter des erreurs dans le code exécutable final, mais peuvent empêcher la détection de ces dernières) et nécessitent donc une documentation associée ainsi qu’une qualification du niveau de confiance de l’outil.

Chez SERMA Safety and Security, nous utilisons un outil certifié du marché permettant l’exécution des cas de tests unitaires et la génération des résultats. De plus, nous avons développé un outil d’instrumentalisation : ARTUR (Assistant à la Réalisation de Tests UnitaiRes) qui s’interface avec l’outil d’exécution. L’utilisation d’ARTUR nous permet de réduire significativement nos coûts et nos délais de réalisation d’une campagne de tests unitaires.

ARTUR nous permet d’automatiser les étapes de génération du Template de test, d’exécution des tests unitaires à travers l’outil certifié du marché, de récupération des résultats et de complétion des rapports de tests unitaires.

L’outil ARTUR a pour rôle d’optimiser les étapes répétitives d’une campagne de tests unitaires dans le but de fiabiliser ce processus et de gagner en productivité. ARTUR a été développé en suivant le cycle en V avec toute la documentation nécessaire pour une qualification de classe T2 selon les normes applicables.

Une expertise souveraine, maîtrisée de bout en bout

Au-delà des compétences techniques, nous revendiquons une expertise souveraine en tests unitaires et en sûreté de fonctionnement. Nos méthodes, nos outils et notre savoir-faire sont entièrement maîtrisés en interne, dans nos locaux en France.

Cette souveraineté technologique est un enjeu majeur pour les secteurs sensibles tels que le transport, l’énergie, la défense ou les infrastructures critiques. Elle garantit la pérennité des solutions, la maîtrise des données et l’indépendance stratégique des projets.

Conclusion

Notre expertise multisectorielle et multinorme, combinée à l’utilisation de méthodologies éprouvées/structurées, d’outils qualifiés et à une approche souveraine, nous permet d’accompagner nos clients sur la phase de tests unitaires, mais également sur toutes les étapes du cycle de développement.

Les tests unitaires ne se limitent pas à une simple étape de vérification : ils constituent un pilier fondamental de la qualité, sécurité et confiance dans le développement des Logiciels critiques.

DERNIÈRES PUBLICATIONS

Tests unitaires pour logiciels critiques : méthodologie, normes et outils

Lors du développement d’un logiciel critique, les tests unitaires sont ...

Cyber Resilience Act : comment financer et réussir la mise en conformité de vos produits numériques avant 2027

La cybersécurité des produits numériques devient une priorité réglementaire en ...

Le Tiering Model Active Directory : La barrière qui sépare une compromission locale d’une catastrophe totale

Aujourd’hui la sécurité repose grandement sur les identités. Dans 95 ...