在團隊項目之間實現測試用例和測試計划的共享,是很多客戶關注的問題。尤其在開發產品+服務的團隊中,對測試用例的共享要求比較高。下面就如何在Team Foundation Server中如何實現團隊項目之間的用例共享,分析自己的經驗。
同一個團隊項目:
在TFS的同一團隊項目中,可以非常方便的實現測試用例的共享的維護,我們可以在測試計划和測試套件中添加已經存在的測試用例。也可以克隆測試套件和測試計划,非常方便和快速地為測試內容相對比較接近的兩個迭代創建測試計划。
Figure 1 – 在測試管理器中克隆測試計划
不同的團隊項目:
但是,當你需要在團隊項目之間復制測試計划、測試套件和測試用例時,你發現問題會變得比較復雜。測試管理器中的克隆功能已經不能滿足我們的基本需求。有些客戶會尋找其他的方案,例如使用Excel作為導出/導入的工具,在團隊項目間復制測試用例,或者借助第三方的工具,例如Test Case Migrator Plus(http://tcmimport.codeplex.com/)將測試用例導入到新的團隊項目中,有些團隊甚至自己開發一個導入腳本或者工具。
上面的幾個方案在特定場景中可以解決一部分問題,但是如果需要將測試用例和測試計划、測試套件之間的關系也導入到其他團隊中,難度相對就比較高了。
其實開箱即用的TFS產品自身就有團隊項目之間共享/復制測試計划的解決方案,下面以測試用例引用和復制兩種方案說明如何實現這個目標:
一、通過引用的方式利用測試用例
首先需要了解引用和復制測試用例/套件的區別。
引用測試用例的場景一般是這樣的,在測試計划中添加已經存在測試用例。這是基於原有的測試用例增加一個引用(Reference)。在測試計划中修改測試用例的屬性,例如狀況、測試步驟等,都會直接反射到被引用的測試用例。
在TFS的工作項管理中,復制測試用例(其他類型的工作項同理),會在系統中創建一個全新的測試用例,同時將原測試用例中的屬性值復制到新的測試用例中。
可以看出,添加測試用例(引用)測試用例與復制測試用例是完全不同的機制,結果也完全不同。
下圖演示了如何在測試計划中添加一個其他團隊項目中的測試用例。
Figure 2 – 從其他團隊項目添加測試用例
(注意:所有的團隊項目必須在統一個團隊項目集合中。)
二、通過測試管理器的命令行工具(tcm.exe)復制測試用例
在有些場景中,需要在團隊項目直接復制測試套件和測試用例,並且復制二者之間的鏈接關系。下面我們需要用到微軟測試管理器自帶的一個命令行工具(tcm.exe, Test Case Manager)來實現這個功能。
使用這個工具,你需要安裝:
1. Visual Studio Enterprise,或者
2. Microsoft Test Manage Professional
命令存在的磁盤路徑一般是:<Drive:>\Program Files\Microsoft Visual Studio <version>\Common7\IDE
或者直接在Visual Studio 2015開發人員命令提示窗口中輸入tcm, 如下圖:
Figure 3
TCM除了可以管理測試用例之外,還可以調用自動化的測試功能,這里我只說明如何在團隊項目之間復制測試用例和測試套件,你可以使用命令“tcm /?”獲取這個工具的所有功能幫助信息。
復制測試套件命令“tcm suites”的主要用法如下表:
C:\Program Files (x86)\Microsoft Visual Studio 14.0>tcm suites /? TCM - 測試用例管理工具,版本 14.0.23107.0 版權所有(C) Microsoft Corporation。保留所有權利。
suites 命令選項可用的選項
tcm suites /list [/planid:id | /querytext:query] /collection:teamprojectcollecti onurl /teamproject:project [/login:username,[password]]
tcm suites /clone /suiteid:id /destinationsuiteid:id [/overridefield:name=value [/overridefield:name=value ...]] [/destinationteamproject:projectname] [/destinationworkitemtype:workitemtype] /collection:teamprojectcollectionurl /teamproject:project [/login:username,[password]] [/clonerequirements]
tcm suites /clone /status:cloneoperationid /collection:teamprojectcollectionurl /teamproject:project [/login:username,[password]]
/list 命令允許在指定的計划中枚舉套件,並 檢索套件名稱和 ID。
/clone /suiteid /destinationsuiteid 命令在 TFS 中啟動一個克隆操作以將一個套件中 的所有測試用例克隆到另一個目標套件。 目標套件必須位於不同的計划中。將克隆包含的所有套件 和測試用例。 也可以指定多個測試用例字段及其值作為重寫 以便將克隆的測試用例與原始測試用例區分開來。該命令 將返回可用於跟蹤克隆操作的狀態和完成情況 的操作 ID。 默認情況下,基於要求的套件將會克隆到一個靜態套件, 但如果指定 /clonerequirements 開關,則會將其克隆到一個具有克隆的要求的 基於要求的套件。 默認情況下,克隆操作將在同一個團隊項目中完成。若要 跨團隊項目執行克隆,請指定 /destinationteamproject 開關。 請注意,需要將“區域路徑”和“迭代路徑”字段指定為 重寫才能使此開關工作。 若要更改克隆的測試用例的工作項類型,請指定 /destinationworkitemtype 開關。
/clone /status 命令允許基於克隆操作的 ID 來跟蹤 其狀態和完成情況。
示例: tcm suites /list /planid:2 tcm suites /clone /suiteid:1 /destinationsuiteid:2 /overridefield:"Iteration Path"="Project1\Iteration 2" /overridefield:"Area Path"="Project1\Area 1" /clonerequirements tcm suites /clone /status:1 |
在實際應用中,需要注意以下的問題:
1. 由於功能的限制,它不能實現測試計划在團隊項目直接的克隆,只能復制測試計划中間的測試套件
2. 可以復制測試套件中的子套件(sub-folders)
3. 可以復制測試套件中的測試用例
4. 如果測試用例在多個套件中被引用,可以復制這種引用關系
http://www.cnblogs.com/danzhang/ ALM MVP 張洪君