admin管理员组

文章数量:1532440

2024年7月18日发(作者:)

维普资讯

第22卷第5期 

2007年5月 

乐山师范学院学报 

Journal of Leshan Teachers College 

Vo1.22.No.5 

Mav.2007 

软件测试简介及其常见认识误区 

张治国 

(枣庄学院网络与现代教育技术中心,山东枣庄277160) 

摘要:随着市场对软件质量要求的不断提高,软件测试不断受到重视,本文先对软件测试进行简单的介绍,然后对大 

家意识中一些比较普遍的关于软件测试的误区进行剖析,使大家对软件测试的认识更上一层楼。 

关键词:软件测试;软件开发;ik识误区 

中图分类号:TP31 1.52 文献标识码:A 文章编号:1009—8666(2oo7)05—0103—02 

软件测试作为软件工程最主要的组成部分,伴随着整 

个软件产业从萌芽到日趋成熟的发展过程,也经历了从无 

到有、从无人问津到形成系统理论并逐渐形成一门独立学 

科的历程。 

本文通过先对软件测试的简单介绍,然后对大家意识 

中一些比较普遍的关于测试的误解进行剖析,使我和大家 

测试活动,即针对需求、功能、设计和编码的测试,其开展 

的次序则正好相反。换言之,代码最后被开发,而相应的单 

元测试首先被执行;需求则最早开发,但相应的验收测试 

到最后进行。v模型揭示了软件测试活动分层和分阶段的 

本质特性。 

v模型非常明确地标明了测试过程中存在的不同级 

别,并且清楚地描述了这些测试阶段和开发过程期间各阶 

对软件测试的认识有更进一步的提高。 

1软件测试简介 

1.1软件测试的概念 

段的对应关系:1)单元测试的主要目的是针对编码过程中 

可能存在的各种错误,例如用户输人验证过程中的边界值 

的错误。2)集成测试主要目的是针对详细设计中可能存在 

的问题,尤其是检查各单元与其他程序部分之间的接口上 

可能存在的错误。3)系统测试主要针对概要设计,检查了 

系统作为一个整体是否有效地得到运行,例如在产品设置 

软件测试是为了发现程序的错误而执行程序的过程 

(Myers《软件测试的艺术》,1979)。软件测试是使用人工或 

自动手段来运行或测定某个系统的过程,其目的在于检验 

它是否满足规定的需求或是弄清预期结果与实际结果之 

中是否达到了预期的高性能。4)验收测试通常由业务专家 

和用户进行,以确认产品能真正符合用户业务上的需要。 

1.3软件测试的分类 

从不同的角度出发,软件测试可以划分为不同的分 

类。从是否关心软件内部结构和具体实现的角度划分分 

为:白盒测试;黑盒测试;从是否执行程序的角度有:静态 

问的差别。它目前的状况是:1)软件测试的实践性大于理 

论性。2)软件测试理论体系尚不成熟。3)软件测试工具尚 

不成熟。4)软件测试效果对于个人的依赖性比较大。 

1.2软件测试与软件开发阶段的关系 

如模型图中所示,左边下降的是开发过程各个阶段, 

与此相对应的是右边上升的部分,即各测试过程的各个阶 

测试;动态测试;从软件开发的过程按阶段划分有:单元测 

试;集成测试;系统测试;验收测试;回归测试。 

1.4软件测试的目的、意义 

段,左边每个开发活动都有右边的测试活动相对应。因此, 

v模型主要向 

我们传递了如 

下信息:需求、 

功能、设计和 

编码的开发活 

软件测试是保证软件质量的重要活动,它贯穿于整个 

软件开发生命周期,是软件项目实施的不可缺少的环节。 

软件测试的主要目的有:1)为了寻找错误,并尽可能为修 

正错误提供更多的信息。2)为了证明软件有错误,而不证 

明软件没有错误。3)一个好的测试用例是在于它能发现至 

今未发现的错误。4)一个成功的测试是发现了至今未发现 

[二二西西 二二][二 垂垂 动随时问而进 

图1软件测试和软件开发的关系(v型模型)行,而相应的 

收稿日期:2006—12—26 

作者简介:张治国(1979一),男,山东临沂人,枣庄学院教师。 

103 

维普资讯

的错误的测试。换言之,测试的目的是想以最少的时间和 

人力,系统地找出软件中潜在的各种错误和缺陷。 

2软件测试认识的误区 

现在,由于国内软件项目过程不规范,对于软件测试 

的重要性、测试方法和流程等还存在很多错误的认识,以 

下就是大家常犯的几个认识误区: 

2.1整体认识上重开发而轻测试 

重开发而轻测试是软件开发中颇为普遍的一种现象。 

有研究数据显示,国外软件开发机构40%的工作量花在软 

件测试上,软件测试费用占软件项目总费用的30%一50%。 

而根据对国际著名IT企业的统计,它们的软件测试费用占 

整个软件工程所有研发费用的50%以上。对测试的重视更 

体现在人员的配置上:微软在开发Windows2000产品的过 

程中,项目经理约占250人,开发人员约为1700多人,但 

其内部的测试人员就多达3200人。 

只有整个业界,上从管理层下到具体的测试人员,都 

真正地从认识上重视软件测试,才有可能建立起规范的测 

试体系,软件产品的质量也才能得到保证。 

2.2软件开发完成后进行软件测试 

人们一般认为软件项目要经过以下几个阶段:需求分 

析,概要设计,详细设计,软件编码,软件测试,软件发布。 

据此,认为软件测试只是软件编码后的一个过程。这是不 

了解软件测试周期的错误认识。 

软件测试是一个系列过程活动包括软件测试,需求分 

析,测试计划设计,测试用例设计,执行测试。因此,软件测 

试贯穿于软件项目的整个生命过程。在软件项目的每一个 

阶段都要进行不同目的和内容的测试活动,以保证各个阶 

段的正确性。软件测试的对象不仅仅是软件代码,还包括 

软件需求文档和设计文档。软件开发与软件测试应该是交 

互进行的,例如,单元编码需要单元测试,模块组合阶段需 

要集成测试。如果等到软件编码结束后才进行测试,那么, 

测试的时间将会很短,测试的覆盖面将很不全面,测试的 

效果也将大打折扣,更严重的是如果此时发现了软件需求 

阶段或概要设计阶段的错误,如果要修复该类错误,将会 

耗费大量的时问和人力。 

. 

0.2 

《_鳓酷 

貅盼 

图 软件测试系列活动修复所需成本 

设 

2 

测 

2.3软件测试是为了证明软件的正确性 

测试无法证明软件是正确的,只能证明软件无法按照 

既定的规格和标准执行,测试的目的是尽可能地发现错 

误。因此,测试的目的是证伪而不是证真。事实上,要证明 

程序的正确性是不可能的,一个大型的集成化的软件系统 

不能被穷尽测试以遍历其每条路径,即使是遍历了所有的 

路径,错误也仍有可能隐藏。做测试的目的只是为了尽可 

104 

能地发现错误。 

2.4软件测试是软件开发的敌人 

测试人员和开发人员经常无法有效地一起工作。这一 

方面是由于双方的工作性质不同,开发的1]:作是构建系 

统,而测试的工作是为系统挑错误;另一方面也可能是因 

为管理原因造成了测试和开发之问的矛盾。其实,开发和 

测试作为一个整体都是服务于产品,都要为产品的质量负 

责。从这一点来讲,开发和测试的利益是一致的。因此测试 

应该是开发的朋友,而不是开发的敌人。 

2.5所有软件缺陷都可以修复 

在软件测试中也不是所有的软件缺陷都能修复。但 

是,这并不意味着软件测试未达到目的。事实上,也不需要 

对所有的软件缺陷进行修复,其原因是多方面的:1)没有 

足够的时间,任何一个项目的开发都有一定的时间限制, 

在进度压力下要修复所有软件缺陷常常是难以实现的。2) 

有些看起来的缺陷其实并不算真正的软件缺陷。3)修复的 

风险太大,软件本身是脆弱的,修复一个软件缺陷可能会 

导致其他软件缺陷出现。在紧迫的产品发布进度压力之 

下,修改软件将冒很大的风险。4)不值得修复,不常出现的 

软件缺陷和在不常用功能中出现的软件缺陷可以放过,用 

户有办法预防或避免的软件缺陷通常也不用修复,这些要 

归结为商业风险决策。 

2.6项目进度吃紧时少作测试。时间富裕时多做测试 

个软件项目的顺利实现需要有合理的项目进度计 

划,其中包括合理的测试计划,对项目实施过程中的任何 

问题,都要有风险分析和相应的对策,不要因为开发进度 

的延期而简单的缩短测试时问、人力和资源。因为缩短测 

试时问带来的测试不完整,对项目质量的下降引起的潜在 

风险,往往造成更大的浪费。克服这种现象的最好办法是 

加强软件过程的计划和控制,包括软件测试计划、测试设 

计、测试执行、测试度量和测试控制。 

2.7软件发布后如果发现质量问题,那是软件测试人员 

的错 

有不少企业也认为软件测试确实很重要,于是就把程 

序给软件测试公司进行测试。他们认为如果测完通过了, 

用户就不应该再提出问题了,如果最终用户提出了问题, 

则是软件测试公司的错,事实上,这种认识是错误的,这很 

打击软件测试人员的积极性。软件中的错误可能来自软件 

项目中的各个环节,软件测试只能确认软件存在错误,不 

能保证软件没有错误,因为从根本上讲,软件测试不可能 

发现全部的错误。 

结论 一。一 

测试是用来保证软件开发过程的高效性,以及保证开 

发出来的软件产品的高质量和可用性的。随着市场对软件 

质量的不断提高,软件测试将变得越来越重要,相应的软 

件测试人员的地位和待遇将会逐渐提高。软件测试将会成 

为一个具有很大发展前景的行业,软件测试大有前途,市 

场需要更多具有丰富测试技术和管理经验的测试人员。 

本文标签: 测试软件测试软件错误过程