La société néerlandaise Solid Sands, spécialiste des services de test et de validation pour compilateurs et bibliothèques C et C++, et le britannique Rapita Systems, éditeur d’outils logiciels pour systèmes critiques temps réel, ont décidé d’unir leur savoir-faire respectif pour améliorer l'analyse de la couverture du code sur une partie de la la bibliothèque standard C++. Objectif : détecter des problèmes généralement non visibles par les outils d'analyse classiques de couverture.
L’origine de cette collaboration est à recherche dans des travaux chez un utilisateur commun concernant la mise en œuvre d’une couverture de code pour une bibliothèque standard C++ à grande échelle. Selon les deux sociétés, ces développements ont permis de constater qu’une partie importante de l’implantation de la bibliothèque standard C++ est constituée par du code évalué uniquement au moment de la compilation. Il s'agit d'une caractéristique liée au C++ qui vise à contrebalancer les efforts d'exécution d’un code versus la sécurité et la rapidité de l'évaluation au moment de la compilation.
Cependant, cette manière de faire rend difficile l'analyse de la couverture du code car celle-ci est fondée sur l'enregistrement des effets de l'exécution. Les deux sociétés ont donc décidé de s’attaquer à l'analyse de couverture pour le code exécuté au moment de la compilation. Et elles estiment qu’à ce niveau, il s’agit d'une fonctionnalité essentielle pour la sécurité.
« Alors que les applications industrielles critiques pour la sécurité évoluent pour utiliser des fonctionnalités de programmation plus modernes, il est crucial que les outils de vérification suivent le rythme et prennent en charge ces fonctionnalités, précise Antoine Colin, directeur technique de Rapita Systems. En travaillant avec Solid Sands, nous pensons pouvoir atteindre cet objectif en explorant comment RapiCover, un outil de couverture de code structurelle, peut collecter la couverture du code au moment de la compilation, en concomitance avec les solutions de vérification de Solid Sands. »
Désormais, RapiCover est ainsi utilisé pour rechercher des moyens d'effectuer une analyse de couverture à grande échelle sur une bibliothèque standard C++ complète, en s’appuyant sur la technologie SuperGuard pour C++ de Solid Sands, dont la nouvelle version sortira fin 2023.
Pour rappel, SuperGuard a été créé pour offrir aux développeurs d'applications critiques en matière de sûreté de fonctionnement une suite d'outils pour la qualification des bibliothèques C utilisées. La suite garantit une utilisation sûre de la bibliothèque standard C dans de telles applications en fournissant une traçabilité complète des résultats de tests individuels jusqu'aux exigences dérivées de la spécification ISO du langage C. La technologie est en particulier adaptée pour qualifier les implémentations de bibliothèques C tierces non modifiées.