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软件发布后如果发现质量问题,那是软件测试人员
的错
有不少企业也认为软件测试确实很重要,于是就把程
序给软件测试公司进行测试。他们认为如果测完通过了,
用户就不应该再提出问题了,如果最终用户提出了问题,
则是软件测试公司的错,事实上,这种认识是错误的,这很
打击软件测试人员的积极性。软件中的错误可能来自软件
项目中的各个环节,软件测试只能确认软件存在错误,不
能保证软件没有错误,因为从根本上讲,软件测试不可能
发现全部的错误。
3
结论 一。一
测试是用来保证软件开发过程的高效性,以及保证开
发出来的软件产品的高质量和可用性的。随着市场对软件
质量的不断提高,软件测试将变得越来越重要,相应的软
件测试人员的地位和待遇将会逐渐提高。软件测试将会成
为一个具有很大发展前景的行业,软件测试大有前途,市
场需要更多具有丰富测试技术和管理经验的测试人员。
版权声明:本文标题:软件测试简介及其常见认识误区 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1721260243a868540.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论