摘要:
随着计算机软件技术的发展,各种计算机软件种类繁多,功能各异,加上计算机软件规约的约束和发展,软件的规范性变得更加重要。为了开发合格的软件,在软件开发过程中,离不开软件测试。为了更好的完成软件测试工作,在软件测试过程中进行配置管理和版本控制尤为重要。
本文首先介绍了软件测试过程中的配置管理概念和版本控制概念,然后对软件测试过程中的配置管理和版本控制做出了详细分析,论述了配置管理的流程、方法意义。接着介绍了版本控制的评价标准,软件测试过程中版本控制方法的应用及几种版本控制软件,后阐述了在软件测试过程中的版本控制的作用,以及怎样有效的在软件测试过程中进行软件测试版本控制。
关键词:软件测试;配置管理;版本控制;
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, 内部IT 50,合计 5345。仔细分析对比这两组数据,从中我们可以看出,国内外软件企业对软件测试的重视程度,他们不惜将大量的资金,人力物力投入其中。国内外的软件企业之所以如此重视软件测试,原因只有一个那是软件测试已成为软件开发过程中不可或缺的一部分。假如软件开发过程中离开了软件测试,我们可以想象后果将会有多么的严重。首先我们无法保证软件的质量,也无法保证软件是否满足用户的需求,也无法保证我们程序的可用性。在软件开发中如果不进行软件测试,很可能使我们的程序成为镜中花水中月,不可实现。唯有充分了解软件测试在软件开发过程中的重要性,我们才能更加重视软件测试工作。
了解了软件测试在软件开发过程中的作用和意义,以及国内外对软件测试的重视程度和资源投入对比,为了保证软件质量,使我们的软件更加符合用户需求,我们应当思考如何更好地进行软件测试,在软件企业投入了足够的人力物力等资源之后,怎样利用这些资源来更好的进行软件测试工作自然成为了我们应该思考的问题。
2、软件测试的测试配置管理
2.1 进行测试配置管理的必要性
在拥有了足够的资源和人力之后,我们能否认为软件测试工作可以很好的进行并且能够保证软件测试过程不会出现问题呢?也许我们认为只要需要的测试条件满足了,我们可以圆满的完成测试工作了,其实这样的观点是错误的。软件测试工作是由人来进行的,因而首先要考虑到人的问题,一项工作只要有人的参与,必须要将人的因素考虑进去。人无完人,金无足赤,测试人员对软件测试工作造成的负面影响在软件测试中是不能够忽略的。软件是由人来编写实施的,但是软件开发又是一个极其容易产生错误的复杂过程,因其产生注定了它不会是一个简单的过程。尽管程序员和软件工程师等为了完善软件而做出了巨大的努力和工作,但是软件错误仍然是不可避免的。世上不存在百分百完美的软件,因此软件过程中的软件错误是不可避免的,这是他自身的一种特性。我们所能做的是尽量减少软件中的错误,争取做到使这些错误可以忽略不计,或者尽量不影响我们的正常使用。给定了足够的资源之后,我们再进行软件测试工作,这时仍然不能认为没有问题了,还需要在软件测试时进行配置管理。在软件测试中缺少了测试的配置管理我们是做不好测试工作的。我们进行软件测试是为了以少的时间,少的人力物力去尽可能多的发现软件中潜藏着的各种错误和缺陷。但是伴随着软件测试工作量的加大,软件企业仅仅投入更多的人力物力以及其他各种资源是不够的,他们还需要思考除此之外怎样才能更好的进行软件测试。为了更好的进行软件测试,我们应该对测试人员、测试环境、生产环境进行配置管理。只有建立了完整的合理的软件测试配置管理体系,软件测试工作才能更好的进行,更加完美的完成测试目标。
如果在软件测试过程中缺少了测试配置管理将会造成及其严重的后果。据我们实际调查了解到,在日常的软件研发工作中,很多软件企业都会或多或少的在软件测试时遇到很多的问题,而这些问题的产生都是因为在测试过程中缺乏配置管理流程和工具。因为人员具有频繁的流动性,并且在组织的过程中会产生知识和财富的流失,再加上现代社会的激烈竞争,如果一个企业没有设计配置管理流程和使用必要的配置管理工具,可能会因此而造成无可估量的损失,甚至导致整个软件项目的崩溃。因而作为一个软件企业,必须要做到及时了解项目的进展状况,对项目进行管理,遇到突发状况的解决。软件工程思想发展到现在,认为在软件过程中如果能够越早的发现缺陷和风险,这时只要采取相应的措施,所要付出的代价越小。缺乏配置管理流程的一个很明显之处是测试过程中缺乏并发执行的手段,没有了配置管理的支持,软件过程中的并发执行将会变得十分的困难。这时往往会造成修改过的bug重复出现,又或者几个人员进行相同的测试工作和进程,从而产生不必要的浪费。如果企业不能很清晰很流畅的对整个软件测试过程进行管理,会造成测试工作的不同步,不一致。在测试工作中需要测试人员完成的没有完成,而暂时不需要或者以后在完成的却首先完成了,这样会增加测试工作的复杂性和难度,因此我们需要在软件测试中进行配置管理。