Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Simplifiez et rationalisez les tests embarqués avec Parasoft C/C++test

Par Miroslaw Zielinski

12 mai 2021

5  min lire

Les tests intégrés présentent plusieurs défis. Découvrez comment la sortie de Parasoft C/C++test 2021.1 peut aider à simplifier les tests intégrés, tout en aidant à respecter les normes de conformité.

Les équipes de test et de développement intégrées bénéficient de la vitesse et de l'efficacité d'un pipeline CI / CD moderne et hautement automatisé avec la sortie de Parasoft Test C / C ++ 2021.1. La dernière version fournit aux équipes des tests statiques et unitaires entièrement intégrés pour garantir une conformité et une qualité continues.

La nouvelle version poursuit sa prise en charge complète des dernières normes de conformité, y compris la version la plus récente de MISRA C 2012. Pour atteindre efficacement la conformité avec les directives de sécurité DISA ASD STIG, la version test C / C ++ 2021.1 introduit une nouvelle configuration et un nouveau support.

Cette version introduit de nouvelles fonctionnalités pour l'analyse architecturale logicielle et continue de nous concentrer sur les flux de travail basés sur Git.

  • Intégration GitHub dédiée avec de nouveaux rapports d'analyse statique au format SARIF
  • Prise en charge de l'analyse et de l'application de l'architecture logicielle (intégration Lattix Architect)
  • Extension améliorée pour le plugin Visual Studio Code

Les autres améliorations importantes incluent:

  • Nouvelle extension de couverture de code pour les projets CMake
  • Déploiements de tests C / C ++ rationalisés
  • Prise en charge des rapports de traçabilité des exigences Jama
  • Prise en charge de nouveaux compilateurs et IDE
Découvrez le test Parasoft C++ en action !

Intégration GitHub dédiée

L'intégration des tests C / C ++ avec les workflows GitHub est désormais rationalisée. La nouvelle version fournit une action GitHub dédiée, Exécuter le test Parasoft C / C ++, qui vous permet d'exécuter une analyse de code avec le test Parasoft C / C ++ et de consulter les résultats de l'analyse directement sur GitHub. La documentation d'Action comprend des exemples de workflows GitHub que vous pouvez utiliser comme base pour vos workflows. En savoir plus sur l'action GitHub de test C / C ++.

Capture d'écran Flux de travail GitHub qui inclut les résultats de l'analyse statique des tests C / C ++ disponibles dans l'onglet Sécurité, sous la forme «Alertes d'analyse de code».

La nouvelle action GitHub simplifie l'intégration des tests C / C ++ dans les flux de travail et permet de nouveaux rapports d'analyse statique au format SARIF, qui sont automatiquement téléchargés sur GitHub. Lorsque le test C / C ++ est inclus dans le flux de travail GitHub, les résultats de l'analyse statique sont disponibles dans l'onglet Sécurité sous la forme «Alertes d'analyse de code». Ils sont également inclus dans vos pull requests. Cela rend le déploiement de l'analyse statique transparent et totalement intégré à vos flux de travail.

Prise en charge de l'analyse et de l'application de l'architecture logicielle avec l'intégration de Lattix Architect

Une architecture logicielle appropriée a un impact considérable sur les efforts de développement, de test, de conformité et de maintenance. Les équipes soucieuses de la qualité de leur architecture en tirent des bénéfices à court et à long terme. Notre dernière version apporte de nouvelles fonctionnalités pour analyser, définir et appliquer l'architecture logicielle avec le Architecte Lattix l'intégration.

Capture d'écran Données d'analyse de code Lattix Architect produites par le test C / C ++ présentées dans une vue visuelle unique basée sur la technologie DSM (Dependency Structure Matrix).

Lattix Architect s'appuie sur les données d'analyse de code produites par le test C / C ++ et propose sa visualisation unique, basée sur matrice de structure de dépendance (DSM), pour identifier et résoudre rapidement les problèmes d'architecture. La visualisation basée sur DSM a été utilisée par de nombreux clients pour être plus facile à comprendre que la représentation basée sur un graphique, en particulier pour les projets plus importants. Une bonne compréhension des dépendances logicielles permet de perfectionner les constructions d'architecture logicielle, de tester et de satisfaire les exigences de conformité.

La carte thermique est une autre vue utile qui regroupe la couverture du code, l'analyse statique et les résultats de l'architecture en une seule vue holistique de la qualité du code. Il montre toutes les données de qualité critiques à travers le prisme de l'architecture, ce qui permet d'exposer les lacunes de conformité et donc les risques commerciaux.

De plus, les équipes peuvent inclure le test C / C ++ et Lattix Architect dans le flux de travail CI / CD et produire des rapports qui s'intègrent aux demandes de fusion.

Webinaire à la demande: Obtenez une conformité plus rapide à la norme ISO 26262 avec Lattix et Parasoft dans un pipeline GitLab CI

Extension améliorée pour le plug-in Visual Studio Code

La popularité de notre extension pour Visual Studio Code ne cesse de croître et, par conséquent, nous continuons à l'améliorer. Notre mise à jour la plus récente simplifie l'utilisation de VSCode pour les flux de travail CI / CD.

Les utilisateurs peuvent désormais télécharger les résultats d'analyse statique générés dans le pipeline directement dans cet éditeur de code favori et travailler sur les problèmes sans basculer entre VSCode et le navigateur. Ces petites choses de productivité nous importent!

Il existe également une commande dédiée pour GitHub, qui reconnaît votre référentiel actuel et trouve automatiquement l'emplacement du rapport d'analyse statique produit par le Exécuter le test Parasoft C / C ++ GitHub action. Une fois les résultats importés, vous pouvez les analyser dans la vue Problèmes et accéder directement au code du problème à corriger.

Capture d'écran de l'extension améliorée du plugin de code Visual Studio montrant les résultats de charge de test C / C ++ à partir de GitHub

Il existe une variante plus générique de cette action qui permet de télécharger les résultats d'analyse statique des tests C / C ++ à l'aide d'un emplacement URL. Vous pouvez l'utiliser pour accéder aux résultats produits par Jenkins ou une autre plate-forme CI / CD. Pour en savoir plus sur cette fonctionnalité, télécharger ou mettre à jour l'extension à partir de Microsoft Marketplace. Accédez à l'onglet Détails de la page d'accueil de l'extension.

Nouvelle extension de couverture de code pour les projets CMake

Si vous utilisez CMake pour créer votre code, vous pouvez désormais intégrer de manière transparente les mesures de couverture de code dans votre projet et mieux comprendre l'exhaustivité de vos tests afin de répondre aux exigences des normes de sécurité fonctionnelle en matière de couverture de code.

La couverture du code de test C / C ++, contrairement à gcov, prend en charge toutes les métriques de couverture pertinentes, y compris la couverture des instructions, des branches, des MC / DC, des fonctions et des appels, qui sont importantes pour des normes telles que ISO 26262.

Notre nouvelle extension génère également des rapports de couverture de code à partir de votre intégration et de vos tests au niveau du système, que vous pouvez ensuite fusionner avec le rapport de couverture du code de test unitaire déjà disponible.

L'ajout de l'extension à votre projet est assez simple. Tout ce que vous avez à faire est d'ajouter une directive «include» à votre fichier CMakeLists.txt existant et c'est tout. L'extension a déjà été validée en combinaison avec les moteurs de construction Make et Ninja.

Utilisation du test Parasoft C / C ++ avec CMake pour les tests unitaires

Pour les praticiens actuels de Parasoft, l'exemple du projet «Timer», qui existe depuis longtemps, a été étendu pour démontrer l'utilisation du test Parasoft C / C ++ avec CMake pour les tests unitaires.

Déploiements de tests C / C ++ rationalisés

Dans la version 2020.2, nous avons introduit une version préliminaire de nos programmes d'installation simplifiés basés sur des archives pour C / C ++ test Professional (Eclipse). Dans la version 2021.1 actuelle, les programmes d'installation basés sur des archives sont officiels et remplacent les programmes d'installation de style exécutable désormais obsolètes. Cela fait partie de nos efforts continus pour rationaliser et moderniser les déploiements à l'ère du cloud, de la virtualisation et de la conteneurisation.

Si vous n'avez pas encore eu l'occasion de mettre à jour votre processus d'installation, vous pouvez toujours télécharger les anciens programmes d'installation via le portail client. Veuillez noter que nous prévoyons de les supprimer dans une prochaine version.

La transition vers les nouveaux installateurs est exceptionnellement fluide en fonction des commentaires de tous nos premiers utilisateurs. Si vous utilisez le test C / C ++ de manière autonome, tout ce que vous avez à faire est de décompresser le package à l'endroit de votre choix et de commencer à utiliser l'outil. Pour ceux qui ont déjà un processus de déploiement automatisé, qui inclut par exemple la préparation de conteneurs Docker, vos scripts seront certainement plus simples à configurer.

Si vous avez besoin de plus d'informations, un petit guide de migration est disponible dans le Portail Clients pour faciliter votre changement.

Prise en charge de la traçabilité et du reporting des exigences Jama

Parmi les nombreuses intégrations que nous avons ajoutées dans cette version, il y a une intégration avec Jama connect, pour la traçabilité des exigences, la gestion des risques et des tests.

Avec cette nouvelle intégration, les résultats des tests unitaires de test C / C ++ sont corrélés dans Parasoft DTP avec les exigences Jama et présentés sous la forme de rapports de traçabilité nécessaires à la conformité aux normes de sécurité fonctionnelle. Le DTP transmet également les résultats des tests unitaires à Jama en les incorporant dans les exigences ou les spécifications de test appropriées.

En outre, lors de l'examen des résultats d'analyse statique ou de test unitaire dans DTP, les utilisateurs peuvent créer automatiquement un élément de travail / une tâche dans Jama pour résoudre les violations de codage et les bogues logiciels identifiés.

Prise en charge des nouveaux compilateurs et IDE

Avec 2021.1, nous introduisons l'intégration avec la version 10.x de Code Composer Studio de Texas Instrument et, comme d'habitude, une collection des nouvelles configurations de compilateur prises en charge. Voici une liste rapide.

  • Compilateur IAR BXARM pour ARM v. 8.50.x
  • Compilateur de logiciels Green Hills pour ARM64 v. 2020_1.x
  • QNX GCC 8.x (x86-64)
  • QNX GCC 8.x (ARM64)
  • Compilateur TI ARM C / C ++ v20.2

Regard sur l'avenir

Avec de plus en plus d'équipes passant aux plates-formes CI / CD basées sur Git, nous continuerons nos efforts pour simplifier nos intégrations dans ces systèmes populaires. De même, comme nous l'avons fait avec GitHub dans la version actuelle, nous prévoyons de créer des intégrations avec d'autres solutions CI / CD populaires. Et nous examinerons l'adoption de nouvelles règles d'analyse statique, offrant une couverture de code encore plus rationalisée et de nombreuses autres fonctionnalités utiles.

Découvrez le test Parasoft C/C++ en action !

« MISRA », « MISRA C » et le logo triangulaire sont des marques déposées de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Tous droits réservés.

Par Miroslaw Zielinski

Chef de produit pour les solutions de test embarquées de Parasoft, les spécialités de Miroslaw comprennent C / C ++, RTOS, l'analyse de code statique, les tests unitaires, la gestion de la qualité des logiciels pour les applications critiques pour la sécurité et la conformité des logiciels aux normes de sécurité.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.