テスト スイートとテスト ケースのコピーおよび複製
Microsoft Visual Studio Team Foundation Server (TFS) でテストを計画しているときに、テスト スイートとテスト ケースをコピーする方法はいくつかあります。
テスト スイートまたは計画には、テスト ケースに対する参照セットが含まれていることを理解することが重要です。 スイートを削除した場合、または各スイートから 1 つのテスト ケースを削除した場合、テスト ケースは Team Foundation 内に作業項目として残り、クエリで検索することができます。
Microsoft Test Manager のコピーと複製
これらの手順はすべて Microsoft Test Manager で実行されます。 [テスト センター]、[計画]、[コンテンツ] の順に開きます (コマンド ラインから複製 することもできます)。
異なるスイートで同じテストを参照する
異なるスイートおよび計画で同じテストを使用するには、テスト ケースをコピーして貼り付けます。 たとえば、テストのサブセットを使用しているクイック スイートを、より包括的なスイートに持つことができます。
Ctrl + C キーを押してテスト ケースをコピーします。
別のスイートまたは計画を選択し、Ctrl + V キーを押して貼り付けます
(別のスイートを選択しない場合、各スイートはどのテスト ケースに対しても 1 つの参照しか持てないため、貼り付けをしても何も機能しません)。
あるスイートでテスト ケースを編集すると、他のスイートでそのテスト ケースを見たときに変更内容が反映されます。
あるスイートからテスト ケースを削除した場合は、テスト ケースはそのスイートでのみ削除されます。 すべてのスイートでテスト ケースを削除しても、テスト ケースは Team Foundation に残っており、作業項目クエリで見つけることができます。
テスト ケースの複製と編集
この機能を使用して、既存のテスト ケースに似た新しいテスト ケースを作成します。
テスト ケースを右クリックして [コピーの作成] を選択します。
新しいテスト ケースが開きます。
新しいテストを編集します。 少なくともタイトルを変更する必要があります。 [リンク] の下で、古いテスト ケースに対するリンクを削除することもできます。
2 つのテストは、お互いに独立して順次に編集できます。
別の計画またはスイートからスイートをコピーする
新しいスプリントに対してテスト計画を作成している場合に、以前のスプリントからいくつかのテストを繰り返して、すでに実装されている機能がまだ確実に作動するようにしたいことがあります。
新しいスプリントに対してテスト計画を作成します。
ターゲットのスイートまたは計画を選択し、コピーするスイートを取得します。
テスト スイートおよびそれに含まれるスイートはコピーされますが、同じテスト ケースに対する参照は含まれません。 ソース テスト計画とターゲット テスト計画で同じテスト ケースを共有します。
コピー後、一方の計画に影響を与えずにどちらかの計画にテスト ケースを追加または削除できます。ただし、共有テスト ケースを編集する場合は、変更が両方のテスト計画に影響します。
テスト計画およびテスト ケースを複製する
複製は、アプリケーションを 2 つのバージョンに分ける場合に便利です。コピー後、2 つのバージョンのテストは互いに影響を与えずに変更できます。
古いテスト計画のコンテキスト メニューの [計画の複製] を選択します。
ダイアログで、コピーするスイートを選択し、新しい領域およびイテレーション パスを設定します。
新しいユーザー ストーリーや要件を作成して別に保持する場合は、[要件を複製する] をチェックします。 次に例を示します。
2 つの分岐が最終的にマージされるように計画するときに、すでに実装およびテストされている機能に対して同じ要件を保持したい場合があります。 このような場合は、[要件を複製する] をチェックしないでください。
類似しているけれども、異なる 2 つのアプリケーションに分岐するよう計画する場合は、片方のストーリーを変更せずに、他方のユーザー ストーリーを変更する方がよいでしょう。 このような場合は、[要件を複製する] をチェックして、新しいテスト ケースに対して、依存しない要件セットを作成します。
コピーしたクエリーベースのスイートを更新して、新しい領域およびイテレーション パスを使用します。
自動テスト ケースを複製した場合は、ターゲット テスト計画にビルドを指定します。
複製されるオブジェクト
テスト スイートを複製すると、次のオブジェクトがソース テスト計画からターゲット テスト計画にコピーされます。
テスト計画オブジェクト |
コピーされる |
メモ |
---|---|---|
テスト ケース |
各新しいテスト ケースは、共有ステップを保持します。 リンクはソースと新しいテスト ケース間で行われます。 新しいテスト ケースには、テストの実行、バグ、テスト結果、およびビルドの情報はありません。 |
|
複製されたテスト ケースによって参照される共有ステップ |
||
テスト スイート |
次のデータが保持されます。
|
|
複製されたテスト ケースからリンクされた操作の記録 |
||
リンクと添付ファイル |
||
テスト構成 |
テスト構成はターゲット テスト計画で再び適用されます。 |
|
テストの設定 |
ターゲット テスト計画のテスト設定が適用されます。 |
|
テスト結果 |
||
テストの実行および探索的テスト セッション |
テストの実行はソース テスト計画にのみ適用できるため、コピーされません。 |
|
要件ベースのスイート |
/clonerequirements を使用しない場合 |
要件ベースのテスト スイートは、ターゲット テスト計画で静的テスト スイートに変換されます。 複製されたテスト ケースは、この静的テスト スイートで参照されます。 複製されたテスト ケースには、元の要件作業項目へのリンクが含まれていません。 |
要件ベースのスイート |
/clonerequirements を使用する場合 |
コピーされ、要件作業項目の新しいコピーにリンクされます。 |
要件作業項目 (プロダクト バックログ項目またはユーザー ストーリー) |
/clonerequirements を使用する場合 |
複製された要件ベースのスイートに関連付けられている要件作業項目は、複製されます。 |
バグ作業項目 /clonerequirements を使用する場合 |
/clonerequirements を使用する場合 |
スクラム プロセス テンプレートを使用するチーム プロジェクト、またはバグ作業項目の種類が要件作業項目カテゴリに含まれるプロジェクトで複製されます。 他のプロジェクトでは、バグは複製されません。 |
tcm.exe を使用して複製したテスト スイートの例
ソース テスト計画
ターゲット テスト計画
コマンド ラインからテスト スイートを複製する
tcm.exe を使用してテスト スイートをコピーできます。 コマンド プロンプトを開いて、ディレクトリを %VS110COMNTOOLS%..\IDE に変更します。
開発者コマンド プロンプトを開きます。 または、標準のコマンド プロンプトを使用し、ディレクトリを %VS110COMNTOOLS%..\IDE に変更します。 tcm.exe を使用します。
cd %VS110COMNTOOLS%..\IDE
tcm suites /clone
/collection:https://Server:8080/tfs/Collection
/teamproject:"TeamProject"
[/destinationteamproject: "DestinationProject"]
/suiteid:sourceId
/destinationsuiteid:targetId
[/clonerequirements]
[/overridefield:"field name"="new value"] [/overridefield:"field 2"="value 2" ...]]
パラメーター:
Server, Collection, TeamProject: Team Foundation Server、チーム プロジェクト コレクション、およびチーム プロジェクトの名前。
destinationTeamProject: ターゲット テスト スイートが別のチーム プロジェクトにある場合は、これを指定します。 これは同じチーム プロジェクト コレクションに存在する必要があります。 "Iteration Path" と "Area Path" にオーバーライド フィールド値を指定する必要があります。
suiteId と destinationSuiteId: コピーするスイートの ID と新しいコピーを追加するスイートの ID。 テスト計画全体をコピーする場合は、テスト計画のルートにあるスイートの ID を使用します。
スイートの ID はテスト計画でスイートを選択したときに詳細ペインに表示されます。
また、tcm suites /list を使用してスイートの一覧を取得できます。
/clonerequirements: 要件ベースのテスト スイートにアタッチされた要件作業項目を複製します。 このパラメーターを省略すると、要件ベースのテスト スイートは静的スイートに変換されます。
/overridefield:"field name"="new value": 各複製された作業項目でフィールドの値を変更します。 このパラメーターを複数回指定して、フィールドを必要な数だけ変更できます。
次に例を示します。
tcm suites /clone /collection:http://tfs.fabrikam.com:8080/tfs/DefaultCollection
/teamproject:IceCream /destinationteamproject:ToyStore
/clonerequirements
/suiteid:234 /destinationsuiteid:567
/overridefield:"Iteration Path"="ToyStore\sprint3"
/overridefield:"Area Path"="ToyStore\catalog"