TFS是微软的应用软件生命周期管理(ALM)的解决方案产品,相比我们常见的一些ALM产品,例如HP ALM, IBM Rational, Atlanssian Jira等,其最大的区别在于TFS将软件研发的详细过程和交付物都集中收集在同一个平台中,实现了软件研发资产的集中管控。同时将软件研发过程中的各种角色, 例如需求分析师、开发人员、测试人员、运维实施人员等集中在一个平台中办公,实现数据的充分共享和互通,大幅提高了企业中不同部门之间的沟通效率。

而在软件研发过程中最重要和最受关注的,非开发人和源代码莫属!在一个软件研发团队中,可以没有需求管理工具(有人用Word或者电子邮件管理),可以没有Bug管理工具(有人用Excel),也可以没有测试用例工具,但是不可以没有源代码管理工具。没有源代码管理工具的团队,其开发效率和质量和因此带来的版本管理混乱的问题,是可以预见的。因此在大部分软件研发团队中,都会使用各自习惯的代码管理工具,例如SVN, CVS, Git, VSS等。代码管理工具对于软件代码的备份、隔离、分支和版本管理等,起到了至关重要的作用。

但是仅有代码管理工具,我们很难追踪代码变更的的缘由,特别是时间一长,或者是开发人员因为工作原因离开了研发团队,新接手的开发人员很难快速介入到代码的开发工作中。更严重的情况是,新的团队接手一个软件系统的开发,经常发现需要耗费大量的时间去整理现有代码结构和变更的原因,由于系统复杂,很多人不愿意在这里花费时间,于是采取重写全部功能的极端方式,完全放弃了之前的代码。之所以造成这种现象,很大一部分原因是由于代码变更没有与对应的需求、任务、bug关联,无法查找到代码变更的来龙去脉,新的开发人员不敢在现有系统中做任何改动,担心动一发而牵全身,造成无法预见的问题。

为了加强代码变更和需求之间的关联,微软TFS在代码与工作项之间创建了强大的关联关系,可以通过需求,实现基于代码行级别的需求跟踪,精确分析代码和需求之间的互动关系。

下图是TFS系统中工作项和代码直接的关联关系图,通过下图可以看到代码变更(变更集)与需求关联在一起,而变更集则包含了每次变更的文件和代码变化信息。

Figure 1 - TFS工作项和变更集关系图

基于上述关系,开发人员在签入代码时,可以选择本次签入的关联工作项,可以是需求、任务或Bug等任何一种工作项类型,如下图:

Figure 2 - 签入代码时,关联工作项

当开发团队按照上面的思路和操作方法签入代码时,TFS则在系统中存储了代码和相关工作的关联关系,为研发团队后续分析问题,修复Bug等提供了数据记录。通过这种数据关系,也可以很方便的基于需求或者Bug抽取受影响的文件,为发布版本创建增量包提供基础数据。例如,我们可以使用一个流行的免费工具(Sidekicks http://www.attrice.info/downloads/index.htm),抽取一条需求受影响的全部文件,如下图:

Figure 3 – 在Sidekicks中,通过工作项查询获取所需的工作项

Figure 4 - 将受影响的文档列表导出成Excel(CVS)文件

Figure 5 - 在Excel中展示需求受影响的代码文件

http://www.cnblogs.com/danzhang/  ALM MVP 张洪君

TFS代码变更和工作项关联,为系统变更提供完美的跟踪轨迹的更多相关文章

  1. TFS API : 四、工作项查询

    TFS API : 四.工作项查询 本节将讲述如何查询工作项,将用户统计数据. 使用WorkItemStore.Query方法进行查询工作项,其使用的语法和SQL语法类似: Select [标题] f ...

  2. [转载]基于TFS实践敏捷-工作项跟踪

    工作项跟踪(1) 可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性.曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看看?"我也一直很好奇别的公司T ...

  3. TFS(Team Foundation Server)敏捷使用教程(四):工作项跟踪(1)

    工作项跟踪(1) 可跟踪性是软件过程的重要能力,TFS主要是以工作项来实现过程的可跟踪性.曾有人问:"你们实际项目里的工作项是怎么样的?能不能让我们看看?"我也一直很好奇别的公司T ...

  4. TFS实现需求工作项自动级联保存

    目前在一个大型的金融客户软件研发平台项目实施和支持过程中,客户的质量管理团队基于该平台以及结合其它的平台数据,针对需求管理和业务过程需要拟定了一套完整的需求提出.评审.设计以及实现的流程.基于这套流程 ...

  5. 在TFS 2013的迭代视图中修改工作项数目限制

    当TFS迭代中的工作项数目超过500时,在TFS的网页(Web Access)显示中就会出现红色警告提示"积压工作(backlog)中的项数超出配置的限制500.当前总数为529-.&quo ...

  6. Azure DevOps Server (TFS) 修改工作项附件大小限制

    1. 问题描述 当上传工作项附件时,系统提示"附件大小限制" 2.解决方案 2.1 默认设置 默认情况下,Azure DevOps Service和Team Foundation ...

  7. TFS签入代码时,自动修改工作项的状态为“已解决”

    Visual Studio中有一个很酷的功能,就是签入代码到TFS库时,可以关联相应的工作项,实现代码与工作项(需求.任务.Bug等)的关联,从而实现代码的跟踪. 在关联工作项的过程中,如果工作项具备 ...

  8. tfs如何为工作项添加变更集

    今天工作中遇到的,可惜之前没怎么用过TFS. 我这是最后一次签入的时候关联了工作项.目的是要把先前签入的绑定到该任务上. 团队自愿管理器->查找历史记录->双击最后一次绑定工作项的变更集- ...

  9. TFS API:二、TFS 代码查询工作项

    TFS API:二.TFS  代码查询工作项 首先我们需要认识TFS的两大获取服务对象的类. 他们分别为TfsConfigurationServer和TfsTeamProjectCollection, ...

随机推荐

  1. Foreach原理

    本质:实现了一个IEnumerable接口, 01.为什么数组和集合可以使用foreach遍历? 解析:因为数组和集合都实现了IEnumerable接口,该接口中只有一个方法,GetEnumerato ...

  2. tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南

    之所以sockjs会存在,说得不好听点,就是因为微软是个流氓,现在使用windows 7的系统仍然有近半,而windows 7默认自带的是ie 8,有些会自动更新到ie 9,但是大部分非IT用户其实都 ...

  3. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 解决办法

    09:00:30.307 [http-8080-6] ERROR org.hibernate.transaction.JDBCTransaction -JDBC begin failed com.my ...

  4. 异常之Tomcat7.0服务器无法发布项目

    今天突然就不能发布tomcat 7.0服务器了,并弹出对话框,报出如下错误: Cannot acquire J2EEFlexProjDeployable object for module test ...

  5. Eclipse 寻找迷失的ID

    这一篇会介绍用一种蠢的办法找拓展点常量ID. 1.打开IDE,之后什么都不干,直接关闭IDE,将当前工作区间(workspace)上的文件.metadata\.plugins\org.eclipse. ...

  6. java--POI解析excel兼容性问题

    近日,使用POI解析excel,发现2003版本的excel解析与2007版本的excel解析存在问题.特此总结: 1.所需jar包 : 2.java类代码(读取excel文件): public vo ...

  7. [Dynamics CRM 2016]如何配置多语言显示

    1.安装相对应的语言包并安装 2015语言包下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=45014 2016语言包下载地 ...

  8. 【Leafletjs】6.Control.Loading推展-在地图上边框添加加载动态条

    在已有的Control.Loading控件基础上结合CSS3 animation属性实现 .nz-loading .nz-loader { display: block; -webkit-animat ...

  9. sqlite之WAL模式

    链接 概述 在3.7.0以后,WAL(Write-Ahead Log)模式可以使用,是另一种实现事务原子性的方法. WAL的优点 在大多数情况下更快 并行性更高.因为读操作和写操作可以并行. 文件IO ...

  10. js图形网站

    在做项目的时候难免会遇到要画各式各样的图形,这里推荐一个网站 http://echarts.baidu.com/doc/example.html 这个网站各种各样的图形都有,还有案例,相当不错