[著作权申明]:本文著作权归谢敏所有。(qq 6573616)任何大幅引用和刊用均需征得作者同意。
软件测试管理
编写 若水
软件测试是保证软件
质量的重要手段,本文从软件质量和软件测试的基本概念出发,介绍了有关软件测试组织与管理的方法,并结合我自己经历的软件测试的组织实施过程,说明软件质量和软件测试的重要性和必要性。
一、软件质量概述
信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件
开发商为了占有市场,必须把软件质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险。在一些关键应用 (如
银行结算系统、证券交易系统等)中使用质量有问题的软件,还可能造成灾难性的后果。软件质量是指与软件产品满足规定的和隐含的
需求的能力有关的特征和特性的全体。
通常来说,软件质量应该包含下面的一些特性:
(1) 功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度;
(2) 易使用性:对于一个软件,用户学习、操作、准备输入和理解输出所作努力的程度;
(3)
可靠性:在规定的时间和条件下,软件所能维持其
性能水平的程度;
(4) 效率:在指定条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度;
(5) 可维护性:在一个运行软件中,当环境改变或软件发生错误时,进行相应修改所做努力的程度;
(6) 可移植性:软件从一个计算机系统或环境移植到另一个系统或环境的容易程度。
软件质量是一个软件企业成功的必要条件,其重要性无论怎样强调都不过分。软件质量与传统意义上的质量概念并无本质差别,只是针对软件的某些特性进行了调整。
二、软件测试及其重要性
软件危机曾经是软件界甚至整个计算机界最热门的话题。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
软件测试:
软件测试的定义有许多种,其中比较权威的是IEEE在1983年提出的:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。”
软件测试的重要:
软件测试在软件生命周期中占据重要的地位,软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。
在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度。
三、软件测试的组织与管理
随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的的测试工作就显得更加困难。然而,为了尽可能多地找出程序中的错误,生产出高质量的软件产品,加强对测试工作的组织和管理就显得尤为重要。
从软件的生存周期看,测试往往指对程序的测试,这样做的优点是被测对像明确,测试的可操作性相对较强。但是,由于测试的依据是规格说明书、设计文档和使用说明书,如果设计有错误,测试的质量就难以保证。即使测试后发现是设计的错误,这时,修改的代价是相当昂贵的。因此,较理想的做法应该是对软件的开发过程,按
软件工程各阶段形成的结果,分别进行严格的审查。
1.测试的过程及组织
当设计工作完成以后,就应该着手测试的准备工作了,一般来讲,由一位对整个系统设计熟悉的设计人员编写测试大纲,明确测试的内容和测试通过的准则,设计完整合理的
测试用例,以便系统实现后进行全面测试。
在实现组将所开发的程序经验证后,提交测试组,由测试负责人组织测试,测试一般可按下列方式组织:
(1)首先,
测试人员要仔细阅读有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写
测试计划,设计测试用例,作好测试前的准备工作。
(2)为了保证测试的质量,将
测试过程分成几个阶段,即:代码审查、
单元测试、
集成测试、
确认测试和系统测