次の方法で共有


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

Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022

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

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

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

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

注釈

この記事のサンプル クエリには、Analytics OData フィードv3.0-preview 以降が必要です。 フィードバックを共有します。

カテゴリ Requirements
アクセス レベル - プロジェクトメンバー
- 少なくともベーシックアクセス。
アクセス許可 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。 サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。

注釈

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

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

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

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

    注釈

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

サンプル クエリ

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

注釈

フィルター処理またはレポートに使用できるプロパティを見つけるには、 Test Plans Analytics のメタデータ リファレンスを参照してください。 クエリをフィルター処理したり、プロパティを返したりするには、Propertyで定義されている任意のEntityType値、またはNavigationPropertyBinding Pathに一覧表示されている任意のEntitySet値を使用します。 各 EntitySet は、各プロパティのデータ型を文書化する EntityTypeにマップされます。

次のPower BIクエリをコピーして、Get Data>Blank Query ウィンドウに直接貼り付けます。 詳細については、「 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" の場合は、{organization}ではなく、Fabrikam{Fabrikam}に置き換えます。

  • {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 列を展開して、レコードを特定のフィールドにフラット化します。 詳細については、Transform Analytics データを参照してPower BIレポートを生成します

Power BIで、次の手順に従います。

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

  1. 展開する TestSuite

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

      Power BI テスト スイートの展開

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

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

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

      Power BIの拡張テストスイート

  2. 列ヘッダーを右クリックし、 Rename... を選択します。

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

列のデータ型を変更する

Power Query エディターで、TotalCountRunCountPassed。 [変換] メニューから [データ型] を選択し、[整数] を選択します。 データ型の変更の詳細については、「Transform Analytics データを使用してPower BIレポートを生成する」を参照してください。列データ型の変換

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

列フィールドの名前を変更して、わかりやすいものにすることができます。 方法については、「列フィールドの名前を変更」を参照してください。

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

すべてのデータ変換が完了したら、[ホーム] メニューから [閉じて適用] を選択します。 このアクションによりクエリが保存され、Power BIの Report タブに戻ります。

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

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

  1. [ Visualizationsで、[ Table] を選択します。
  2. TestSuite.TitleLevel3NotRunCountRunCountPassedCount、そしてTotalCountを、の下にドラッグアンドドロップします。
  3. 合計カウント の集計方法として選択します。

    Power BIで、集計として「合計」を選択したスクリーンショット.

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

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