在团队项目之间实现测试用例和测试计划的共享,是很多客户关注的问题。尤其在开发产品+服务的团队中,对测试用例的共享要求比较高。下面就如何在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 FilesMicrosoft Visual Studio <version>Common7IDE
或者直接在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"="Project1Iteration 2" /overridefield:"Area Path"="Project1Area 1" /clonerequirements tcm suites /clone /status:1 |
在实际应用中,需要注意以下的问题:
1. 由于功能的限制,它不能实现测试计划在团队项目直接的克隆,只能复制测试计划中间的测试套件
2. 可以复制测试套件中的子套件(sub-folders)
3. 可以复制测试套件中的测试用例
4. 如果测试用例在多个套件中被引用,可以复制这种引用关系
http://www.cnblogs.com/danzhang/ ALM MVP 张洪君