Partager via


Exemple de rapport sur les tendances des bogues

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Les rapports de tendance des bogues sont utiles pour voir comment une équipe ferme des bogues actifs. Cet article vous montre comment afficher le nombre de bogues dans un état donné sur une période donnée. L’image suivante montre un exemple de rapport sur les tendances des bogues.

Capture d’écran du rapport de graphique en courbes de tendances de bogues.

Remarque

Cet article part du principe que vous lisez la vue d’ensemble des exemples de rapports à l’aide de requêtes OData et que vous avez une compréhension de base de Power BI.

Prérequis

  • Accès : être membre d’un projet avec au moins un accès de base .
  • Autorisations : par défaut, les membres du projet ont l’autorisation d’interroger Analytics et de créer des vues.
  • Pour plus d’informations sur les autres prérequis concernant l’activation du service et des fonctionnalités et les activités de suivi des données générales, consultez Autorisations et conditions préalables pour accéder à Analytics.

Exemples de requêtes

Les requêtes suivantes retournent des données de l’ensemble WorkItemSnapshot d’entités pour prendre en charge la génération de rapports de tendance.

Remarque

Pour déterminer les propriétés disponibles à des fins de filtre ou de rapport, consultez Informations de référence sur les métadonnées pour Azure Boards. Vous pouvez filtrer vos requêtes ou renvoyer des propriétés à l’aide de l’une Property des valeurs sous ou EntityType des NavigationPropertyBinding Path valeurs disponibles avec un EntitySet. Chaque EntitySet correspond à un EntityType. Pour plus d’informations sur le type de données de chaque valeur, passez en revue les métadonnées fournies pour le type de données correspondant EntityType.

Tendance de bogue filtrée par chemin d’accès à la zone

Les requêtes suivantes filtrent les bogues par chemin d’accès de zone et par date de début.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir une requête vide de données>. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports à l’aide de requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and DateValue ge {startdate}  "
            &") "
        &"/groupby( "
            &"(DateValue,State,WorkItemType,Priority,Severity,Area/AreaPath,Iteration/IterationPath,AreaSK), "
            &"aggregate($count as Count) "
            &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Chaînes de substitution et répartition des requêtes

Remplacez les chaînes suivantes par vos valeurs. N’incluez pas de crochets {} avec votre substitution. Par exemple, si le nom de votre organisation est « Fabrikam », remplacez par {organization}Fabrikam, et non {Fabrikam}par .

  • {organization} - Nom de votre organisation
  • {project} - Nom de votre projet d’équipe ou omettre entièrement « /{projet} » pour une requête inter-projets
  • {areapath} - Chemin d’accès de votre zone. Exemple de format : Project\Level1\Level2
  • {startdate} - Démarrez votre rapport pour les éléments terminés ou après une date donnée au format suivant : YYYY-MM-DDZ. Par exemple : 2022-04-01Z représente 2022-avril-01. Ne placez pas entre guillemets.

Répartition des requêtes

Le tableau suivant décrit chaque partie de la requête.

Composant de requête

Description

$apply=filter(

Début de la clause d’instruction de filtre.

WorkItemType eq 'Bug'

Renvoyer des bogues.

and State ne 'Closed'

Omettez les bogues dans un état fermé.

and startswith(Area/AreaPath,'{areapath}')

Retournez des éléments de travail sous un chemin d’accès de zone spécifique dans'{areapath}' lequel vous spécifiez. Pour filtrer par nom d’équipe, utilisez l’instruction Teams/any(x:x/TeamName eq '{teamname})'de filtre .

and DateValue ge {startdate}

Tendance de début sur ou après la date spécifiée. Exemple : 2021-04-01Z représente 2021-avril-01.

)

Clause Close filter() .

/groupby(

Clause Start groupby() .

(DateValue, State, WorkItemType, Priority, Severity, Area/AreaPath, Iteration/IterationPath),

Regroupez par DateValue, utilisé pour la tendance et tous les autres champs sur lesquelles vous souhaitez créer un rapport.

aggregate($count as Count)

Agréger en comptant les bogues qui correspondent aux critères de chaque date.

)

Clause Close groupby() .

Tendance de bogue filtrée par Teams

Vous pouvez rechercher des tendances de bogues par nom d’équipe plutôt que par chemin d’accès à la zone.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir une requête vide de données>. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports à l’aide de requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'Bug' "
            &"and State ne 'Closed' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}')"
            &"and DateValue ge {startdate}  "
            &") "
        &"/groupby( "
            &"(DateValue,State,WorkItemType,Priority,Severity,Area/AreaPath,Iteration/IterationPath,AreaSK), "
            &"aggregate($count as Count) "
            &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Tendance de bogue avec un instantané tous les vendredis

L’utilisation d’un instantané hebdomadaire réduit la quantité de données extraites dans Power BI et augmente les performances des requêtes.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir une requête vide de données>. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports à l’aide de requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and DateValue ge {startdate} "
            &"and Date/DayName eq 'Friday'  "
        &") "
        &"/groupby( "
            &"(DateValue,State,WorkItemType,Priority,Severity,Area/AreaPath,Iteration/IterationPath,AreaSK), "
            &"aggregate($count as Count) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Tendance de bogue avec un instantané sur le premier de chaque mois

L’utilisation d’un instantané mensuel réduit la quantité de données extraites dans Power BI et augmente les performances des requêtes.

Copiez et collez la requête Power BI suivante directement dans la fenêtre Obtenir une requête vide de données>. Pour plus d’informations, consultez Vue d’ensemble des exemples de rapports à l’aide de requêtes OData.

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
        &"$apply=filter( "
            &"WorkItemType eq 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and DateValue ge {startdate} "
            &"and Date/DayOfMonth eq 1  "
        &") "
        &"/groupby( "
            &"(DateValue,State,WorkItemType,Priority,Severity,Area/AreaPath,Iteration/IterationPath,AreaSK), "
            &"aggregate($count as Count) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Facultatif) Renommer la requête

Vous pouvez renommer l’étiquette de requête par défaut , Query1, en quelque chose de plus significatif. Entrez simplement un nouveau nom dans le volet Paramètres de requête .

Capture d’écran des options de menu de requête Power BI, renommer la requête.

Développer des colonnes dans Power BI

Développez les colonnes et Iteration/IterationPath les Area/AreaPath colonnes. Le développement des colonnes aplatit l’enregistrement dans des champs spécifiques. Pour en savoir plus, consultez Transform Analytics pour générer des rapports Power BI.

(Facultatif) Renommer des champs

Une fois que vous avez développé les colonnes, vous pouvez renommer un ou plusieurs champs. Par exemple, vous pouvez renommer la colonne AreaPath en Area Path. Pour savoir comment procéder, consultez Renommer les champs de colonne.

Fermez la requête et appliquez vos modifications

Une fois que vous avez terminé toutes vos transformations de données, choisissez Fermer & Appliquer dans le menu Accueil pour enregistrer la requête et revenir à l’onglet Rapport dans Power BI.

Capture d’écran de Éditeur Power Query’option Fermer et appliquer.

Créer le rapport de graphique en courbes

  1. Dans Power BI, choisissez le rapport de graphique en courbes sous Visualisations.

    Capture d’écran des sélections de visualisations et de champs Power BI pour le rapport sur les tendances des bogues.

  2. Ajoutez DateValue« à l’axe X, cliquez avec le bouton DateValue droit et sélectionnez DateValue au lieu de Date Hierarchy.

  3. Ajoutez Count à l’axe Y, cliquez avec le bouton Count droit et vérifiez que Sum est sélectionné.

  4. Ajouter State à la légende.

L’exemple de rapport s’affiche.

Capture d’écran du rapport de graphique en courbes des tendances de bogues.

Modifier les visuels de format de rapport

  • Pour modifier les éléments de format du rapport, choisissez l’icône Mettre en forme votre visuel (pinceau) et modifiez un ou plusieurs paramètres disponibles. Par exemple, vous pouvez modifier les couleurs de trait utilisées dans le graphique de tendances.

    Capture d’écran des sélections visuelles power BI Format pour le rapport sur les tendances des bogues.

Pour plus d’informations, consultez Prise en main du volet mise en forme.