软件测试过程改进模型入门介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试过程改进模型入门介绍

转自51testing

摘要:测试常被看作是一个昂贵且不可控的过程。测试花费太多的时间,耗费的比计划投入的多,无法提供充分的关于测试过程本身的质量情况。因此,信息系统的质量和商务风险难以判断。

很多组织意识到改进测试过程可以解决这些问题。但是,实际上为了改进和控制测试过程到底应该采取什么步骤以及什么次序是困难的。

基于实践知识和测试过程开发经验,测试过程改进模型(以下简称TPI)被开发出来。TPI提出了一个组织内测试过程成熟度的观点。

在这份文件里将介绍TPI的内容和结构。同时,测试过程改进的一些方面及面临的挑战也将做些讨论。

1、概述

测试常被看作是一个昂贵且不可控的过程。测试花费太多的时间,耗费的比计划投入的多,无法提供充分的关于测试过程本身的质量情况。因此,信息系统的质量和商务风险难以判断。

很多组织意识到改进测试过程可以解决这些问题。但是,实际上为了改进和控制测试过程到底应该采取什么步骤以及什么次序是困难的。

基于实践知识和测试过程开发经验,测试过程改进模型(以下简称TPI)被开发出来。TPI提出了一个组织内测试过程成熟度的观点。

在这份文件里将介绍TPI的内容和结构。同时,测试过程改进的一些方面及面临的挑战也将做些讨论。

2、软件测试的目的

一个信息系统开发阶段的测试活动可以这样来加以说明:

测试活动是从测试计划、测试准备到测试执行、测试分析这样一个过程,测试的目标是对信息系统(泛指软件)的特性进行确认,以发现该系统应有状态与实际状态的差异。

测试计划和测试准备活动用以定义测试过程何时开始。在任何测试方法应用前(即测试执行阶段前),测试过程要求有明确的计划和准备阶段。

测试可以降低系统质量的不确定度级别,但是测试效果的好坏依赖于系统发布所带来的风险,还有我们愿意花费在降低不确定度等级上的时间和资金。

3、测试等级

为了有效地组织测试,不同的测试等级需要加以应用。每一个测试等级对应某一组需求、功能或者技术说明。本章内容主要基于[KoP99]和[ISEO4]。

3.1 低级测试

低级测试陷于系统的各个组成部分的测试中,例如程序单元,单独的或者关联的。从系统开发开始,即开始单元,程序和模块的测试。如上面所述这种分离性依赖于程序下部结构和所使用的编程语言。这类测试的执行者多数时候是开发人员。

当众多的系统基本单元确认已经符合他们的技术规格时,作为系统构成的稍大些的模块在集成测试中进行测试。集成测试主要关注与数据流和程序间的接口部分。

3.2 高级测试

高级测试全面、彻底的测试产品。在低级测试已经完成并且缺陷已得到纠正后,要进行系统测试以检验系统是否满足了功能和技术规格说明书中定义的要求。

系统测试完成后,向客户提交产品进行验收。验收测试需要模拟搭建一个产品环境。

高级测试尤其应该被作为一个单独的过程来执行。过去的经验显示高级测试过程的设计远比低级测试过程的设计更重要。

4、关于测试的几个问题

本章指出测试中的一些常见问题以及测试过程改进的一些必要方面,本章内容基于[KoP99]。

4.1 测试的原始形式

在系统进入产品阶段即将被发布前,测试工作短暂的开展一段时间,并且执行测试工作的人员是非专业的,而是随机的,谁有空闲谁来做。这就是测试的最初形式和状态。这类测试往往在系统进入产品发布阶段后或者近期没有发现新的缺陷即宣告终止,结果就是系统带着一些隐含的缺陷即被发布,导致在后续的因为这些缺陷而引发的软件重做、重测上付出高昂的代价。

4.2 当前情势

现在,在很多单位或者组织中间对于一个可管理的测试过程的重要性已经有了越来越多的共识。测试在执行前应首先进行计划制定和准备工作,计划和准备的内容应该建立于开发文档上。组织内应该清楚地知道哪些测试过,哪些未被测试过。但是,不管怎样,测试始终面要面对时间短、人员少、资源短缺以及

技术支持度低等现状。测试处在开发周期的末端,并且往往陷入一个反复开发、反复测试的无休止的死循环中。即便测试停止之后,对于系统的质量等级依然是一个不确定的答案。

4.3 最新发展

要想能够面对当前市场的激烈竞争,组织必须要缩短新产品投向市场的时间。尽管开发过程正在不断加快,但是在开发过程的任何一环节都有可能引入的错误却没有丝毫迹象显示正在减少。相关经验的缺乏和不断上升的技术复杂度佐证了上述现象是正常的。即使现在的测试过程对于当前情势来说看起来是相当令人满意的,但是有一点很明显这不是软件测试的未来模式。

5、改进测试过程

5.1 测试过程改进的必要性

前一章提及的那些问题的产生原因可以归结于不可控的或者准备不足的测试过程。消除这些原因就是测试过程改进的原动力。参考Koomen和Pol关于测试过程改进的论述,TPI可以定义如下:从信息服务整体出发,统筹与优化测试过程的质量、成本和周期的过程。

这里的质量是指测试过程关于被测对象质量方面的度量程度,即测试质量,系统或者程序等具体测试对象的质量不在此范畴。

当然,一个质量上改良的测试过程并不能给被测系统带来更好的质量。测试本身不会提高系统的质量。事实上,它能做到的是确认系统已具有的质量特征,并试图通过所提供的这些质量信息驱使组织去改善产品质量。

在整个信息服务来看,测试过程并不是孤立的。低成本、高效率的追求,不是测试的本质目的,测试应该为信息服务更高的效能(信息服务的整体水平)做出更多贡献。

测试过程改进的一个目标应该是尽可能多地发现缺陷、降低改正成本、更早的报告系统质量情况。所有的评测标准要谨慎地相互兼容,以此取得一个能够尽可能早的发现更过重要缺陷的总体策略。

测试要朝着更加专业化的方向发展,提高专业测试技能,职能分工细化,如测试管理、测试技术专家、测试工程师。整个测试过程的进步和质量可以被度量,其度量结果在将来可以作为测试过程改进的输入项加以利用。

5.2 测试过程改进步骤

改进测试过程类似于任何其他过程的改进。测试过程的改进,通常遵循以下步骤:

相关文档
最新文档