Avec Lauterbach, la couverture de code MC/DC se fait sur la trace des processeurs, sans instrumenter le codeAprès plusieurs années de travaux de R&D, la firme allemande Lauterbach, spécialiste des outils de développement et de débogage de systèmes embarqués, a dévoilé une technologie innovante dans le domaine du test de code logiciel à certifier dans l’aéronautique. ...Et ce en offrant la possibilité, pour la première fois sur le marché, de réaliser via son outil Trace32 une couverture de code de haut niveau MC/CD (Modified Condition / Decision Coverage) sans avoir à instrumenter le code C. L’analyse se fait donc directement au niveau du code source non modifié, évitant ainsi les opérations de recompilation d’un code instrumenté qui n’est donc pas exactement le même que le code final exécuté sur la cible. Cette couverture de code MC/DC est notamment obligatoire dans le cadre du développement de logiciels embarqués dans l’avionique qui doivent satisfaire aux exigences de la norme DO-178C, au plus haut niveau de certification, soit le DAL A. Il s’agit ici de démontrer que le logiciel a été testé intégralement et de manière complète, via le test de couverture de code MC/DC obligatoire dans ce type de cycle de développement.
Jusqu’à présent, lorsque l’analyse MC/DC de la couverture de code est générée, explique Lauterbach, la structure et la position de la décision dans le code objet doivent être connues. Or pour implémenter une mesure de couverture de code MC/DC sans instrumenter le code, il faut ajouter des informations supplémentaires sur la structure du code source, ce que ne font pas les compilateurs du commerce. Des travaux réalisés en collaboration avec la société AdaCore sur la couverture de code MC/DC pour du code Ada ont permis de valider d’ores et déjà cette approche en utilisant une trace instruction. Pour les utilisateurs ayant besoin de valider leur couverture MC/DC sur l’implantation finale de leur cible, AdaCore offre ainsi une interface qui permet d’importer les données de trace, enregistrées par l’outil Trace32, pour l’analyse demandée.
|