软件测试过程管理实践文档格式.docx
- 文档编号:15725876
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:9
- 大小:111.11KB
软件测试过程管理实践文档格式.docx
《软件测试过程管理实践文档格式.docx》由会员分享,可在线阅读,更多相关《软件测试过程管理实践文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
引言
1963年,在美国发生了这样一件事:
编程人员把一个FORTRAN程序的循环语句DO5I=1,3误写为DO5I=1.3。
一点之差导致飞往火星的火箭爆炸,造成1000多万美元的损失。
这种情况的发生,迫使人们考虑在软件投入使用之前必须进行彻底的测试。
今天,在软件比较发达的国家,软件测试已经成为一个独立的产业,软件公司纷纷建立独立的测试队伍研究测试技术并开展测试工作。
中国的软件测试起步较晚,但随着我国软件产业的蓬勃发展以及人们对软件质量的重视,软件测试正在成为一个新兴的产业。
近两年来,国内新成立专业性测试机构10余家,一批批专业的软件测试人员正涌现出来。
每年国内都有大量的测试技术交流会议举办,有大量的测试研究论文在专业刊物上发表。
在测试技术发展的同时,测试过程的管理显得犹为重要。
一个成功的测试项目,离不开对测试过程科学的组织和监控,过程管理已成为测试成功的重要保证。
1测试过程概述
1.1软件测试过程概述
软件测试过程是一种抽象的模型,用于定义软件测试的流程和方法。
众所周知,开发过程的质量决定了软件的质量,同样的,测试过程的质量将直接影响测试结果的准确性和有效性。
软件测试过程和软件开发过程一样,都遵循软件工程原理,遵循管理学原理。
随着测试过程管理的发展,软件测试专家通过实践总结出了很多很好的测试过程模型。
这些模型将测试活动进行了抽象,并与开发活动有机的进行了结合,是测试过程管理的重要参考依据。
1.2软件测试过程模型介绍
V模型
V模型最早是由PaulRook在20世纪80年代后期提出的,旨在改进软件开发的效率和效果。
V模型反映出了测试活动与分析设计活动的关系。
在图1-1中,从左到右描述了基本的开发过程和测试行为,非常明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。
图1-1 软件测试V模型
V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;
系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;
验收测试确定软件的实现是否满足用户需要或合同的要求。
但V模型存在一定的局限性,它仅仅把测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。
W模型
W模型由Evolutif公司公司提出,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。
如图1-2所示,W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。
W模型强调:
测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。
W模型有利于尽早地全面的发现问题。
例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。
同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。
但W模型也存在局限性。
在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
这样就无法支持迭代的开发模型。
对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。
图1-2 软件测试W模型[NextPage]
H模型
V模型和W模型均存在一些不妥之处。
如前所述,它们都把软件的开发视为需求、设计、编码等一系列串行的活动,而事实上,这些活动在大部分时间内是可以交叉进行的,所以,相应的测试之间也不存在严格的次序关系。
同时,各层次的测试(单元测试、集成测试、系统测试等)也存在反复触发、迭代的关系。
为了解决以上问题,有专家提出了H模型。
它将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来,如图1-3所示。
图1-3 软件测试H模型
这个示意图仅仅演示了在整个生产周期中某个层次上的一次测试“微循环”。
图中标注的其他流程可以是任意的开发流程。
例如,设计流程或编码流程。
也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以(或者说需要)进行了。
H模型揭示了一个原理:
软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。
H模型指出软件测试要尽早准备,尽早执行。
不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。
其他模型
除上述几种常见模型外,业界还流传着其他几种模型,例如X模型、前置测试模型等。
X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。
前置测试模型体现了开发与测试的结合,要求对每一个交付内容进行测试。
这些模型都针对其他模型的缺点提出了一些修正意见,但本身也可能存在一些不周到的地方。
所以在测试过程管理中,正确选取过程模型是一个关键问题。
1.3软件测试过程模型选取策略
前面介绍的测试过程模型中,V模型强调了在整个项目开发中需要经历的不同的测试级别,但忽视了测试的对象不应该仅仅是程序。
而W模型在这一点上进行了补充,明确指出应该对需求、设计进行测试。
但是V模型和W模型都没有将一个完整的测试过程抽象出来,成为一个独立的流程,这并不适合当前软件开发中广泛应用的迭代模型。
H模型则明确指出测试的独立性,也就是说只要测试条件成熟了,就可以开展测试。
在实际测试工作中我们应该尽可能地去应用各模型中对项目有实用价值的方面,不能强行的为使用模型而使用模型。
在测试实践中,我们采用的方法是:
以W模型作为框架,及早的、全面的开展测试。
同时灵活运用H模型独立测试的思想,在达到恰当的就绪点时就应该开展独立的测试工作,同时将测试工作进行迭代,最终保证完成测试目标。
2测试过程管理理念
生命周期模型为我们提供了软件测试的流程和方法,为测试过程管理提供了依据。
但实际的测试工作是复杂而烦琐的,可能不会有哪种模型完全适用于某项测试工作。
所以,我们应该从不同的模型中抽象出符合实际现状的测试过程管理理念,依据这些理念来策划测试过程,以不变应万变。
当然测试管理牵涉的范围非常的广泛,包括过程定义、人力资源管理、风险管理等等,本节仅介绍几条从过程模型中提炼出来的,对实际测试有指导意义的管理理念。
2.1尽早测试
“尽早测试”是从W模型中抽象出来的理念。
我们说测试并不是在代码编写完成之后才开展的工作,测试与开发是两个相互依存的并行的过程,测试活动在开发活动的前期已经开展。
“尽早测试”包含两方面的含义:
第一,测试人员早期参与软件项目,及时开展测试的准备工作,包括编写测试计划、制定测试方案以及准备测试用例;
第二,尽早的开展测试执行工作,一旦代码模块完成就应该及时开展单元测试,一旦代码模块被集成成为相对独立的子系统,便可以开展集成测试,一旦有BUILD提交,便可以开展系统测试工作。
由于及早的开展了测试准备工作,测试人员能够于早期了解测试的难度、预测测试的风险,从而有效提高了测试效率,规避测试风险。
由于及早的开展测试执行工作,测试人员尽早的发现软件缺陷,大大降低了BUG修复成本。
但是需要注意,“尽早测试”并非盲目的提前测试活动,测试活动开展的前提是达到必须的测试就绪点。
2.2全面测试
软件是程序、数据和文档的集合,那么对软件进行测试,就不仅仅是对程序的测试,还应包括软件“副产品”的“全面测试”,这是W模型中一个重要的思想。
需求文档、设计文档作为软件的阶段性产品,直接影响到软件的质量。
阶段产品质量是软件质量的量的积累,不能把握这些阶段产品的质量将导致最终软件质量的不可控。
“全面测试”包含两层含义:
第一,对软件的所有产品进行全面的测试,包括需求、设计文档,代码,用户文档等等。
第二,软件开发及测试人员(有时包括用户)全面的参与到测试工作中,例如对需求的验证和确认活动,就需要开发、测试及用户的全面参与,毕竟测试活动并不仅仅是保证软件运行正确,同时还要保证软件满足了用户的需求。
“全面测试”有助于全方位把握软件质量,尽最大可能的排除造成软件质量问题的因素,从而保证软件满足质量需求。
2.3全过程测试
在W模型中充分体现的另一个理念就是“全过程测试”。
双V字过程图形象的表明了软件开发与软件测试的紧密结合,这就说明软件开发和测试过程会彼此影响,这就要求测试人员对开发和测试的全过程进行充分的关注。
“全过程测试”包含两层含义:
第一,测试人员要充分关注开发过程,对开发过程的各种变化及时做出响应。
例如开发进度的调整可能会引起测试进度及测试策略的调整,需求的变更会影响到测试的执行等等。
第二,测试人员要对测试的全过程进行全程的跟踪,例如建立完善的度量与分析机制,通过对自身过程的度量,及时了解过程信息,调整测试策略。
“全过程测试”有助于及时应对项目变化,降低测试风险。
同时对测试过程的度量与分析也有助于把握测试过程,调整测试策略,便于测试过程的改进。
[NextPage]
2.4独立的、迭代的测试
我们知道,软件开发瀑布模型只是一种理想状况。
为适应不同的需要,人们在软件开发过程中摸索出了如螺旋、迭代等诸多模型,这些中需求、设计、编码工作可能重叠并反复进行的,这时的测试工作将也是迭代和反复的。
如果不能将测试从开发中抽象出来进行管理,势必使测试管理陷入困境。
软件测试与软件开发是紧密结合的,但并不代表测试是依附于开发的一个过程,测试活动是独立的。
这正是H模型所主导的思想。
“独立的、迭代的测试”着重强调了测试的就绪点,也就是说,只要测试条件成熟,测试准备活动完成,测试的执行活动就可以开展。
所以,我们在遵循尽早测试、全面测试、全过程测试理念的同时,应当将测试过程从开发过程中适当的抽象出来,作为一个独立的过程进行管理。
时刻把握独立的、迭代测试的理念,减小因开发模型的繁杂给测试管理工作带来的不便。
对于软件过程中不同阶段的产品和不同的测试类型,只要测试准备工作就绪,就可以及时开展测试工作,把握产品质量。
3测试过程管理实践
本节以一个实际项目系统测试过程(不对单元测试和集成测试过程进行分析)的几个关键过程管理行为为例,来阐述上节中提出的测试理念。
在一个构件化ERP项目中,由于前期需求不明确,开发周期相对较长,为了对项目进行更好的跟踪和管理,项目采用增量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 过程 管理 实践