バグ傾向のサンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
バグ傾向レポートは、チームがアクティブなバグをどの程度適切に終了しているかを確認するのに役立ちます。 この記事では、特定の状態にあるバグの数を一定期間にわたって表示する方法について説明します。 次の図は、バグの傾向レポートの例を示しています。
Note
この記事では、 OData クエリを使用したサンプル レポートの概要 Power BI の基本的な理解があることを前提としています。
前提条件
- Access:少なくとも Basic アクセス権を持つプロジェクトのメンバーである必要があります。
- Permissions: 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。
サンプル クエリ
次のクエリは、傾向レポートの生成をサポートするために、 WorkItemSnapshot
エンティティ セットからデータを返します。
Note
フィルターまたはレポートの目的で使用できるプロパティを確認するには、「Azure Boardsのメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
に指定されたメタデータを確認してください。
エリア パスでフィルター処理されたバグの傾向
次のクエリでは、バグをエリア パスと開始日でフィルター処理します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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" の場合は、 ではなく {Fabrikam}
を にFabrikam
置き換えます{organization}
。
{organization}
- 組織名{project}
- プロジェクト間クエリの場合は、チーム プロジェクト名を指定するか、"/{project}" を完全に省略します{areapath}
- エリア パス。 形式の例:Project\Level1\Level2
{startdate}
- 指定した日付以降に完了したアイテムのレポートを、YYYY-MM-DDZ
形式で開始します。 たとえば、2022-04-01Z
は 2022 年 4 月 1 日を表します。 引用符で囲む必要はありません。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリ パーツ
説明
$apply=filter(
filter ステートメント句の開始。
WorkItemType eq 'Bug'
バグを返します。
and State ne 'Closed'
Closed 状態のバグを省略します。
and startswith(Area/AreaPath,'{areapath}')
指定した特定の Area Path の下にある作業項目'{areapath}'
を返します。 チーム名でフィルター処理するには、filter ステートメント Teams/any(x:x/TeamName eq '{teamname})'
を使用します。
and DateValue ge {startdate}
指定した日付以降の傾向を開始します。 例: 2021-04-01Z は 2021 年 4 月 1 日を表します。
)
句 filter()
閉じます。
/groupby(
句 groupby()
開始します。
(DateValue, State, WorkItemType, Priority, Severity, Area/AreaPath, Iteration/IterationPath),
DateValue
でグループ化し、トレンドに使用し、レポートするその他のフィールドを指定します。
aggregate($count as Count)
各日付の条件に一致するバグをカウントして集計します。
)
句 groupby()
閉じます。
Teams でフィルター処理されたバグの傾向
エリア パスではなくチーム名でバグの傾向を照会できます。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
毎週金曜日にスナップショットが表示されるバグの傾向
週単位のスナップショットを使用すると、Power BI に取り込まれるデータの量が減り、クエリのパフォーマンスが向上します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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
毎月 1 日のスナップショットを含むバグの傾向
毎月のスナップショットを使用すると、Power BI に取り込まれるデータの量が減り、クエリのパフォーマンスが向上します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 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 で列を展開する
Area/AreaPath
列とIteration/IterationPath
列を展開します。 列を展開すると、レコードが特定のフィールドにフラット化されます。 方法については、「 Transform Analytics データを使用して Power BI レポートを生成するを参照してください。
(省略可能)フィールドの名前を変更する
列を展開したら、1 つ以上のフィールドの名前を変更できます。 たとえば、列 AreaPath
の名前を Area Path
に変更できます。 方法については、「 Rename 列フィールドを参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。
折れ線グラフ レポートを作成する
Power BI で、Visualizations で Line グラフ レポートを選択します。
X 軸に " を追加
DateValue
し、 ではなくDate Hierarchy
右クリックして選択DateValue
しますDateValue
。Count
を Y 軸に追加し、Count
を右クリックし、Sum が選択されていることを確認します。[凡例] にを追加
State
します。
レポートの例が表示されます。
レポート形式のビジュアルを変更する
レポートの書式要素を変更するには、 ビジュアルの書式設定 (ペイントブラシ) アイコンを選択し、1 つ以上の使用可能な設定を変更します。 たとえば、傾向グラフで使用される線の色を変更できます。
詳細については、「 書式設定ウィンドウの使用を開始する」を参照してください。