Bug 趋势示例报告

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

Bug 趋势报告有助于了解团队关闭活动 bug 的方式。 本文介绍如何在一段时间内显示处于给定状态的 bug 数。 下图显示了 bug 趋势报告的示例。

Bug 趋势折线图报表的屏幕截图。

注意

本文假设你阅读 了使用 OData 查询 的示例报表概述,并基本了解 Power BI。

先决条件

  • Access:至少是具有基本访问权限的项目的成员。
  • 权限: 默认情况下,项目成员有权查询 Analytics 和创建视图。
  • 有关服务和功能启用和常规数据跟踪活动的其他先决条件的详细信息,请参阅 访问 Analytics 的权限和先决条件。

示例查询

以下查询返回实体集中的数据 WorkItemSnapshot ,以支持生成趋势报告。

注意

若要确定用于筛选或报表的可用属性,请参阅Azure Boards元数据参考。 可以使用 提供的 EntitySetNavigationPropertyBinding Path 值下EntityType的任何Property值筛选查询或返回属性。 每个对应 EntitySet 一个 EntityType。 有关每个值的数据类型的详细信息,请查看为相应 EntityType值提供的元数据。

按区域路径筛选的 Bug 趋势

以下查询按区域路径和开始日期筛选 bug。

将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 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

替换字符串和查询明细

将以下字符串替换为值。 不要在替换中包含括号 {} 。 例如,如果组织名称为“Fabrikam”,请将 替换为 {organization}Fabrikam,而不是 {Fabrikam}

  • {organization} - 组织名称
  • {project} - 对于跨项目查询,团队项目名称或完全省略“/{project}”
  • {areapath} - 区域路径。 示例格式: Project\Level1\Level2
  • {startdate}- 在给定日期或给定日期之后启动报表,格式为: YYYY-MM-DDZ 例如: 2022-04-01Z 表示 2022-April-01。 不要用引号引起来。

查询明细

下表描述了查询的每个部分。

查询部件

描述

$apply=filter(

filter 语句子句的开头。

WorkItemType eq 'Bug'

返回 Bug。

and State ne 'Closed'

省略处于“已关闭”状态的 bug。

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

返回指定的'{areapath}'特定区域路径下的工作项。 若要按团队名称进行筛选,请使用 filter 语句 Teams/any(x:x/TeamName eq '{teamname})'

and DateValue ge {startdate}

指定日期或之后的开始趋势。 示例: 2021-04-01Z 表示 2021-April-01。

)

Close filter() 子句。

/groupby(

Start groupby() 子句。

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

分组依据 DateValue、用于趋势以及要报告的任何其他字段。

aggregate($count as Count)

通过计算与每个日期的条件匹配的 bug 进行聚合。

)

Close groupby() 子句。

Teams 筛选的 Bug 趋势

可以按团队名称而不是区域路径查询 bug 趋势。

将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 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

每个星期五包含快照的 Bug 趋势

使用每周快照可减少提取到 Power BI 中的数据量,并提高查询性能。

将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 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

每月第一个快照的 Bug 趋势

使用每月快照可减少提取到 Power BI 中的数据量,并提高查询性能。

将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 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

(可选) 重命名查询

可以将默认查询标签 Query1 重命名为更有意义的标签。 只需在 “查询设置” 窗格中输入新名称。

Power BI 查询菜单选项的屏幕截图,重命名查询。

在 Power BI 中展开列

Area/AreaPath展开和Iteration/IterationPath列。 展开列会将记录平展到特定字段中。 若要了解如何操作,请参阅 转换分析数据以生成 Power BI 报表

(可选)重命名字段

展开列后,可能需要重命名一个或多个字段。 例如,可以将列 AreaPath 重命名为 Area Path。 若要了解如何操作,请参阅 “重命名列字段”。

关闭查询并应用更改

完成所有数据转换后,从“开始”菜单中选择“关闭和应用”以保存查询并返回到 Power BI 中的“报表”选项卡。

Power Query 编辑器“关闭并应用”选项的屏幕截图。

创建折线图报表

  1. 在 Power BI 中,选择可视化效果下的折线图报表。

    Bug 趋势报表的 Power BI 可视化效果和字段选择的屏幕截图。

  2. 将“添加到 DateValueX 轴,然后DateValue右键单击并选择DateValue,而不是 Date Hierarchy

  3. 添加到 Count Y 轴,然后 Count 右键单击并确保 已选择 Sum

  4. 添加到State图例

显示示例报表。

示例 Bug 趋势折线图报表的屏幕截图。

修改报表格式视觉对象

  • 若要修改报表的格式元素,请选择“ 设置视觉对象 格式”图标,然后修改一个或多个可用设置。 例如,可以修改趋势图中使用的线条颜色。

    Bug 趋势报表的 Power BI 格式视觉选择的屏幕截图。

有关详细信息,请参阅 格式设置窗格入门。