次の方法で共有


テスト 計画、テスト スイート、テスト ケースをコピーまたは複製する

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

いくつかのツールでは、テスト 計画、テスト スイート、テスト ケースなどのテスト 項目のコピー、複製、またはインポート操作がサポートされています。 テスト ケースでは、テストを実行し、機能の実装またはバグ修正を検証するために実行する手順について説明します。 テスト スイートは、テスト ケースと、必要に応じて他のテスト スイートを特定の順序にグループ化します。 テスト 計画では、特定のイテレーションまたはリリースに対して実行するテスト スイートのコレクションを定義します。

各テスト ケースは、特定の動作を確認するように設計されています。 テスト ケースは 1 つ以上のテスト スイートに属している可能性があります。ただし、テスト スイートは 1 つのテスト 計画にのみ属することができます。

一般に、すべての主要なプロジェクト マイルストーンのテスト計画を作成する必要があります。 テスト項目のコピー、複製、またはインポート操作は、次のシナリオをサポートします。

  • 既存のテスト計画に基づいて新しいスプリントまたはリリースのテスト計画を定義する
  • 同じプロジェクトまたは異なるプロジェクト内のテスト 計画間でテスト スイートをインポートする
  • 異なるテスト スイートとテスト 計画で使用するテスト ケースをコピーする
  • プロジェクト間でテスト オブジェクトを共有する
  • プロジェクトを 1 つのプロジェクトに統合するために、テスト オブジェクトを別のプロジェクトに移動する

詳細については、「 テスト オブジェクトと用語の概要を参照してください。

前提条件

  • アクセス レベル:

  • Permissions: テスト関連の成果物を追加または編集するには:

    • このノードの作業項目を編集対応する Area Path の下で Allow に設定されたアクセス許可を編集して、テスト 計画、テスト スイート、テスト ケース、またはその他のテスト ベースの作業項目の種類を追加または変更します。
    • テスト プラン対応する Area Path の下で Allow に設定されたアクセス許可を管理し、ビルドやテストの設定などのテスト 計画のプロパティを変更します。
    • テスト スイート対応する Area Path の下で Allow に設定されたアクセス許可を管理し、テスト スイートの作成と削除、テスト スイートのテスト ケースの追加と削除、テスト スイートに関連付けられているテスト構成の変更、テスト スイート階層の変更 (テスト スイートの移動) を行います。

詳細については、「 Manual テストアクセスとアクセス許可を参照してください。

TCM コマンド ライン ツールを使用する

TCM コマンド ライン ツールを使用するには、次の項目が配置されている必要があります。

  • Visual Studio 2017 Professional 以前のバージョンがインストールされています。 TCM には、コマンド プロンプトと次のディレクトリからアクセスします。

    • %programfiles(x86)%\Microsoft Visual Studio\2017\Professional\Common7\IDE
    • %programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE
    • %programfiles(x86)%\Microsoft Visual Studio 14.0\Common7\IDE
  • TCM コマンドを実行するには、 /collection パラメーターと /teamproject パラメーターを指定し、必要に応じて /login します。

    パラメーター 説明
    /徴収:CollectionURL 必須。 チーム プロジェクト コレクションの URI を指定します。 URI の形式は次のとおりです。
    - Azure DevOps Services の場合: http://dev.azure.com/OrganizationName
    - Azure DevOps Server の場合: http://ServerName:Port/VirtualDirectoryName/CollectionName。 仮想ディレクトリが使用されていない場合、URI の形式は次のようになります:http://ServerName:Port/CollectionName
    /teamproject:project 必須。 自動テストを複製またはインポートするテスト オブジェクトを含むプロジェクトの名前。
    /login:username,[password] 省略可能。 有効な Azure DevOps ユーザーの名前とパスワード、およびコマンドを実行するアクセス許可を持つユーザーを指定します。 Windows 資格情報に適切なアクセス許可がない場合、または基本認証を使用している場合、またはドメインに接続していない場合は、このオプションを使用します。
  • アクセスする 1 つ以上のプロジェクトの有効なメンバーであり、実行するコマンドに基づいて必要なアクセス許可を持っている必要があります。 詳細については、「 Manual テストアクセスとアクセス許可を参照してください。

  • テスト オブジェクトを複製またはインポートするためにテスト 計画とテスト スイートを追加するために必要なのと同じアクセス レベルが必要です。

サポートされているコピー、複製、およびインポート ツール

使用する Azure DevOps のバージョンに応じて、次の表に示すクライアントまたはツールを使用して、テスト 計画、テスト スイート、またはテスト ケースをコピー、複製、インポートできます。

クライアント/ツール

Test Plans

テスト スイート

テスト ケース


Web ポータル 1

✔️ Copy

✔️ Import

✔️ Copy ✔️ Bulk export/import

Web ポータル (グリッド)

Web ポータル (グリッド)

作業項目フォーム

✔️ Copy

Microsoft Test Manager1
(非推奨)

TCM CLI 2

✔️ Clone

✔️ Clone

REST API 3

✔️ Clone

✔️ Clone

Note

  1. Azure DevOps Server 2020 のリリースにより、Azure Test Plans の Web ポータルが大幅に更新されました。 コピー、複製、インポート、エクスポートをサポートするために、多くの新機能が追加されました。 概要については、「 Navigate テスト プラン」を参照してください。
  2. Visual Studio 2017 以前のバージョンをインストールすると、テスト ケース管理 (TCM) コマンド ライン ツールがインストールされます。 この記事の例には、Visual Studio 2017 バージョンで使用できるオプションが反映されています。 以前のバージョンでは、サポートされるオプションが少なくなる場合があります。 詳細については、TCM コマンド ライン ツールを使用した 作業を参照してください。
  3. テスト 計画とテスト スイートの複製をサポートする REST API コマンドが、Azure DevOps 2019 に対応するバージョン 5.0 で追加されました。
  1. Microsoft Test Manager (MTM) は、2020 年 1 月に Azure DevOps Services で使用するために非推奨となり、Azure DevOps Server 2020 以降のバージョンではサポートされていません。 現在のバージョンの Azure Test Plans では、MTM でサポートされているすべての機能がサポートされています。
  2. Visual Studio 2017 以前のバージョンをインストールすると、テスト ケース管理 (TCM) コマンド ライン ツールがインストールされます。 この記事の例には、Visual Studio 2017 バージョンで使用できるオプションが反映されています。 以前のバージョンでは、サポートされるオプションが少なくなる場合があります。 詳細については、「 TCM コマンド ライン ツールを使用した作業を参照してください。

テスト 計画またはテスト スイートを一覧表示する

テスト 計画またはテスト スイートに関連するコピー、複製、またはインポート操作を実行する場合は、その一意の ID にアクセスすることが不可欠です。 この識別子を使用すると、使用する特定のプランまたはスイートを正確に対象にすることができます。 割り当てられた ID を知ることで、テスト プロセスを合理化し、テスト関連データの正確なレプリケーションまたは転送を確実に行うことができます。

テスト 計画、テスト スイート、またはその他のテスト オブジェクトの一覧を生成するには、次の手順を実行します。

  1. プロジェクトから Boards>Queries を選択します。
  2. クエリ エディターでパラメーター Work Item Type=Test Plan 入力します。 チーム プロジェクトに対して定義されているすべてのテスト 計画を一覧表示できます。
  3. Query across projects チェックボックスにチェックを入れます。 クエリには、すべてのプロジェクトに対して定義されているすべてのテスト プランが一覧表示されます。 詳細については、「作業項目クエリを定義する」を参照してください。
  4. クエリを実行します。

ヒント

テスト プラン、テスト スイート、テスト ケースは相互に関連付けられますが、作業項目クエリを使用してリレーションシップを表示することはできません。 リンクの種類では、テスト計画、テスト スイート、テスト ケースはリンクされません。 テスト ケースにリンクされるのは、共有ステップと共有パラメーターのみです。 また、テスト ケースは、テストするユーザー ストーリーやその他の作業項目にリンクします。

クエリ エディターのスクリーンショット。

テスト 計画をコピーまたは複製する

スプリントまたはリリースごとに新しいテスト 計画を作成する場合は、前のサイクルからテスト計画を複製すると便利です。 最小限の調整により、コピーされたテスト計画は新しいサイクルに適しています。 このプラクティスにより、計画プロセスが合理化され、イテレーション間の一貫性が確保されます。

複製は、アプリケーションを 2 つのバージョンに分岐する必要がある場合に特に便利です。 複製後、他のバージョンに影響を与えることなく、バージョンごとにテストを個別に変更できます。 これは、さまざまなアプリケーションバリアント間の分離を維持しながら、テスト作業を管理する効率的な方法です。

概念図、テスト計画の複製。

  1. プロジェクトから Test Plans>Test plans を選択します。

  2. コピーするテスト 計画を Mine または All ページから選択します。

  3. [その他 アクション>Copy テスト プランを選択します。 このオプションを使用すると、プロジェクト内でテスト 計画をコピーまたは複製できます。

    [Test Plan More Actions]\(テスト計画のその他のアクション\) メニューの [Copy test plan]\(テスト 計画のコピー\) オプションを示すスクリーンショット。

  4. 新しいテスト 計画の名前を指定し、プランの Area PathIteration Path を選択します。

    [テスト 計画のコピー] ダイアログを示すスクリーンショット。

    • 次のガイダンスに基づいて、1 つまたは他のラジオ ボタンを選択します。
      • 既存のテスト ケースを参照する: 2 つの分岐を最終的にマージする場合は、このオプションを選択します。 この場合は、既に実装およびテストされている機能に対して同じ要件を維持します。
      • 既存のテスト ケースを複製する: 新しいテスト ケースを個別に維持する場合は、このオプションを選択します。新しいテスト ケースは既存の要件にリンクされることに注意してください。

    既存のテスト ケースを複製すると、コピーしたテスト ケースに、複製されたテスト 計画に指定された Area PathIteration Path が割り当てられます。

    詳細については、「 領域とイテレーション (スプリント) パスを参照してください。

    ページが更新され、新しくコピーされたテスト計画が表示されます。

    コピーされたテスト計画、ブラウザー ビューを示すスクリーンショット。

  5. 新しい領域と反復パスを使用するようにコピーしたすべての クエリ ベースのスイート を更新します。

  6. 自動テスト ケースを複製した場合は、ターゲット テスト計画でビルドを指定します。

Note

この機能は、Azure DevOps Server 2019 以前のバージョンの Web ポータルではサポートされていません。 テスト 計画をコピーする機能には、Azure DevOps Server 2020 以降が必要です。

テスト スイートのインポートまたは複製

新しいスプリントのテスト計画を作成するときは、多くの場合、前のスプリントのテストの一部を繰り返して、既に実装した機能が引き続き機能することを確認する必要があります。

概念図、テスト スイートのコピー。

Note

  • テスト スイートを新しいプロジェクトにインポート (Web) または複製 (TCM) すると、新しいスイートにはソース スイート内のすべてのテスト ケースのコピーが含まれます。 ただし、以前のテストの実行、関連するバグ、古い結果などの履歴データは保持されません。
  • テスト ケースによって参照される共有ステップも複製され、コピー先プロジェクトに作成されます。
  • 同じテスト 計画との間でテスト ケースを複製することはできません。別のスイートに対しても同様です。 このシナリオを実現するには、最初にテスト ケースを別の一時的なテスト計画に移動する必要があります。 次に、一時的なテスト計画をソース 計画として使用し、ID を移行先テスト計画の場所に配置して、テスト ケースを元のテスト 計画に複製します。 テスト ケースに存在する共有ステップも、このプロセスで複製されます。

Azure Test Plans を使用している場合は、あるテスト 計画から現在のプロジェクト内の別のテスト 計画にテスト スイートをインポートできます。 テスト計画が同じプロジェクト内にあるかどうかは関係ありません。 このプロセスには、テスト スイートのコピーまたは複製が含まれるため、新しいテスト スイートが作成されます。 さらに、サブテスト スイートも複製されます。 テスト スイートによって参照されるテスト ケースは重複しません。代わりに、複製されたテスト スイートによって参照されます。

tcm suites /listを使用すると、プロジェクトに対して定義されているすべてのテスト スイートを一覧表示できます。

異なるスイートとプランで同じテスト ケースを使用するには、 Grid ビューを使用してテスト ケースをコピーして貼り付けます。

  1. プランのテスト>プランのテストを選択します。

  2. Mine または All ページから、テスト スイートをインポートするテスト 計画を選択します。

  3. [その他 アクション>Copy テスト プランを選択します。 このオプションを使用すると、プロジェクト内でテスト 計画をコピーまたは複製できます。

    テスト スイートの [その他のアクション] メニューの [テスト スイートのインポート] オプションを示すスクリーンショット。

  4. 開いたダイアログで、テスト計画が別のプロジェクト内にある場合は、プロジェクトを選択します。 それ以外の場合は、テスト プラン名または ID とテスト スイート名または ID を入力します。 ドロップダウン メニューから名前または ID を選択することもできます。

  5. インポートを作成 します。 テスト 計画から一度にインポートできるスイートは 1 つだけです。

    テスト計画ダイアログからのスイートのインポートを示すスクリーンショット。

    次のメッセージが表示されます。

    インポート スイートによって開始されたメッセージを示すスクリーンショット。

  6. インポート操作が完了すると、次のメッセージが表示されます。 Refresh を選択してブラウザーを更新します。

    [Import suites completed]\(スイートのインポート完了\) メッセージを示すスクリーンショット。

    新しく追加されたテスト スイートが表示されます。

    インポートされたテスト スイートが表示されているスクリーンショット。

Note

この機能は、Azure DevOps Server 2019 以前のバージョンの Web ポータルではサポートされていません。 テスト スイートをインポートする機能には、Azure DevOps Server 2020 以降のバージョンが必要です。

テスト ケースのコピー

Web ポータルから、プロジェクトまたは別のプロジェクト内からテスト スイートにテスト ケースをコピーしたり、 Grid ビューを使用してテスト ケースを コピーして貼り付けたりすることができます あるスイートから別のスイートにコピーして貼り付けることができます。 必要に応じて、テスト ケースを一括してインポートおよびエクスポートできます。

テスト ケースは、プロジェクト内、または組織内またはコレクション内の別のプロジェクトから柔軟にコピーできます。 さらに、コピープロセス中にすべてのリンクと添付ファイルを含めることもできます。

  1. プランのテスト>プランのテストを選択します。

  2. Mine または All ページから、コピーする 1 つ以上のテスト ケースを含むテスト 計画を選択します。

  3. コピーする 1 つ以上のテスト ケースを含むテスト スイートを選択します。

  4. Define ページで、コピーするすべてのテスト ケースのチェック ボックスをオンにします。

  5. [その他のアクション]>Copy テスト ケースを選択します。

    [テスト ケースのその他のアクション] メニューの [テスト ケースのコピー] オプションを示すスクリーンショット。

  6. ドロップダウン メニューから [プロジェクト] を選択し、テスト プラン名または ID とテスト スイート名または ID を入力します。 ドロップダウン メニューから名前または ID を選択することもできます。

    [テスト ケースのコピー] ダイアログを示すスクリーンショット。

  7. (省略可能) 既存のリンクを含む のチェック ボックスをオンにして 既存の添付ファイルを除外します

  8. コピーを作成 します。

    バックグラウンド コピー操作は、選択したテスト ケースの数量と複雑さによって異なります。 完了すると、操作の成功を確認する通知と、コピーしたテスト ケースが存在するテスト スイートへのリンクが送信されます。

テスト ケースのコピーと貼り付け (グリッド ビュー)

テスト ケースを管理する場合、コピーと貼り付けは、さまざまなスイートとプランで同じテストを再利用するための貴重な手法として機能します。 たとえば、包括的なテスト スイートがあり、別のスイート内にテストのより重点的なサブセットを作成するシナリオを考えてみましょう。 Define>Grid ビューでは、テスト ケースの編集と異なるテスト スイートへのコピーの両方がサポートされます。 詳細については、「 テスト ケースの作成」を参照してください。グリッド ビューを使用してテスト ケースを編集する

Internet Explorer、Microsoft Edge、または Chrome ブラウザーから、テスト プランとテスト スイートの Grid ビューから別のテスト プランとテスト スイートにテスト ケースをコピーできます。

  1. Test Plans>Test plans ページで、コピーする 1 つ以上のテスト ケースを含むテスト スイートを選択します。 [ Define タブで、 Grid ビューを選択します。

  2. コピーする行を強調表示し、「ctrl+ C」と入力します。

    グリッド ビューからテスト ケースをコピーするを示すスクリーンショット。

  3. 同じプランまたは異なるプランから別のテスト スイートを選択し、 CTRL+ Vで貼り付けます。 別のスイートを選択しない場合、各スイートはテスト ケースへの参照を 1 つしか持つことができないため、貼り付けるときに何も起こりません。

  4. [テスト ケース 保存] を選択

    新しいテスト ケースは、新しい ID が割り当てられた状態で保存されます。

    保存されたテスト ケースがグリッド ビューに貼り付けされていることを示すスクリーンショット。

テスト ケースの一括インポートまたはエクスポート

Web ポータルから、テスト ケースの一括インポートまたはテスト スイートへのエクスポートを実行できます。 テスト ケースは、コンマ区切り値 (CSV) ファイルで定義されます。

テスト ケースのエクスポート

  1. Test Plans>Test plans ページで、エクスポートするテスト ケースを含むテスト スイートを含むテスト 計画を選択します。

  2. 省略可能。 Column オプションを選択ダウンロード ファイルに含めるフィールドを追加します。

  3. テスト スイートのすべてのテスト ケースをエクスポートするには、[ テスト ケースを CSV にエクスポートするを選択します。

    選択したテスト スイートからのテスト ケースのエクスポートのスクリーンショット。

    テスト スイートのテスト ケースのサブセットをエクスポートするには、エクスポートするテスト ケースを選択し、 その他のオプションを選択し、 テスト ケースを CSV にエクスポートを選択します。

    選択したテスト ケースのスクリーンショット。テスト ケースを CSV にエクスポートします。

  4. エクスポートされた CSV ファイルが Downloads フォルダーに表示されます。

テスト ケースのインポート

  1. Test Plans>Test plans から、テスト ケースをインポートするテスト スイートを含むテスト 計画を選択します。

    選択したテスト スイートへのテスト ケースのインポートのスクリーンショット。

  2. 開いているダイアログからインポートするファイルを選択し、 Import を選択します。

    [テスト ケースのインポート] ダイアログを示すスクリーンショット。

  3. 確認 を選択します。 テスト スイートで既に定義されているテスト ケースを指定すると、一部の要素がインポート中に書き込まれる可能性があります。

自動テスト ケースのインポート (TCM)

自動テスト ケースをテスト スイートにインポートするには、 tcm testcase /importを使用します。 テストを含むテスト アセンブリの.dll ファイルを指定する必要があります。

tcm testcase /import /collection:teamprojectcollectionurl /teamproject:project
             /storage:path
             [/maxpriority:priority]
             [/minpriority:priority]
             [/category:filter]
             [/syncsuite:id [/include]]
             [/login:username,[password]]
パラメーター 説明
/storage:path インポートする自動テストを含むテスト アセンブリのパスと名前を指定します。
/maxpriority:priority 省略可能。 テスト メソッドの最大優先度に基づいて、インポートするテストを指定します。 たとえば、パラメーターが /maxpriority:1されている場合、テスト メソッドの優先度属性が 1 以下のテストのみが、アセンブリからテスト ケースとしてインポートされます。
/minpriority:priority 省略可能。 テスト メソッドの最小優先度に基づいて、インポートするテストを指定します。 たとえば、パラメーターが /minpriority:2の場合、テスト メソッドの優先度属性が 2 以上のテストのみが、アセンブリからテスト ケースとしてインポートされます。
/category:filter 省略可能。 テスト アセンブリ内の各テスト メソッドのカテゴリに基づいて、インポートするテストを指定します。 このパラメーターを /syncsuite と共に使用して、特定のカテゴリのテストを特定のテスト スイートにインポートできます。
テスト カテゴリの詳細については、「 テスト エクスプローラーで単体テストを実行する」を参照してください。
/syncsuite:id 省略可能。 インポートするテスト ケースを追加するテスト 計画のテスト スイートのスイート ID を指定します。 このスイートは、動的スイートまたはクエリベースのスイートにすることはできません。 追加されたテストを更新するために同期するテスト スイートを指定した場合、インポートされていないテストはテスト スイートから削除されますが、テスト 計画自体からは削除されません。

/collection/teamproject、および/loginパラメーターの説明については、「TCM コマンド ライン ツールを使用した作業」を参照

制限事項

  • テスト ケースの状態列は、 Design 状態である必要があります。
  • テスト ケースのタイトル length128 文字を超えてはなりません。
  • インポートとエクスポート中に作成された JSON オブジェクトには 20 MB の制限があります。 インポートが失敗した場合は、テスト ケースの小さなサブセットで操作を試してください。
  • インポートを実行するユーザーは、インポートまたはエクスポートを計画しているテスト計画とテスト スイートの領域と反復パスに対するアクセス許可を持っている必要があります。
  • 関連するリンク数がテスト ケースで 1000 を超えると、コピーインポート 操作は失敗します。

REST API

次の REST API を使用して、テスト 計画とテスト スイートをコピーおよび複製できます。

次のステップ