我的测试生涯(1)——开篇《Clearcase简介》

一、前言

  毕业之前想的是做开发工作,结果阴差阳错的被分在了测试部门,分都被分了,那就从测试开始干起吧。  

  工作也快两个月了,这两天第一次接触到源代码管理这一名词,那就从这谈起吧

  源代码管理也称为软件配置管理(Configuration Management),是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。

  常见的软件配置管理工具有:VSS、SVN、Clearcase,因为笔者也是初学者,以前在学校做项目,因为项目规模不是很大,对代码的管理(合并、删除、版本)只是采用copy,兼具使用日期(比如今天要完成一个功能,就会将以前的代码copy一份,并在原有的基础上开发信的功能,并且以今天的日期140808来命名)命名的方式所进行的,从来没有接触到代码管理的概念,显然这样的方式对于规模比较大,代码量大的项目来说肯定是行不通的。

  通过这两天的培训,第一次接触到代码管理的概念,进而觉得对代码的管理师很有必要的。因为培训课程讲的是Clearcase,那我们就从Clearcase开始我们的代码管理过程吧。

二、Clearcase简介

   Clearcase是由Rational公司开发的,后来Rational公司被IBM收购后,现在人们一般说Clearcase是一款IBM出的源代码管理工具。

  ClearCase通过TCP/IP来连接客户端和服务器。

  ClearCase拥有的浮动License可以跨越UNIX和 Windows NT平台被共享。

  ClearCase主要应用于复杂产品的并行开发、发布和维护,它可以提供:

管理多样化的版本       跟踪版本       保证软件元素的完整性      实现同步开发环境      精确重现每一次发布

其功能划分为四个范畴:版本控制(Version Control)、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。

图1 Clearcase四大功能

  Clearcase分为两大模式:Base和UCM,这两种模式各有各的好处,但是现在大多数用的是UCM(这里只是个人感觉)

2.1 Clearcase基本对象

  • VOB(Version Object Base)——版本对象库

  VOB是一个特定的数据库系统,其可以①存储有版本的数据;②可以被mount的文件系统;③存储数据的历史版本;④防止数据被非法修改;⑤可以存储数据的类型包括:文件 、目录

  VOB中存放的内容都具有版本的概念,这方便用户可以回溯到以前的任何版本进行相关操作

  一个项目可以跨越多个VOB,多个项目可以共享同一个VOB

  • element——元素

  element包括文件和目录(都具有版本的概念)

  • Version——版本

  Version是一个element的其中一个版本,多个版本一起就组成了这个element的版本树

图2 VOB、element、version三者之间的关系图

  • view——视图

  view是开发者用来访问VOB的视图工具

  view可以形象的理解为:照相机的镜头(或者滤镜)

  view通过某种规则来获取VOB中元素的某个版本,并组成了操作系统中的目录结构

  view其实是“开发者的工作空间”

图3 view的功能图解

  view分为动态view和静态view(也称为快照view),各自的优缺点如下:

     动态视图,是动态的将CC服务器中的内容同步到开发人员的机器中,这就要求开发人员一直与服务器保持连接。

     静态视图,是将CC服务器中的视图内容拷贝到开发人员的机器中,开发人员需要经常与服务器同步以保持数据的一致性,快照视图的好处在于开发人员不必一直通过网络与CC服务器保持连接;但是如果要与服务器同步必须update view。

  • branch——分支

  branch是在某个元素的某个版本处拉出的一个枝干,其主要用于开发人员的并行开发以及Bug的修复(bugfix)

  套创建branch实例之前,必须创建branch类型

  • Label——标签

  Label是在某个元素上用具有一定意义的字符串来标识某个特定版本的,以便开发人员(或Leader/Manager)检索和组织软件代码和文档

   一个元素可以生成多个版本,label打到特定的版本上,你取到的代码就是唯一的

图4 branch与Label图示  

  • PVOB(Project Version Object Base)——Project版本对象库

  PVOB是UCM(Unified Changed Management,统一变更管理模式)是在base的基础上新增的,用于存储 UCM 所需要的一些特殊的信息,如Proejcts,Stream,Activity及Change Sets等,一个PVOB可以包含多个Project的信息,Project的信息必须保存在PVOB中

  • stream

  stream也是UCM新增的,其分为集成流(Integration stream)和开发流(Develop stream)

  Integration stream可以理解为项目的主干,通常也称为干流,每个开发流都是集成流的一个分支

  在一个项目的Integration stream上可以拉出许多子流,开发人员可以再这些子流上开发相应的功能,开发完成后,将开发成果再提交到集成流上去,在集成流上集成管理员根据提交的内容进行编译,测试以后在集成流上打上基线(baseline),等所有的测试通过以后可以推荐基线

  • Project

  Project是也UCM在base的基础上新增的,包含了配置管理所需要的一些配置信息,如果Component、Baseline,Stream等,每个Project都有一个Integration Stream 

  • config spec

  config spec就是view中所讲到的某种特定规则

  config spec有三种原则:①从上到下;②从左到右;③回滚;

  • Component——组件

  Component也是UCM新增的,可以理解为一些代码、文档等按一定的目录结构组织成的完成某些功能的可以重用的集合

既然Component是一组文件的集合,则其有三种形式:①一个vob就是一个Component;②一个vob下的根目录就是一个Component;③虚拟存在的;

  • Activity——活动

  Activity也是UCM新增的,通过变更集(Change Set)跟踪完成一项开发任务所引起的所有配置项的变更

  在UCM模式下所有的Check Out、Check In等引起配置项发生变化的操作必须关联到一个Activity 

  • Baseline——基线

  Baseline也是UCM新增的,基线标识了一个组件或多个组件中所有元素的某一个版本和这些元素的活动

  简单理解为就是打在多个相关元素上的某一版本的集合

  可以从基线生成开发流或者为一个已有的开发流基线更新(Rebase),一个基线是一个构件在一个特定时刻的一个快照

2.2 小结

从软件产品组成角度:

  • 一个VOB可以包含一个或者多个Component。(PVOB无需包含Component)
  • 一个Component包含多个Element(文件和目录)
  • 一个Element将以版本树的形式来存储该Element的多个version
  • 在创建Component的时候,将形成一个初始化Baseline(Component_name)_initial.该基线不依赖任何流而存在

从软件如何开发角度:

  • 一个Project包含一个或者多个Stream。
  • 在创建Stream的时候。将选择该Stream的foundation baseline
  • Stream上将包含多个activity
  • 一个Stream可以关联多个view
  • view是通过它关联的Stream来决定所能访问到的版本

 注:参考博客  http://blog.csdn.net/hhg208/article/category/693450

我的测试生涯(1)——开篇《Clearcase简介》,布布扣,bubuko.com

时间: 2024-07-30 11:13:48

我的测试生涯(1)——开篇《Clearcase简介》的相关文章

(原创)我的测试生涯(2)——《Clearcase UCM Practice》

一.前言 本篇主要做一个练习,登录远程服务器,完成以下几个任务: 1. 在已有pvob下创建一个集成流和一个开发流: 2. 在上述创建的集成流和开发流上分别创建一个view: 3. 在开发流的开发view上创建一个element: 4. 将上述变更deliver到集成流上,并且完成deliver,确保在集成流上能看到刚刚创建的element: 5. 上述步骤完成后,在集成流上的额组件(component)打上新的baseline,并且将所打的baseline推荐出去: 6. 将新打的基线Reba

[转] James A. whittaker:经营成功的测试生涯

James A. whittaker:经营成功的测试生涯 2015-05-13 James Whittaker James Whittaker is an energetic and passionate software executive with substantial engineering, research, writing and speaking credentials. His background spans government, academia, a successfu

毕业至今,对测试生涯的反思

 毕业至今,已有531个日头,回首这17个月又12天的时光,好像过去的路上,自己并没有留下什么辉煌的.说的出口的业绩,甚至很多时候感到过迷茫. 窗外是明亮的太阳,而在房间里,是一片冰凉.坐在床上,我在思索:工作至今,我学会了什么?得到了什么?提升了什么? 在这一年的时间里,我去了解了很多,尝试了很多:看了2本关于手机app测试的书籍:学了selenium驱动浏览器.app软件的自动化脚本开发:看了fitnesse框架的原理:了解了一些安全测试.性能测试方面的知识:搞了一段时间Linux系统...

经营成功的测试生涯

1 你是如何开始做测试工作的? 1989年,我在田纳西大学读研究生的时候,完成了从软件开发人员到软件测试人员的转型.而这一转型并非出于我自己的选择.我命运的改变发生在一个早晨,我的教授质问我为什么缺席那么多开发会议.我解释说因为会议被安排在星期六早上,很不方便. 而怍为一个生平第一次离开家的新入校的研究生,这个时间段有些麻烦.十分有意思的是,等待我的惩罚并不是一纸解聘通知书,而是被判罚为该小组的唯一一个测试人员,且不能与开发团队有任何交流. 对于我的职业生涯来说,这是一个意义多么重大的决定啊!正

十二年测试生涯随笔

 十二年测试 毕业至今入行已经十二年,经历了多个项目的洗礼,获取了很多的开发与测试方面的经验,但越是这样越发现自己的欠缺与不足,此文愿与大家一同分享这十多年来在自动化测试工作中的经验和教训. 一.天不怕地不怕的菜鸟 什么项目都敢接,什么需求都敢答应,没有评估的经验,对项目整体没有掌控力,也把握不了项目的进展和节奏,对自动化测试没有任何概念,认为就是写程序,完成测试任务就好,在这个阶段中,每做完一件事,就有巨大的幸福感和成就感填充自己的小宇宙.并且在不断重复幸福感的过程中,不断的写程序.回头看看,

天猫技术专家:测试十二年,六道轮回后的初心能否找回

摘要: 本期作者简介:高翔,天猫技术部测试开发专家. 很久没写文章了,之前测试十年,也是在自己有变化的时候 ,强迫自己写了一篇文章,说了自己的困惑和痛苦和思考,也得到一些共鸣.现在测试十二年了,相当于一个轮回,也有一些新的痛苦和感悟,趁还在这个圈子里面,纪念一下,当然了,YY比较多,干货也不多,反正纪念下,或许我是真的不太可能写测试15年的文章了. 本期作者简介:高翔,天猫技术部测试开发专家. 很久没写文章了,之前测试十年,也是在自己有变化的时候 ,强迫自己写了一篇文章,说了自己的困惑和痛苦和思

Google Test测试框架分析

Google Test测试框架分析 一.简介 Google Test是由Google主导的一个开源的C++自动化测试框架,简称GTest.GTest基于xUnit单元测试体系,和CppUint类似,可以看作是JUnit.PyUnit等对C++的移植. 下图是GTest测试框架的测试过程,表示的是GTest的两种测试方式. 下面将使用一个极其简单的例子表示xUnit测试的主要过程.如对Hummer的CTXString类的成员方法GetLength进行测试.详见下面GTest代码和注释说明. //

IOS 网络浅析-(八 NSURLSession简介)

就在不长也不短的时间前,苹果正式命令咱们要向NSURLSession看,因此我们不得不认认真真的听从老大的教导,努力认知NSURLSession.其实呢,三方早已为我们解决了问题,但是呢,我们还是有必要大概了解一下NSURLSession.下面呢,我就为大家简单介绍NSURLSession. *下面是一位大牛写过的一段话,在此献上* NSURLConnection在开发中会使用的越来越少,iOS9已经将NSURLConnection废弃,现在最低版本一般适配iOS,所以也可以使用.NSURLCo

一次APP测试的感悟

项目经理担责任.产品担责任.测试只需要把测试中发现的问题展示出来.如实反应问题.谁担责任谁有权利决定上不上线.所以他们直接绕过了测试.APP的上线让我学到了很多东西,见识了很多东西,也感悟了很多.这是我之前的测试生涯中从未经历过的.我看到了自己的缺点,需要改正的地方.接触了各种性格的人.总之,我长见识了.我的感悟:1.测试工作不是闷头干自己的事,需要和各种性格各种角色的人打交道.2.本次的测试工作我做的很不好.我自己很不开心.和产品吵架了,在工作中给自己树立了敌人.2.测试工作的度.3.bug的