Contenu principal

Envoyer par e-mail des notifications contenant les résultats Polyspace Bug Finder Server

Si vous exécutez une analyse Polyspace® dans le cadre de l'intégration continue, chaque soumission d’un nouveau code génère de nouveaux résultats. Vous voyez non seulement apparaître de nouveaux résultats dans les composants qui ont été modifiés, mais également dans les composants qui dépendent de ces composants. Vous pouvez configurer des alertes par e-mail afin que les propriétaires de composants soient avertis lorsque de nouveaux résultats Polyspace apparaissent dans leurs composants.

Création de notifications par e-mail

Pour créer des notifications par e-mail :

  1. Exportez les nouveaux résultats d’analyse vers un fichier texte délimité par des tabulations (format .tsv). Pour chaque résultat, le fichier contient des liens permettant d'ouvrir le résultat dans l'interface web Polyspace Access.

    Appliquez des filtres pour exporter des types de résultats spécifiques, par exemple les défauts à fort impact. Si nécessaire, vous pouvez également appliquer des filtres supplémentaires aux fichiers exportés à l'aide d'utilitaires de recherche et de remplacement. Consultez Exporter les résultats pour les intégrer en tant que pièces jointes à un e-mail.

  2. Envoyez un e-mail avec le fichier de résultats en pièce jointe.

    Par exemple, si vous utilisez un plugin d’e-mail dans Jenkins, vous pouvez créer une étape post-création pour envoyer un e-mail une fois l'analyse terminée.

Si vous utilisez le plugin Polyspace dans Jenkins, vous pouvez utiliser les utilitaires d'aide Polyspace pour l'ensemble du processus de notification par e-mail. Consultez Sample Scripts for Polyspace Analysis with Jenkins.

Sinon, les résultats peuvent être affectés directement aux propriétaires en fonction du chemin d'accès du fichier correspondant. Vous pouvez configurer des notifications par e-mail qui exportent un fichier de résultats distinct par propriétaire et envoient un e-mail à chaque propriétaire avec le fichier de résultats correspondant en pièce jointe. Consultez Affecter des propriétaires et exporter des résultats affectés.

Prérequis

Pour exécuter ce tutoriel :

  • Vous devez avoir chargé des résultats sur le serveur web Polyspace Access™. Si vous avez terminé le tutoriel Exécuter PolyspaceBug Finder sur un serveur et charger les résultats dans l’interface web, un dossier testProject doit apparaître dans le volet Project Explorer de l'interface web Polyspace Access. Ce dossier contient un projet myFirstProject.

    Pour afficher les résultats du projet, cliquez sur le bouton Review une fois myFirstProject sélectionné. La liste des défauts apparaît. La colonne Information indique l’impact des défauts. Dans ce tutoriel, seuls les défauts à fort impact sont exportés sous forme de pièces jointes ensuite envoyées par e-mail.

  • Vous devez être en mesure d'interagir avec l'interface Polyspace Access à partir de la ligne de commande. Par exemple, accédez à polyspaceserverroot\polyspace\bin et saisissez :

    polyspace-access login -list-project

    Ici, polyspaceserverroot est le dossier d’installation de Polyspace Bug Finder™ Server™, par exemple, C:\Program Files\Polyspace Server\R2025b. La variable login fait référence à la combinaison d’options suivante. Vous fournissez ces options à chaque utilisation de la commande polyspace-access.

    -host hostName -port portNumber -login username -encrypted-password pwd

    Ici, hostName est le nom du serveur web Polyspace Access. Dans le cas d’un serveur hébergé localement, utilisez localhost. portNumber est le numéro de port en option du serveur. Si vous omettez le numéro de port, 9443 est utilisé. username et pwd font référence à votre nom d’utilisateur et à une version cryptée de votre mot de passe. Pour créer un mot de passe crypté, saisissez :

    polyspace-access -encrypt-password

    Copiez le mot de passe crypté et fournissez-le avec l'option lors des utilisations ultérieures de la commande polyspace-access.

Exporter les résultats pour les intégrer en tant que pièces jointes à un e-mail

Vous pouvez exporter tous les résultats dans un projet ou seulement certains types de résultats.

Ouvrir une fenêtre de commande. Accédez au dossier dans lequel vous souhaitez exporter les résultats.

  • Pour exporter tous les résultats, saisissez ce qui suit :

    polyspace-access login -export testProject/myFirstProject -output .\result.txt

  • Pour n’exporter que les défauts à fort impact, saisissez ce qui suit :

    polyspace-access login -export testProject/myFirstProject -defects High -output .\result_high_impact.txt

Ouvrez chaque fichier texte dans un utilitaire de visualisation de feuilles de calcul du type Microsoft® Excel®. Dans le premier fichier, vous voyez tous les défauts, mais dans le deuxième, vous ne voyez que les défauts à fort impact. Au lieu de -defects High, vous pouvez appliquer d’autres filtres. Par exemple :

  • Pour n‘afficher que les nouveaux défauts apparus postérieurement à l'analyse précédente du même projet, utilisez l'option -new-findings.

  • Pour appliquer un ensemble de filtres plus précis, vous pouvez utiliser les objectifs de qualité des logiciels (SQO). Les objectifs de qualité des logiciels sont spécifiés par le biais d'un ensemble de niveaux de SQO de plus en plus stricts, numérotés de 1 à 6. Vous pouvez personnaliser les exigences de chaque niveau dans l'interface web Polyspace Access, puis utiliser l'option -open-findings-for-sqo avec le numéro de niveau pour exporter uniquement les résultats qui doivent être examinés pour répondre aux exigences. Voir aussi Evaluate Polyspace Bug Finder Results Against Bug Finder Quality Objectives.

Pour afficher toutes les options de filtrage, saisissez :

polyspace-access -h -export

Vous pouvez configurer votre utilitaire de messagerie pour envoyer ces fichiers exportés en pièce jointe.

Si nécessaire, vous pouvez également appliquer des filtres supplémentaires aux fichiers exportés à l'aide d'utilitaires de recherche et de remplacement. Par exemple, utilisez des utilitaires de recherche et de remplacement dans le fichier de résultats pour inclure uniquement les résultats provenant de fichiers et de fonctions spécifiques. Dans Linux®, vous pouvez utiliser grep et sed pour ne conserver que les résultats dans des fichiers spécifiques.

Au lieu d'exporter vers des fichiers texte, vous pouvez également générer des rapports au format PDF ou Word en utilisant des modèles de rapport prédéfinis. Pour plus d’informations, consultez polyspace-report-generator.

Affecter des propriétaires et exporter des résultats affectés

Vous pouvez affecter des propriétés aux résultats dans des fichiers ou des dossiers spécifiques. Vous pouvez alors exporter un fichier de résultats distinct par propriétaire et envoyer un e-mail à chaque propriétaire avec le fichier de résultats correspondant en pièce jointe.

Vous pouvez affecter des propriétaires dans l’interface web Polyspace Access ou à partir de la ligne de commande.

Dans ce tutoriel, tous les résultats du fichier numerical.c sont affectés à jsmith et tous les résultats du fichier dataflow.c, à jboyd.

polyspace-access login -set-unassigned-findings testProject/myFirstProject -owner jsmith -source-contains numerical.c
polyspace-access login -set-unassigned-findings testProject/myFirstProject -owner jboyd -source-contains dataflow.c

Une fois l’affectation effectuée, exportez un fichier de résultats par propriétaire.

polyspace-access login -export testProject/myFirstProject -output .\results.txt -output-per-owner

Ces fichiers contiennent les résultats exportés :

  • results.txt contient tous les résultats.

  • results_jsmith.txt et results_jboyd.txt contiennent les résultats affectés à jsmith et à jboyd respectivement.

  • results.txt.owners.list contient la liste des propriétaires, dans ce cas :

    jsmith
    jboyd

Avant d'affecter des propriétaires aux résultats, utilisez l'option -dryrun pour effectuer un essai. Sans effectuer l'affectation, l'option affiche les fichiers dont les résultats sont affectés et le propriétaire auquel les résultats sont affectés.

Voir aussi

(Polyspace Access) | (Polyspace Access) | (Polyspace Access)