次の方法で共有


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

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

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

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

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

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

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

前提条件

カテゴリ 要件
アクセスレベル - 少なくとも Basic アクセスが必要です。対応するエリア パスの下に作業項目を表示する権限が必要とされます。
- テスト計画とテスト スイートを追加するには、テスト成果物を削除し、テスト構成を定義します:Basic + Test Plans アクセス。
または、次のいずれかの Visual Studio サブスクリプション:
- エンタープライズ
- テストプロフェッショナル
- MSDN プラットフォーム
アクセス許可 - テスト プラン、テスト スイート、テスト ケース、またはその他のテスト ベースの作業項目の種類を追加または変更するには、対応する: [エリア パス] の下で [このノードの作業項目を編集する] アクセス許可を [許可] に設定します。
- ビルドやテストの設定などのテスト計画のプロパティを変更するには: 対応する区分パステスト プランの管理権限が許可に設定されます。
- テストスイートを作成および削除し、テストスイートからテストケースを追加および削除し、テストスイートに関連するテスト構成を変更し、テストスイート階層を変更(テストスイートを移動)するには、エリアパスの下で、テストスイート管理 許可セットを 許可 に設定します。

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

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 します。 次の必須パラメーターと省略可能なパラメーターの表も参照してください。
アクセスレベル - アクセスする 1 つ以上のプロジェクトの有効なプロジェクト メンバーシップと、実行するコマンドに基づく必要なアクセス許可。 詳細については、「手動テストのアクセスとアクセス許可」を参照してください。
- テスト オブジェクトを複製またはインポートするためのテスト 計画とテスト スイートを追加する場合と同じアクセス レベル。
パラメーター 説明
/徴収: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 資格情報に適切なアクセス許可がない場合、基本認証を使用している場合、ドメインに接続していない場合は、このオプションを使用します。

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

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

クライアント/ツール

テスト 計画

テスト スイート

テスト ケース


Web ポータル1

✔️ コピー

✔️ 輸入

Web ポータル (グリッド)

作業項目フォーム

✔️ コピー

TCM CLI2

✔️ クローン

✔️ クローン

REST API3

✔️ クローン

✔️ クローン

Note

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

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

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

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

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

ヒント

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

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

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

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

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

概念イメージ、テスト計画をクローン。

  1. プロジェクトで [Test Plans]>[テスト計画] を選択します。

  2. コピーするテスト計画を [自分用] または [すべて] ページで選択します。

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

    テスト計画の [その他の操作] の [テスト計画のコピー] オプションを示すスクリーンショット。

  4. 新しいテスト計画の名前を指定し、その計画の [区分パス][イテレーション パス] を選択します。

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

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

    既存のテスト ケースを複製すると、コピーしたテスト ケースには、複製元のテスト計画に指定されている区分パスイテレーション パスが割り当てられます。

    詳細については、「区分およびイテレーション (スプリント) パスについて」を参照してください。

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

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

  5. コピーしたすべての クエリベースのスイートが新しい区分およびイテレーション パスを使用するように更新します。

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

テスト スイートをインポートまたは複製する

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

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

Note

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

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

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

別のスイートや計画で同じテスト ケースを使用するには、グリッド ビューを使用してテスト ケースをコピーして貼り付けます。

  1. [Test Plans]>[テスト計画] を選択します。

  2. テスト スイートのインポート元のテスト計画を、[自分用] または [すべて] ページで選択します。

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

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

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

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

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

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

    [スイートのインポートが開始しました] メッセージを示すスクリーンショット。

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

    [スイートのインポートが完了しました] メッセージを示すスクリーンショット。

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

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

テスト ケースをコピー

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

ヒント

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

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

  1. [Test Plans]>[テスト計画] を選択します。

  2. コピー元のテスト ケースを含むテスト計画を、[自分用] または [すべて] ページで選択します。

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

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

  5. [その他の操作]>[テスト ケースのコピー] を選択します。

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

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

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

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

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

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

テスト ケースをコピーして貼り付ける (グリッド ビュー)

テスト ケースを管理している場合、コピーと貼り付けは、さまざまなスイートと計画にまたがって同じテストを再利用する貴重な手法として役立ちます。 たとえば、包括的なテスト スイートはあるが、対象をさらに限定したテストのサブセットを別のスイート内に作成する必要があるというシナリオを考えてみましょう。 [定義]>グリッド ビューで、テスト ケースの編集とさまざまなテスト スイートへのそれらのコピーの両方を行うことができます。 詳細については、「テスト ケースの作成」と「グリッド ビューを使用してテスト ケースを編集する」を参照してください。

ヒント

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

Internet Explorer、Microsoft Edge または Chrome ブラウザーでは、グリッド ビューで、あるテスト計画とテスト スイートのテスト ケースを別のテスト計画とテスト スイートにコピーできます。

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

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

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

  3. 別のテスト スイートを同じ計画または別の計画から選択して、Ctrl+v キーを使用して貼り付けます。 別のスイートを選択しないと、貼り付けても何も行われません。各スイートはテスト ケースに対する参照を 1 つしか保持できないためです。

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

    新しいテスト ケースに新しい ID が割り当てられて保存されます。

    グリッド ビューに貼り付けられ、保存されたテスト ケースを示すスクリーンショット。

テスト ケースを一括インポートまたはエクスポートする

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

テスト ケースをエクスポートする

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

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

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

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

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

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

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

テスト ケースをインポートする

  1. [Test Plans]>[テスト計画] で、テスト ケースをインポートする先のテスト スイートのテスト計画を選択します。

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

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

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

制限事項

  • テスト ケースの状態列はデザイン状態である必要があります。
  • テスト ケースのタイトルの長さは、128 文字を超えることはできません。
  • インポートとエクスポートの際に作成される JSON オブジェクトには 20 MB の制限があります。 インポートが失敗した場合は、テスト ケースの小さなサブセットで操作を試してください。
  • インポートを実行するユーザーは、インポートまたはエクスポートを計画しているテスト計画とテスト スイートの区分パスとイテレーション パスに対するアクセス許可を保持している必要があります。
  • テスト ケースの関連するリンク数が 1000 を超えると、コピーおよびインポート操作は失敗します。

REST API

次の REST API を使用して、テスト計画とテスト スイートのコピーと複製を行うことができます。

次のステップ