在团队项目之间实现测试用例和测试计划的共享,是很多客户关注的问题。尤其在开发产品+服务的团队中,对测试用例的共享要求比较高。下面就如何在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 张洪君

TFS - 使用微软测试管理器实现跨团队项目的测试用例管理的更多相关文章

  1. TFS2015源代码管理器无法建立团队项目的问题

    最近在服务器安装了微软最新版的TFS2015  正版要钱,网络上还没有能找到可用的key,因此我只能使用试用版. 安装完成后,使用我本地的vs2013  vs2012  vs2010  vs2014 ...

  2. JMeter HTTP Cookie管理器的跨域使用

    Jmeter的一个测试计划只能有一个cookie管理器,当多个manager同时存在时,无法指定是用的哪一个manager.如果想让cookie manager跨域使用,修改JMeter.proper ...

  3. TPA测试项目管理系统-测试用例管理

            Test Project Administrator(简称TPA)是经纬恒润自主研发的一款专业的测试项目管理工具,目前已广泛的应用于国内二十余个整车厂和零部件供应商.它可以管理测试过程 ...

  4. 使用 NuGet 包管理器在 Visual Studio 中安装和管理包

    https://docs.microsoft.com/zh-cn/nuget/consume-packages/install-use-packages-visual-studio 通过 Window ...

  5. [BI项目记]-搭建代码管理环境之创建团队项目

    此篇主要介绍如何基于TFS环境创建团队项目来进行项目代码的版本管理工作,这一系列将侧重于BI项目,当然对于其它项目也同样适用. 在TFS里开始一个项目,我们首先需要创建一个团队项目. 在Team Ex ...

  6. Android布局管理器-从实例入手学习相对布局管理器的使用

    场景 AndroidStudio跑起来第一个App时新手遇到的那些坑: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103797 ...

  7. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现

    写完博客的总结 : 以前没有弄清楚的概念清晰化 父容器与本容器属性 : android_layout...属性是本容器的属性, 定义在这个布局管理器的LayoutParams内部类中, 每个布局管理器 ...

  8. <转>jmeter(十九)HTTP属性管理器

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  9. jmeter(十九)HTTP属性管理器

    jmeter是一个开源灵活的接口和性能测试工具,当然也能利用jmeter进行接口自动化测试.在我们利用它进行测试过程中,最常用的sampler大概就是Http Request, 使用这个sampler ...

随机推荐

  1. mousewheel

    判断鼠标往上还是往下滚动 html代码: <div class="div"> </div> css代码: .div{ position:absolute; ...

  2. Infinite Scroll - jQuery & WP 无限滚动插件

    无限滚动(Infinite Scroll)也称为自动分页.滚动分页和无限分页.常用在图片.文章或其它列表形式的网页中,用来在滚动网页的时候自动加载下一页的内容.Infinite Scroll  这款  ...

  3. 2014年3月新鲜出炉的最佳 JavaScript 工具库

    一个 JavaScript 库是预先编写的 JavaScript 程序,用于简化 Web 应用程序开发,特别是对 Ajax 和其它 Web 为中心的技术.JavaScript 提供了多种方法,通过它来 ...

  4. 关于EJB的理解

    这一段时间一直在北京面试,很多都有关EJB的相关问题,于是上网查了各种资料.所以,EJB到底是什么? 简而言之:EJB就是将已编写的软件中的业务类.不放到客户端软件中,而将其打包放入服务器中.以C/S ...

  5. 由Vue引发的getter和setter思考

    公司的新项目决定使用Vue.js来做,当我打印出Vue实例下的data对象里的属性时,发现了一个有趣的事情: 它的每个属性都有两个相对应的get和set方法,我觉的这是多此一举的,于是去网上查了查Vu ...

  6. Swiper教程 —— 使用方法

    Swiper使用方法 1.首先加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件. <!DOCTYPE html> <html> <h ...

  7. 如何:在 SharePoint 中创建外部列表

    在创建外部内容类型后创建外部列表是一项非常简单的任务,有如下4种方式进行: 可使用 Microsoft SharePoint Designer 2010 浏览器来完成 VS2010的列表实例 采用代码 ...

  8. yii redies 不同的工程缓存key的问题

    参考这篇文章 基本配置操作: yii main.php中: return array( ... 'components'=>array( 'redis_cache' => array ( ...

  9. mac 终端启动 jboss 停留在(Starting) 不能启动joss

    今天下载了jboss,解压后发现standalone.sh,不能够在终端中执行,于是google了一下,原来是由于jdk版本的问题导致jboss一直停在调试状态(貌似是这样说的). 需要把mac系统的 ...

  10. socket编程listen函数限制连接数的解决方案

    函数原型: int listen(int sockfd, int backlog); 当服务器编程时,经常需要限制客户端的连接个数,下面为问题分析以及解决办法: 下面只讨论TCP  UDP不做讨论(很 ...