次の方法で共有


手動テスト スイート集計ビューのサンプル レポート

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

1 つ以上のテスト スイートの実行状態を報告できます。 この記事の情報を使用して作成するレポートは、次の図のようになります。

Power BI テスト スイート集計ビュー - レポートのスクリーンショット。

次の図に示すように、テスト スイートは階層構造の組織内に配置できます。 示されているように、オーストラリアアジアというラベルの 2 つのテスト スイートの下に同じ名前の 3 つのテスト スイートがあります。 この記事では、特定のテスト スイート レベルのデータを集計する方法について説明します。

集計ビューの Power BI テスト 計画構造のスクリーンショット。

重要

Power BI の統合と Analytics サービスの OData フィードへのアクセスは、Azure DevOps Services および Azure DevOps Server 2020 以降のバージョンで一般提供されています。 この記事で提供されるサンプル クエリは、Azure DevOps Server 2020 以降のバージョンに対してのみ有効であり、v3.0-preview 以降のバージョンによって異なります。 これらのクエリを使用し、フィードバックをお寄せください。

前提条件

  • 分析データを表示してサービスにクエリを実行するには、 Basic アクセス以上のプロジェクトのメンバーである必要があります。 既定では、すべてのプロジェクト メンバーには、Analytics のクエリと 分析ビューの定義に対するアクセス許可が付与されます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件については、「 Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。

Note

この記事では、「 OData クエリを使用したサンプル レポートの概要」を 読み、Power BI の基本的な理解があることを前提としています。

レポートで有用なデータを生成するには、チームがテスト計画を管理するために次のアクティビティを実行する必要があります。

  • テスト 計画、テスト スイート、およびテスト ケースを定義します。 状態を指定します。 テスト スイートを実行するには、テスト スイートが進行中の状態である必要があります。 テスト ケースを実行するには、準備完了状態である必要があります。 詳細については、「テスト計画とテスト スイートの作成」および「手動テスト ケース作成」を参照してください。

  • 手動テストを実行し、結果を確認します。 テスト ケースの各検証ステップの結果を合格または失敗としてマークします。 詳細については、「手動テストの実行」を参照してください

    Note

    テスト 担当者は、テスト ステップが検証テスト ステップの場合、状態をマークする必要があります。 テストの全体的な結果には、マークされたすべてのテスト ステップの状態が反映されます。 そのため、テスト ステップが失敗としてマークされているか、マークされていない場合、テストの状態は失敗になります。

サンプル クエリ

エンティティ セットの次のクエリを使用して、 TestPoints 集計されたテスト スイート レポートを作成できます。

Note

フィルターまたはレポートの目的で使用可能なプロパティを決定するには、「Test Plans Analytics のメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のPropertyEntityTypeNavigationPropertyBinding Pathの値のいずれかを使用してプロパティをEntitySet返したりできます。 各 は EntitySetEntityType対応します。 各値のデータ型の詳細については、対応する EntityTypeに提供されているメタデータを確認してください。

以下に示す Power BI クエリは、[ データの取得- 空の>クエリ ] ウィンドウに直接貼り付けることができます。 詳細については、「 OData クエリを使用したサンプル レポートの概要」を参照してください。

let 
    Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/TestPoints?" 
        &"$apply=filter((TestSuite/TestPlanTitle eq '{testPlanTitle}' and TestSuite/IdLevel3 ne null))" 
            &"/groupby(" 
                &"(TestSuite/TitleLevel3)," 
                &"aggregate(" 
                    &"$count as TotalCount," 
                    &"cast(LastResultOutcome eq 'Passed', Edm.Int32) with sum as PassedCount," 
                    &"cast(LastResultOutcome eq 'Failed', Edm.Int32) with sum as FailedCount," 
                    &"cast(LastResultOutcome eq 'None', Edm.Int32) with sum as  NotRunCount," 
                    &"cast(LastResultOutcome ne 'None', Edm.Int32) with sum as RunCount" 
            &")" 
        &")" 
        &"/compute(" 
            &"RunCount mul 100 div TotalCount as RunPercentage," 
            &"NotRunCount mul 100 div TotalCount as NotRunPercentage," 
            &"iif(TotalCount gt NotRunCount, PassedCount mul 100 div RunCount,0) as PassedPercentage," 
            &"iif(TotalCount gt NotRunCount, FailedCount mul 100 div RunCount,0) as FailedPercentage" 
        &")" 
        &"&$orderby=RunPercentage desc", null, [Implementation="2.0"]) 
in 
    Source 

置換文字列とクエリの内訳

次の文字列を実際の値に置き換えます。 置換に角かっこを {} 含めないでください。 たとえば、組織名が "Fabrikam" の場合は、 ではなく {Fabrikam}を にFabrikam置き換えます{organization}

  • {organization} - 組織名
  • {project} - プロジェクト間クエリの場合は、チーム プロジェクト名を指定するか、"/{project}" を完全に省略します
  • {testPlanTitle} - データを返すテスト計画のタイトル。

クエリの内訳

次の表では、クエリの各部分について説明します。

クエリ パーツ

説明

filter((TestSuite/TestPlanTitle eq '{testPlanTitle}' and TestSuite/IdLevel3 ne null))

選択したテスト計画のみのデータを返します。 また、レベル 3 以降のテスト スイートのデータも返します。 次のような filter((TestSuite/TestPlanTitle eq '{testPlanTitle1}' or TestSuite/TestPlanTitle eq '{testPlanTitle2}' and TestSuite/IdLevel3 ne null))句を使用して複数のプランを追加できます。 テスト スイート、テスト構成に関連するその他のフィルターをここで適用することもできます。

/groupby((TestSuite/TitleLevel3),

グループ化するテスト スイート。 テスト スイート階層のレベル 3 にあるすべての個別のテスト スイートのレポートを取得する場合は、このクエリ パーツを指定できます。 レベル番号は 1 から 14 に変更できます。 同じ名前のテスト スイートを分離する場合は、 /groupby((TestSuite/TitleLevel3, TestSuite/IdLevel3), 同じ名前のテスト スイートが 2 つある場合でも、2 つの異なる ID を持つ 2 つの異なるエントリとして表示されるようにすることができます。

/aggregate($count as TotalCount,

カウントが次の TotalCount値を持つフィルター処理されたテスト ポイント全体のデータを集計します。

cast(LastResultOutcome eq 'Passed', Edm.Int32) with sum as Passed,

集計中、型キャストテストは、最新の実行結果 'Passed' を 1 にポイントし、それらを 'Passed' メトリックとして合計します。

/compute(Executed mul 100 div TotalCount as ExecPct

計算されたメトリック ExecPct を指定します (実行されたテスト ポイント/合計カウント * 100)。

(省略可能)クエリの名前を変更する

既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。

Power BI クエリ メニュー オプションのスクリーンショット。クエリの名前を変更します。

Power Query エディターの列を展開する

レポートを作成する前に、列を展開してレコードを TestSuite 特定のフィールドにフラット化する必要があります。 方法については、「Analytics データを変換して Power BI レポートを生成する」を参照してください

Power BI で、次の手順を実行します。

完了したら、列の名前を変更できます。

  1. 展開 TestSuite

    • 展開ボタンを選択します。

      Power BI Expand Test Suite

    • フラット化するフィールドを選択します。

      フラット化する Power BI のフィールドの選択

    • テーブルにエンティティ フィールド TestSuite.IdLevel3 が含まれるようになりました TestSuite.TitleLevel3

      Power BI 拡張テスト スイート

  2. 列ヘッダーを右クリックし、[名前の変更]を選択 します。..

    Power BI 変換データの [列の名前の変更] のスクリーンショット。

列のデータ型を変更する

Power Query エディターから、TotalCount、RunCount、Passed などの数値を含むすべての列を選択し、[変換] メニューから [データ型] を選択し、[整数] を選択します。 データ型の変更の詳細については、「 Analytics データを変換して Power BI レポートを生成する」の「列データ型の変換」を参照してください

(省略可能)列フィールドの名前を変更する

列フィールドの名前を変更できます。 たとえば、列NotApplicableの名前を 、または TotalCountTotal Count〗 にNot Applicable変更できます。 方法については、「列フィールドの名前を変更する」を参照してください

クエリを閉じて変更を適用する

すべてのデータ変換が完了したら、[ホーム] メニューから [閉じる] & [適用] を選択してクエリを保存し、Power BI の [レポート] タブに戻ります。

[閉じて適用] オプションPower Query エディタースクリーンショット。

テーブル レポートを作成する

  1. [視覚化] [テーブル] を選択 します
  2. [列] の下の [NotRunCount, , RunCount, PassedCount] をTotalCountドラッグ アンド ドロップTestSuite.TitleLevel3します
  3. [カウント] の集計として [合計]選択します

    Power BI の [集計として合計] を選択するスクリーンショット。

レポートは次の図のようになります。

Power BI サンプル テスト スイート集計ビュー - レポートのスクリーンショット。