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

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

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

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

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

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

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

前提条件

次のアクセス許可とアクセス レベルが必要です。

  • 基本 アクセス以上と、対応するエリア パスの下に作業項目を表示するアクセス許可。 詳細については、「プロジェクトまたはチームにユーザーを追加する」を参照してください。
  • Basic + Test Plans アクセス レベルを使用して、テスト 計画とテスト スイートを追加し、テスト成果物を削除し、テスト構成を定義します。 または、次 のいずれかの Visual Studio サブスクリプションを使用します
  • テスト関連の成果物を追加または編集するには、次のアクセス許可が必要です。
    • このノード権限セットの作業項目を編集して、対応するエリア パスの下で許可を設定し、テスト計画、テスト スイート、テスト ケース、またはその他のテストベースの作業項目の種類を追加または変更します。
    • ビルドやテストの設定などのテスト 計画のプロパティを変更するには、対応するエリア パスで [許可] に設定されたテスト プランのアクセス許可を管理します。
    • 対応するエリア パスの下で [許可] に設定されたテスト スイートのアクセス許可を管理して、テスト スイートの作成と削除、テスト スイートのテスト ケースの追加と削除、テスト スイートに関連付けられているテスト構成の変更、テスト スイート階層の変更 (テスト スイートの移動) を行います。

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

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 資格情報に適切なアクセス許可がない場合、または基本認証を使用している場合、または do に接続していない場合は、このオプションを使用メイン。
  • アクセスする 1 つ以上のプロジェクトの有効なメンバーであり、実行するコマンドに基づいて必要なアクセス許可を持っている必要があります。 詳細については、「手動テストアクセスとアクセス許可」を参照してください

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

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

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

クライアント/ツール

Test Plans

テスト スイート

テスト ケース


Web ポータル (グリッド)

Web ポータル (グリッド)

作業項目フォーム

✔️ コピー

Microsoft Test Manager1
(非推奨)

TCM CLI2

✔️ クローン

✔️ クローン

REST API3

✔️ クローン

✔️ クローン

Note

  1. Azure DevOps Server 2020 のリリースにより、Azure Test Plans の Web ポータルが大幅に更新されました。 コピー、複製、インポート、エクスポートをサポートするために、多くの新機能が追加されました。 概要については、「テスト 計画間の移動」を参照してください
  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>クエリを選択します。
  2. クエリ エディターでパラメーター Work Item Type=Test Plan を入力します。 チーム プロジェクトに対して定義されているすべてのテスト 計画を一覧表示できます。
  3. [プロジェクト間のクエリ] チェックボックスにチェックを入力します。 クエリには、すべてのプロジェクトに対して定義されているすべてのテスト プランが一覧表示されます。 詳細については、「作業項目クエリの定義」を参照してください
  4. クエリを実行します。

ヒント

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

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

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

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

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

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

  1. プロジェクトから [Test Plans Test plans]\(テスト 計画>のテスト計画\) を選択します。

  2. コピーするテスト計画を[鉱山]または[すべて]ページから選択します。

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

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

  4. 新しいテスト 計画の名前を指定し、計画の 領域パス反復パス を選択します。

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

    • 次のガイダンスに基づいて、1 つまたは他のラジオ ボタンを選択します。
      • 既存のテスト ケースを参照する: 2 つの分岐を最終的にマージする予定の場合は、このオプションを選択します。 この場合は、既に実装およびテストされている機能に対して同じ要件を維持します。
      • 既存のテスト ケースを複製する: 新しいユーザー ストーリーまたは要件を個別にメインする場合は、このオプションを選択します。 似た 2 つの異なるアプリケーションに分岐する場合は、もう一方のストーリーを変更せずに、1 つのユーザー ストーリーを変更できます。 このオプションを選択すると、新しいテスト ケースの独立した要件セットが作成されます。

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

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

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

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

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

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

Note

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

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

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

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

Note

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

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

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

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

  1. [Test Plans Test plans]\(テスト 計画>のテスト計画\) を選択します。

  2. [鉱山] ページまたは [すべて] ページから、テスト スイートをインポートするテスト計画を選択します。

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

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

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

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

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

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

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

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

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

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

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

Note

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

テスト ケースのコピー

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

ヒント

異なる構成または異なるデータテストする場合は、テスト ケースをコピーしないでください。

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

  1. [Test Plans Test plans]\(テスト 計画>のテスト計画\) を選択します。

  2. [マイニング] ページまたは [すべて] ページから、コピーする 1 つ以上のテスト ケースを含むテスト計画を選択します。

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

  4. [定義] ページで、コピーするすべてのテスト ケースのチェック ボックスを選択します。

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

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

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

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

  7. (省略可能)[既存のリンクを含める] と [既存の添付ファイルを含める] のチェック ボックスを選択します

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

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

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

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

ヒント

異なる構成または異なるデータテストする場合は、テスト ケースをコピーしないでください。

インターネット エクスプローラー、Microsoft Edge、または Chrome ブラウザーから、テスト ケースを Grid ビューから 1 つのテスト 計画用にコピーし、テスト スイートを別のテスト 計画とテスト スイートにコピーできます。

  1. [テスト 計画>のテスト計画] ページで、コピーする 1 つ以上のテスト ケースを含むテスト スイートを選択します。 [定義] タブで、[グリッド ビュー] を選択します。

  2. コピーする行を強調表示し、Ctrl + C キーを押します。

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

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

  4. [テスト ケースの保存] を選択します。

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

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

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

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

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

  1. [テスト 計画>のテスト 計画] ページで、エクスポートするテスト ケースが含まれるテスト スイートを含むテスト 計画を選択します。

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

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

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

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

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

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

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

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

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

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

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

  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 省略可能。 テスト メソッドの最大優先度に基づいて、インポートするテストを指定します。 たとえば、パラメーターが 1 の場合、 /maxpriority:11 以下のテスト メソッドの優先度属性を持つテストのみが、アセンブリからテスト ケースとしてインポートされます。
/minpriority:priority 省略可能。 テスト メソッドの最小優先度に基づいて、インポートするテストを指定します。 たとえば、パラメーターが指定されている場合、テスト メソッドの優先度属性が /minpriority:22 以上のテストのみが、アセンブリからテスト ケースとしてインポートされます。
/category:filter 省略可能。 テスト アセンブリ内の各テスト メソッドのカテゴリに基づいて、インポートするテストを指定します。 このパラメーターを一緒 /syncsuite に使用して、特定のカテゴリのテストを特定のテスト スイートにインポートできます。
テスト カテゴリの詳細については、「テスト エクスプローラーを使用した単体テストの実行」を参照してください
/syncsuite:id 省略可能。 インポートするテスト ケースを追加するテスト 計画のテスト スイートのスイート ID を指定します。 このスイートは、動的スイートまたはクエリベースのスイートにすることはできません。 追加されたテストを更新するために同期するテスト スイートを指定した場合、インポートされていないテストはテスト スイートから削除されますが、テスト 計画自体からは削除されません。

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

制限事項

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

REST API

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

次のステップ