求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
软件测试过程中的测试配置管理与版本控制
 
发布时间:2013-6-09
 

摘要:

随着计算机软件技术的发展,各种计算机软件种类繁多,功能各异,加上计算机软件规约的约束和发展,软件的规范性变得更加重要。为了开发合格的软件,在软件开发过程中,离不开软件测试。为了更好的完成软件测试工作,在软件测试过程中进行配置管理和版本控制尤为重要。

本文首先介绍了软件测试过程中的配置管理概念和版本控制概念,然后对软件测试过程中的配置管理和版本控制做出了详细分析,论述了配置管理的流程、方法意义。接着介绍了版本控制的评价标准,软件测试过程中版本控制方法的应用及几种版本控制软件,最后阐述了在软件测试过程中的版本控制的作用,以及怎样有效 的在软件测试过程中进行软件测试版本控制。

关键词:软件测试;配置管理;版本控制;

1、软件测试的基本概念

在现代社会,随着计算机时代的到来,计算机的应用已扩大深入到社会生活的方方面面,而随着计算机技术和计算机软件的不断发展,软件的规模日趋大型化和复杂化,致使软件开发中的软件测试工作变得越来越繁杂,工作量越来越大。为了更好的对软件测试进行控制和管理,节约时间、人员、成本等,软件测试中的配置 管理和版本控制随之产生。对软件测试中的资源如何调配,人员如何配置管理和控制成为我们更加关心的问题。

对此,为了理解软件测试中的配置管理和版本控制,我们先了解软件测试的概念和意义。当我们清楚的认识到为软件测试的作用和意义,我们才能更加清楚的认识到软件测试过程中的配置管理和版本控制的重要性。

1.1 软件测试的概念

软件测试作为软件开发过程中的重要组成部分,是用来确认一个程序的品质或者性能是否达到开发之前所提出的一些要求。换句话讲,软件测试就是为了发现程序中的错误而不得不进行并且不可避免必须要执行的过程。

从一个软件的立项之初,软件测试工作就将开始,并且将会贯穿整个软件开发过程。首先了解下测试人员的任务:寻找bug,避免软件开发过程中的缺陷,衡量软件的品质,关注用户的需求。通过了解测试人员在测试过程中的任务,我们就会对软件测试产生一个大概的了解。进行软件测试工作的最终目的是什么呢?目的 其实只有一个就是要确保软件的质量。满足用户的需要,使用户对软件质量产生足够的信心。

1.2 软件测试的分类

软件测试是一项复杂而又细致的工作,作为计算机科学的一门学科,它自有其独到的作用和规则。软件测试从产生一直发展到如今,已经拥有了很完善的软件测试理论体系和知识概念体系。如今,软件测试大致分为功能性测试和性能测试,其中又包括手工测试和自动化测试。随着软件测试工作的日益繁杂和工作量的加大,手工测试不再能够满足测试需求,因而自动化测试越加显得重要。我们之所以做这么多工作,都是为了检验程序是否满足规格需求说明书,能否满足用户需求,或者 预期结果与实际结果之间的差别。通过了解软件测试的分类,我们知道软件测试在软件生命过程中的重要性和不可或缺性。

1.3 软件测试的国内外现状

为了了解软件测试在国内外的现状,我们经过深入调查了解到,随着软件开发的日趋成熟,国内外的软件企业逐步认识到软件测试在软件开发过程中的重要性。软件测试受到国内外软件企业越来越多的重视,纷纷不约而同的加大了对软件测试的投入。我们先看两组数据,2007年中国软件企业对软件测试的投入为:1% 一下:24%;1%-5%:34%;5%-10%:22%;10%-30%:16%;30%以上:4%。我们再从微软的项目人员比例上 看:Windows200 Team:程序经理 450,开发人员 900, 测试人员 1800,技术支持人员 600, 技术传播人员 1120,本地化人员 110,培训人员 115,文档人员 100,市场人员 100, 内部IT50,合计5345。仔细分析对比这两组数据,从中我们可以看出,国内外软件企业对软件测试的重视程度,他们不惜将大量的资金,人力物力投入其中。国内外的软件企业之所以如此重视软件测试,原因只有一个那就是软件测试已成为软件开发过程中不可或缺的一部分。假如软件开发过程中离开了软件测试,我们可以想象后果将会有多么的严重。首先我们无法保证软件的质量,也无法保证软件是否满足用户的需求,也无法保证我们程序的可用性。在软件开发中如果不进行软件测试,很可能使我 们的程序成为镜中花水中月,不可实现。唯有充分了解软件测试在软件开发过程中的重要性,我们才能更加重视软件测试工作。

了解了软件测试在软件开发过程中的作用和意义,以及国内外对软件测试的重视程度和资源投入对比,为了保证软件质量,使我们的软件更加符合用户需求,我们应当思考如何更好地进行软件测试,在软件企业投入了足够的人力物力等资源之后,怎样利用这些资源来更好的进行软件测试工作自然成为了我们应该思考的问 题。

2、软件测试的测试配置管理

2.1 进行测试配置管理的必要性

在拥有了足够的资源和人力之后,我们能否认为软件测试工作可以很好的进行并且能够保证软件测试过程不会出现问题呢?也许我们认为只要需要的测试条件满足了,我们就可以圆满的完成测试工作了,其实这样的观点是错误的。软件测试工作是由人来进行的,因而首先要考虑到人的问题,一项工作只要有人的参与,就必须要将人的因素考虑进去。人无完人,金无足赤,测试人员对软件测试工作造成的负面影响在软件测试中是不能够忽略的。软件是由人来编写实施的,但是软件开发又是一个极其容易产生错误的复杂过程,因其产生就注定了它不会是一个简单的过程。尽管程序员和软件工程师等为了完善软件而做出了巨大的努力和工作,但是软件错误仍然是不可避免的。世上不存在百分百完美的软件,因此软件过程中的软件错误是不可避免的,这是他自身的一种特性。我们所能做的就是尽量减少软件中的 错误,争取做到使这些错误可以忽略不计,或者尽量不影响我们的正常使用。给定了足够的资源之后,我们再进行软件测试工作,这时仍然不能认为没有问题了,还需要在软件测试时进行配置管理。在软件测试中缺少了测试的配置管理我们是做不好测试工作的。我们进行软件测试就是为了以最少的时间,最少的人力物力去尽可能多的发现软件中潜藏着的各种错误和缺陷。但是伴随着软件测试工作量的加大,软件企业仅仅投入更多的人力物力以及其他各种资源是不够的,他们还需要思考除 此之外怎样才能更好的进行软件测试。为了更好的进行软件测试,我们应该对测试人员、测试环境、生产环境进行配置管理。只有建立了完整的合理的软件测试配置 管理体系,软件测试工作才能更好的进行,更加完美的完成测试目标。

如果在软件测试过程中缺少了测试配置管理将会造成及其严重的后果。据我们实际调查了解到,在日常的软件研发工作中,很多软件企业都会或多或少的在软件测试时遇到很多的问题,而这些问题的产生都是因为在测试过程中缺乏配置管理流程和工具。因为人员具有频繁的流动性,并且在组织的过程中会产生知识和财富的流失,再加上现代社会的激烈竞争,如果一个企业没有设计配置管理流程和使用必要的配置管理工具,就可能会因此而造成无可估量的损失,甚至导致整个软件项目的崩溃。因而作为一个软件企业,必须要做到及时了解项目的进展状况,对项目进行管理,遇到突发状况的解决。软件工程思想发展到现在,认为在软件过程中如果能够越早的发现缺陷和风险,这时只要采取相应的措施,所要付出的代价就越小。缺乏配置管理流程的一个很明显之处就是测试过程中缺乏并发执行的手段,没有了配置管理的支持,软件过程中的并发执行将会变得十分的困难。这时往往会造成修改过的bug重复出现,又或者几个人员进行相同的测试工作和进程,从而产生不必要的浪费。如果企业不能很清晰很流畅的对整个软件测试过程进行管理,就会造成测试工作的不同步,不一致。在测试工作中需要测试人员完成的没有完成,而暂时不需要或者以后在完成的却首先完成了,这样会增加测试工作的复杂性和难度,因此我们需要在软件测试中进行配置管理。

 

2.2 测试配置管理的方法和内容

既然测试配置管理在软件测试中如此重要,企业该如何进行测试配置管理呢。我们首先简单谈谈软件测试的测试配置管理体系。它一般由两种方法构成:那就是应用过程方法和系统方法。意思就是在测试过程中,我们应该把测试管理这块单独作为一个系统去对待。识别并且管理组成这个系统的每个过程,从而实现在测试工作开始之初设定的目标。在上面的基础之上,我们还要做到使这些过程在测试工作中能够协同作用,互相促进,最终使他们的总体作用更大。在软件测试配置管理中的主要目标是在设定的条件限制下,企业应当尽最大的努力去发现和排除软件缺陷。测试配置管理其实是包含在软件配置管理中的,是软件配置管理的子集。测试配置管理作用于软件测试的各个阶段,贯穿于整个测试过程之中。它的管理对象包括以下内容:测试方案,测试计划或者测试用例,测试工具,测试版本,测试环境以及测试结果等。这些就构成了软件测试配置管理的全部内容。

2.2.1 测试配置管理的目标和阶段

现在我们了解软件测试配置管理的目标:第一步是在测试过程中控制和审计测试活动的变更,第二步是在测试过程中随着测试项目的里程碑,同步建立相应的基线;第三步是在测试过程中记录并且跟踪,测试活动过程中的变更请求;第四步是在测试过程中针对相应的软件测试活动或者产品,测试人员应将他们标识为被标识 和控制并且是可用的。

软件测试配置管理的阶段:第一阶段为需求阶段:我们要进行客户需求调研和软件需求分析;第二阶段为设计阶段:在这个阶段我们要进行概要设计和详细设计工作;第三阶段为编码阶段:这时我们主要进行的工作是编码;第四个阶段是测试和试运行阶段:在这个阶段我们要进行:单元测试,用户手册编写,集成测试,系 统测试,安装培训,试运行和安装运行这些工作;第五阶段也就是最后一个阶段是正式运行及维护阶段:这是要做的是对产品进行发布和不断的维护。

图2.1 配置管理阶段示意图

在软件测试的过程中会产生很多东西,比如测试的相关文档和测试各阶段的工作成果,这些包括测试计划文档,测试用例,还有自动化测试执行脚本和测试缺陷数据等。为了以后可能的查阅和修改,我们应该将这些工作成果和文档保存起来。

2.2.2 测试配置管理的过程管理

了解了软件测试过程中配置管理的目标和阶段,接下来就应该进行软件测试配置过程管理了。他的配置管理过程包括:

(1)建立配置变更控制委员会:配置控制委员会(CCB)应该要做到对项目的每个方面都有所了解,并且CCB这个团体不应该由选举产生,它的人员构成包括主席和顾问,在软件研发中每一个项目组都必须建立CCB作为变更权威。

(2)SCM库的建立和使用:我们要求在每一个项目过程中都要维护一个软件配置管理库。在项目中通过使用配置管理工具,简称(VSS),企业通过该工具在配置管理服务器之上,建立和使用软件配置管理库。这些操作有助于在技术和管理这两个方面对所有的配置项进行控制,并且对他们的发布和有效性也能起到控制作用。同时还有很重要的一点就是我们应该对SCM库进行备份。这样做的目的是为了在产生意外或者风险时,能够作为保存灾难恢复备份的副本。

(3)配置状态报告:配置状态报告是软件测试配置管理过程中的一项重要的活动,在软件测试配置管理过程中,配置人员要管理和控制所有提交的产品,然后在有产品提交或者变更为完成时,配置人员要经过相应的质量检查,这就是配置人员应该进行的工作。而在这之后,配置人员不但要将批准通过的配置项放入基线库 中。并且还要记录配置项及其状态,编写配置状态说明和报告。通过配置人员的这些工作来确保所有应该了解情况的组或者个人能够及时的知道相关的信息。

(4)评审、审计和发布过程:为了保持SCM库中内容的完整性和质量,我们应该采取适当的质量保证活动来应对SCM库中各项的变化。以此来确保在基线发布之前能够执行审计活动,该活动包括这几点:基线审计,基线发布和产品构造。

软件测试过程中的配置管理就是由这些构成的。该过程不但提供给了我们良好的理论知识和清醒的认知,还让我们清楚的了解到软件测试过程中应该进行的工作有哪些。要想研发出好的软件需要进行好的软件测试。而要想进行好的软件测试,就需要我们掌握软件测试过程中的配置管理,并且了解该怎么样去运用它。只有对其有了深入的了解之后我们才能更好的进行软件测试工作,运用科学而且标准的测试配置管理知识为软件质量提供保障。 2.2.3 测试配置管理的主要参与人员及其分工

了解了配置管理的目标和阶段以及如何进行软件测试配置过程管理,仅仅这些是不够的。有了这些知识,我们还不能够对软件测试进行完整的配置管理,不能凭借这些来有效的保障我们的软件质量。在这些基础之上,我们还需要对软件测试配置管理中的角色进行分配和分工。唯有如此才能确保在软件的开发和维护中,我们能够使配置管理活动得到贯彻执行。因此在制定测试配置管理计划和开展测试配置管理之前,我们首先要确定配置管理活动的相关人员以及他们的职责和权限,下面 我们来详细的了解配置管理过程中主要的参与人员和他们分职责分工。

(1)项目经理(PM,Project Manager)。项目经理作为整个软件的开发以及整个软件的维护活动的负责人,那么他的职责是什么呢?他的主要职责包括采纳软件测试配置控制委员会的建议,对配置管理的各项活动进行批准,并且在批准之后还要控制它们的进程。项目经理的具体工作职责如下:首先制定项目的组织结构以及配置管理策略;然后要批 准和发布配置管理计划;再然后要对项目起始基线和软件开发工作里程碑进行制定;最后要接受并审阅配置控制委员会的报告。

(2)配置控制委员会(CCB,Configuration Control Board)。该委员会的职责则是对配置管理的各项具体活动进行指导和控制,并且为项目经理的决策提供建议。该委员会的具体工作职责如下:首先是要批准软件基线的建立以及配置项的标志;然后是制定访问控制策略;再然后是建立、更改基线的设置,和审核变更申请;最后是根据配置管理员的报告从而决定相应的对策。

(3)配置管理员(CMO,Configuration Management Officer)。根据制定的配置管理计划执行各项管理任务这就是配置管理员的职责,配置管理员要定期向CCB提交报告,同时还要列席CCB的例会,他的 具体工作职责如下:第一,对软件配置管理工具进行日常管理与维护;第二,提交配置管理计划;第三,各配置项的管理与维护;第四,执行版本控制和变更控制方 案;第五,完成配置审计并提交报告;第六,对开发人员进行相关的培训;第七,开发过程中存在的问题加以识别并制定解决方案。

(4)开发人员(Dev,Developer)。开发人员的职责为在了解了项目组织确定的配置管理计划和相关规定之后,按照配置管理工具的使用模型来完成开发任务。

只有在清晰的了解了软件测试配置管理的概念,构成,原理和配置管理的人员及其分工之后,企业才能去灵活的应用它,在企业的软件测试过程中去严格的执行它,我相信一个企业只要做好这一步,就一定能够做好软件测试工作。从而保证软件的质量,满足用户的需求。

2.3 测试配置管理的应用

下面我们以一个实际项目中的配置管理的例子来介绍项目中的配置管理应用。我们用来示例的项目是电信的一个项目,项目人员为16人,项目周期为一年,前期主要为开发工测试工作,后期的主要是由维护人员进行系统维护和调整。在整个项目正式启动之前,配置管理工作就可以开始了。首先,应该评估团队当前的配置管理现状:清楚了解测试团队当前配置管理的现状是计划配置管理实施的基础,评估团队当前的配置管理现状有两种方法,一种是自己进行,另外一种是引入外部专业咨询人员来完成评估活动。有了评估的结果之后才能进行改进,因此,这项工作一定要做好。然后,定义实施的范围,在经过了评估之后,会找出很多的改进点,对于这些改进点,必须要花费大的精力来思考解决。还需要指定一个专门的人员就是配置管理员。在一个建立了配置管理平台的团队中他负责掌控整个团队的工作流 程和成果,要负责维护和管理配置管理系统。有一个合格的配置管理员能够为整个团队的进度带来极其良好的影响。而在配置管理工作开始后的第一步就是一份配置管理计划。一般而言,需要在配置管理计划中明确的内容包括:1、配置管理软硬件资源;2、配置库结构;3、人员、角色以及配置管理规范;4、基线计 划;5、配置库备份计划,6执行配置审计;下面我们来围绕其中一些内容就行详细描述:

配置管理环境:包括软硬件环境。具体的资源需求应该根据项目实际情况来确定,一般需要考虑的包括:网络环境、配置管理服务器的处理能力、空间需求,配置管理软件的选择等。配置管理环境的确定需要综合考虑各个方面的因素,包括我们采用的工具,人员对配置管理工具的熟悉程度等,同时,配置管理软件和测试工具的集成程度也是一个必须考虑的因素,根据我们的经验,选择一个和测试环境集成紧密的配置管理工具至少可以减少20%花费在Check In/Check Out和配置管理人员保持配置库完整上的工作量。

然后是配置管理工具的选择:从测试人员具有的配置管理工具使用经验和配置管理工具使用的难易度方面来说,VSS是最好的选择,在现有的基础上只需要对测试人员进行简单培训;考虑到和测试工具的集成,VSS也是一个不错的选择。不过本项目还要求对远程接入方式的支持,以及对Solaris平台的支持,VSS肯定是不能满足要求的(VSS通过VPN方式应该是可以实现对远程访问的支持,但VSS的完全共享方式实在是不敢在Internet上使用)。 除VSS外,可以选择的配置管理工具还有CCC Harvest、ClearCase、CVS等,但Harvest和ClearCase使用起来比较复杂,需要一个专门的配置库管理员负责技术支持,还需 要对测试人员进行较多的培训。

最后是配置库维护和备份计划:配置库的维护的备份需要专职的配置库管理员来负责。在整个项目中我们采用的配置库维护策略是根据Microsoft的 Best Practice白皮书建议,包括以下要点:1.保持配置数据库的大小不超过5G;Microsoft建议,配置库的大小在3-5G比较合适,太大的数据 库会极大影响VSS的效率;2.每周进行VSS数据库的分析(Analysis),发现问题及时修正;VSS提供了Analysis和Fix工具,由于不 合理的Delete等操作,VSS数据库有可能会出现一些Interrupt Data之类的问题,通过定期的每周的分析工作,可以极大减少数据库出现问题的风险;3.每日进行配置库的增量备份,每周进行数据库的完全备份;VSS库的备份可以通过VSS自己的Archive功能或者是操作系统的Backup程序来进行。VSS的Archive功能对VSS中的文件数据进行压缩并保留 VSS的所有状态,但只能对VSS库进行完全备份,不能实现增量备份功能。Windows2000 Server提供的Backup实用程序可以对文件进行备份,由于VSS库就是以文件形势存在的,因此针对VSS的data目录进行备份也可以完全达到备 份的目的,使用系统备份工具的好处是可以实现增量备份。我们在实际中使用的系统的备份工具,每周五生成的完全备份采用刻录光盘的方式保存,每天的增量备份 数据存放在文件服务器上进行备份。

3、软件测试的测试版本控制

3.1 测试版本控制的必要性

通过上面我们对软件测试的配置管理有了详细的了解,此外我们还需要了解配置管理中的一方面,那就是软件测试过程中的版本控制,这同样也是软件测试过程中不可缺少的一部分。很多人不了解软件测试过程中的版本控制,甚至认为软件测试不需要版本控制。这种想法是错误的,在软件测试中也同样需要版本控制,这是软件测试中不能缺少的一部分。如果测试组长或者测试人员不对软件测试进行版本控制,那么这样带来的危害也是显而易见的。软件测试过程中如果缺乏版本控制,我们很难保证测试进度和测试的一致性。我们知道在进行测试工作时,很容易出现的是出现冗余这一问题,这样很容易导致本地版本和服务器版本的不一致,软件测试过程中缺乏版本控制就会造成上面这些问题。由此可见,软件测试是离不开版本控制的。在测试过程中适合的版本控制可以有效的提高开发和测试效率,消除很多 由于版本带来的问题,并且可以确保在软件开发和测试过程中,能够及时并且正确的更新不同的人员所涉及的同一文档。

3.1.1 测试版本控制的概念

软件测试的版本控制简单的说就是对测试有明确的标识、说明、并且测试版本的交付是在项目管理人员的控制之下。用来识别所用版本的状态就是对测试版本的标识,对不同的版本进行编号,软件质量稳定度趋势的反映也可以由测试的版本控制体现。版本控制是软件测试的一门十分实用的实践性技术,将各次的测试行为以文件的形式进行记录,并且对每次的测试行为进行编号,标识公布过的每一个测试版本,以此来进行测试排序,比如将最初的版本标识为1,经过测试后,之后的版本依次标识为2,3,4等等。

图3.1 Linux下的版本控制

图3.2 Git版本控制

3.1.2 测试版本控制的作用

软件测试的版本控制有两个方面的作用:一个方面是标记历史上产生的每个版本的版本号和测试状态,另一个方面是保证测试人员得到的测试版本是最新的版本。所谓版本控制其实就是跟踪标记测试过程中的软件版本,以方便对比的一个过程,通过版本控制来表明各个版本之间的关系,和不同的软件开发测试阶段。从而 方便测试工作的进行。版本控制是测试人员不可缺少的一种技术。有了软件测试的版本控制,测试人员在软件测试工作可以更加高效并且有针对性的进行。3.1.3 如何做好测试版本控制

软件测试版本控制其实是在软件测试中为了便于追溯和跟踪问题而出现的,对测试版本的控制实际上就是对软件测试过程中的各种测试行为的管理和控制。软件测试的版本控制,主要是指对于测试对象的版本控制,也就是指测试小组在软件测试过程中对开发部提交给测试部门的产品进行版本控制。如果开发小组不能够规范的管理软件版本,那么这时候测试小组对于产品进行版本控制就将显得十分重要,这时软件测试小组要保证测试对象的可控性被限制在我们可以控制的范围之内。对此,我们建议开发小组和测试小组要做到如下要求:两个小组不但分工明确,还要协商出一个明确的约定,指定专门的测试版本负责人来专门负责版本控制这一块, 让这个负责人去制定版本控制的提交原则,在软件研发过程中对提交的情况要进行详细的记录,通过这些措施,这样就能在基本上对因为版本失控可能造成的测试失 误或者无效加以避免。

举一个软件测试项目中版本控制的例子,一个公司的员工负责了一个软件测试项目,在项目开展初期,该项目的测试工作进行的还算顺利。但是在测试后期工作即将结束时,却出现了问题。而这个问题的出现正是由于版本控制不当,在这个软件测试项目中,他们将测试过程中发现的bug提交给开发人员,开发人员在对测试人员提交的bug进行修改,在对这些bug修改后开发人员会将修改后的代码放入当前的软件版本之中,问题正是出现在这个阶段。那么为什么问题会出现在这 个阶段呢?其实是因为对于修改过的代码,我们不能够保证他们一定是正确的,很可能在开发人员修改过之后,仍然是错误的,或者在修改过之后仍然会给软件带来 别的问题,这种情况下就会给软件测试人员的测试工作带来新的麻烦。这样就会造成一个很严重的后果,那就是测试人员对开发人员提交的新代码会很紧张,不能彻底放心,测试人员对新提交的新修正的代码还要在进行验证,进行排错,来确保不会因此而带来新的隐患,新的漏洞。在这个时候我们就应该思考怎样去解决这个问题了,这时我们就可以尝试一下软件测试的版本控制了。首先测试人员要测试开发人员提交的代码,将测试过程中查找到的bug进行提交。而当测试人员提交的bug到了开发人员手中之后,开发人员要针对这些bug进行修复工作,并且将修改后的代码放入程序中,作为新的软件版本。但是绝对不能将它再放回到现在正在进行的测试版本中。而测试人员在完成这一轮的测试工作后,在对新的版本也就是对经过开发人员修改过得下一个版本展新一轮的测试。而这就是软件测试过程中 的版本控制。

3.1.4 缺乏测试版本控制的危害

软件测试缺乏测试版本控制会带来很多危害:随着计算机软件技术的日趋成熟和日益复杂。现代的软件产品规模越来越大,结构越来越复杂。单纯的手工测试不再能够满足软件工程中的测试需要。一两个人完成一个项目的测试工作的时代不复存在,一个大型项目的测试工作,现在都是由很多测试人员参与并且有不同的分工,以团队合作流水线式的方式来开展工作的,他们在测试过程中是协同完成测试工作的。在进行测试的时候,同一个板块的测试会由很多人共同负责,他们将会分配到同样的任务。在这么多人完成同一板块的过程中,企业怎样去保证每个人的测试工作对软件产生的影响能够综合到一起产生好的作用。而不是因为人员的差异而对测试版本造成不一致性呢?运用软件测试中的版本控制就成为此时有效地解决途径,有效的版本控制能够很好的解决这些问题,并对软件的开发进行产生好的积极的影响。但是如果版本控制不当则会造成很多让人搞到棘手的问题。

(1)缺乏版本控制,将难以保证测试进度

大多数的测试人员都希望他们进行的测试工作是完美的,经过他们测试后的软件更是完美无缺的。这种想法是好的,但是一个软件在它的整个生命过程中是不可能完美到没有一点错误存在的,我们只能尽我们所能去不断地完善它。这时如果能够提供有效的版本控制就会极大地提高软件测试的工作效率。在测试中对测试版本进行版本控制时,我们起码要做到能够掌握软件过程中的每个版本。在每个版本中,我们能够找到哪些功能不过关,哪些功能没问题。对于新的测试版本不管在测试工作中的哪个时间段,都应该有一个可以用来比较的对象。并且能够与之前的版本进行对比。

(2)缺乏版本控制,难以保证测试的一致性

软件测试工作因为十分复杂并且有很多人员参与其中,在进行测试工作时,因为测试人员的分工不同,不同的测试人员要负责不同的测试模块。但是因为软件有其整体性,所以测试人员要互相协作,那么在测试过程中则必然会产生交叉。所以测试工作是一项十分复杂的工作,它是由很多人一起共同协作完成的。在整个测试中为了保证测试过程中的一致性我们必须要找到一个平衡点。而大量的实践证明如果进行有效的版本控制,将有效保证测试过程中的一致性,大大的降低因为缺乏版本控制或者流程管理可能带来的诸多问题。

(3)测试版本冗余,易出现误用风险

因为有众多测试员参与到软件测试过程中,而进行测试工作时每个人都必须使用一台机器,那么在每个人的机器上都要拷贝一个待测软件。随着测试工作的进行,在测试过程中会不断产生新的软件版本,为了测试需要,每个人的机器上都要不断更新软件版本,那么每个人的电脑上必然会保存不同时期的软件版本。而这些不同的测试版本随着时间的推移和测试工作的复杂很容易混杂在一起,造成测试人员无法分清每个版本之间的差异,甚至分不清对于当前版本应该做什么事情,从而给测试工作带来极大的困扰,出现版本的冗余。这时,如果缺乏有效的测试版本控制就会增大测试风险,给测试工作带来麻烦。

(4)容易导致本地版本和服务器版本不一致

因为测试版本的众多和混乱,测试小组在测试工作上不但要花费更多的时间和精力,还可能造成不必要的重复性测试和不必要性测试,当测试版本不及时更新时,会造成测试版本和现行版本的不一致,这些就是缺乏版本控制和管理的结果。因而加强测试过程中的版本控制是一项很重要的工作。(5)缺乏测试文档可追溯性

版本控制在提供可追溯性的文件的同时还能够为各种测试版本提供文档管理支持。使我们能够很方便的随时查阅在软件测试过程中生成的各种文档。

3.2 测试版本控制方法及工具解析

3.2.1 测试版本控制的方法

有效的版本控制能够极大的方便软件测试工作,提高测试工作的效率,那么我们如何才能成功的进行版本控制呢?为此我们应该制定一套标准,制定相应的版本控制方法规划来规范化软件测试的版本控制。方法如下:

(1)在软件测试过程中制定规范的版本控制管理制度,明确整个测试中的测试需求,选择合适的版本控制切入点,把版本控制和测试里程碑结合到一起来实现阶段性成果,从而避免测试规划过程混乱的风险。(2)通过制定合理版次规划和监控机制来进行版本控制,为了有效的管理测试项目所需的版本次数,应该对测试工作量进行合理的评估,以此来做出合理的版次规划。(3)我们不能忽略版本控制管理员在版本控制中的重要性,版本控制管理员在测试版本控制中的重要性是不 可估量的,离开了版本控制管理员和缺乏版本控制的情况是等效的。(4)我们还要做好版本控制的文档管理,对相关文档进行严格规范的管理,将测试过程中版本 控制产生的相关文档记录、标识是很重要的,有了这些能够很方便的跟踪和监控测试版本的执行。(5)选择合理的应用版本控制的软件工具,能够极大的提高测试 工作的效率,大大提高测试活动的优质性。

3.2.2 版本控制工具解析

工欲善其事,必先利其器。介绍完了版本控制的方法和软件测试中版本控制的重要性,要想方便的进行测试工作就必须进行有效的版本控制,选择一款好的测试 工具这时就显得尤为重要。下面我就简单介绍一种版本控制工具,同时它也是一种配置管理的工具。那就是ClearCase。这是由RATIONAL公司开发 的一款配置管理工具。下面我来讲解下ClearCase的四种功能:(1)控制任何文件的版本(Version Control),它能够维护和控制软件版本,有效的管理版本内容。(2)在版本树中组织元件发展的过程(Workspace Management)。针对目录结构它可以定制一个版本树的结构,并且其中包含多层分支和子分支。(3)对目录和子目录进行版本控制(Build Management),比如:在其中建立一个新的文件夹,或者对文件名进行修改,又或者新建子目录或者在不同的目录间移动文件等。(4)明确项目设计的流程(Process Control)。比如:可以通过将不同的权限授权给全体人员来阻止某些修改的发生,立刻通知团队成员任何时刻某一事件的发生,对开发的进程建立一个永久 记录并不断维护它。

3.3 测试版本控制应用

我们以一个实际项目中的例子来介绍项目中的版本控制。在这个项目中,我们已经分好了测试小组及组内成员的分工,启动软件测试的条件已经具备,在开发人 员发布了测试版本后,有相应的文档支持比如自测报告、软件版本说明等等,然后启动测试工作,其中在对其版本进行测试的过程中,测试小组对项目进行版本控制 分以下几步:第一,制定规范的版本控制管理制度,测试小组要了解和明确整个测试的需求,选择合适的版本控制切入点,对于测试中产生的测试版本要进行严格控 制,还要规范化的控制测试过程中产生的不同时期的测试版本,通过把版本控制与测试里程碑的结合来实现阶段性成果,以规避测试过程混乱的风险。第二,应该制 定合理版次规划和监控机制,对测试项目所需的版次数量进行有效管理,并且对版次做出合理的规划。在整个测试项目的关键位置要设立检查点,要能根据版次规划 随时监控版本更新,及时发现问题,并对出现的异常现象做出快速反应,这样才能使得测试过程更加清晰和更有计划性。第三,测试小组要指定版本控制管理员。测 试版本控制作为一个贯穿整个测试周期的一项活动,测试版本控制会涉及到很多的人员角色,其中最为主要的人力资源就是测试版本控制管理员。在一个建立了良好 版本控制机制的测试团队中测试版本控制管理员是十分重要的。他负责掌控整个测试过程的测试版本,要负责记录和监控测试中不同测试阶段产生的测试版本。他的 地位是不可动摇的。有一个合格的测试版本控制管理员能够为版本控制工作带来极其良好的影响。最后是选择一款合适的版本控制工具,在进行版本控制的过程中测 试小组选择一款合适的测试版本控制软件是不可缺少的。常见的版本控制工具有CVS,SVN,Clearcase,其中CVS 是一款开放源代码软件,其功能强大、跨平台、支持并发版本控制而且免费,所以它在中小型软件企业中得到广泛使用。但是它最大的遗憾就是缺少相应的技术支 持,许多问题的解决需要自己寻找资料,甚至是研究源代码。而SVN是对CVS的缺点进行改进产生的版本控制工具,相比于CVS而言,SVN更为简单易用, 且SVN有其特定平台的客户端工具。如TortoiseSVN,是为windows外壳程序集成到windows资源管理器和文件管理系统的SVN客户 端,使用相当方便。最后一种版本控制工具Clearcase是Rational公司一款重量级的软件配置管理工具。与CVS和SVN不同的 是,Clearcase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制。Clearcase贯穿于整个软件生命周期,支持现有的绝大多数操作 系统,但它的安装、配置、使用相对较复杂,需要进行团队培训。选择一款合适的版本控制工具不但能够提高测试工作效率,而且也会大大提高测试活动的优质性。

4、小结与展望

本文从对软件测试概念的讲解,软件测试工作的重要性讲解开始,又通过国内外软件企业软件测试的现状为切入点,对软件测试过程中必须要进行软件测试配置 管理进行了讲解和叙述。详细介绍了软件测试配置管理的必要性和不可或缺性,并且详细叙述了配置管理的概念,过程和方法,以此来保证软件产品质量。又通过对 软件测试过程中的版本控制进行讲解,叙述了版本控制在软件测试中的重要性。同时对版本控制的概念,意义还有方式方法进行了论述。讲述了版本控制在软件测试 以及整个软件过程中的重要性。本文从软件测试的配置管理和版本控制两个方面,讲述了如何有效的进行软件测试工作来保证软件的质量。



LoadRunner性能测试基础
软件测试结果分析和质量报告
面向对象软件测试技术研究
设计测试用例的四条原则
功能测试中故障模型的建立
性能测试综述
更多...   


性能测试方法与技术
测试过程与团队管理
LoadRunner进行性能测试
WEB应用的软件测试
手机软件测试
白盒测试方法与技术


某博彩行业 数据库自动化测试
IT服务商 Web安全测试
IT服务商 自动化测试框架
海航股份 单元测试、重构
测试需求分析与测试用例分析
互联网web测试方法与实践
基于Selenium的Web自动化测试
更多...