软件测试

点赞:31603 浏览:152591 近期更新时间:2024-01-22 作者:网友分享原创网站原创

摘 要:软件测试是软件质量保证的一种重要手段,它是软件开发过程的重要组成部分,测试过程及测试方法是灵活多变的,没有固定可言,该文主要讲述了软件测试的概念,测试技术的方法以及目前软件测试的现状及所面临的挑战.

关 键 词:软件测试;测试概念;软件测试现状;挑战

中图分类号:TP311文献标识码:A文章编号:1009-3044(2014)02-0320-02

近年来,信息技术的飞速发展,使得软件产品应用到社会的各各行业.随着人类对计算机应用的逐步深入,软件质量的要求也逐步提高,从而软件测试越来越重要.虽然国内软件测试起步叫较晚,但也越来越被人们重视,据有关资料显示,软件测试费用相当于软件开发总费用的45%左右,对于一些较高要求的软件,其测试费用很有可能是整个软件项目开发所有费用的3.~5倍,当然随着软件规模的日益增大,测试问题也日益突出.软件最终是否为人所用,没有经过测试的软件产品,你就无法知晓它是否满足用户的需求,有缺陷的软件在极端情况下可能会导致用户财产生命安全.

1软件测试的概述

软件测试是软件质量的保证,是使用自动化工具或人工来运行系统程序的过程,进而来发现现所运行得到的结果和产品要求的条件之间的差别,并以此来评价.通俗的讲,测试的目的是为了发现软件中存在的错误,同时对软件质量进行度量和评价,而不是证明该软件是成功的,没有错误的软件世间难求.软件测试要以用户需求至上为基本原则,通过用最少的人力、物力、财力和时间找出软件中的各种错误与缺陷,并且通过进一步改正这些错误和缺陷来提高软件的质量.既然软件测试是人为的,因此就不能至善至美,也不可能穷尽测试,软件测试不可能揭示所有的缺陷.其实换一种说法,我们可以把测试过程看作是对软件质量的“探索”过程,这个探索不是“盲人摸象”的过程,它有一个基线即所有的测试都应该追溯到用户需求.

2基于测试技术的测试方法

传统的人为测试是在编码阶段,甚至是在编码后都是错误的.需求分析,概要设计,详细设计及程序编码实现等各阶段所得的文档都是软件测试的对象,所以说软件测试是贯穿于整个软件定义期和开发期间的,从技术上划分为黑盒测试,白盒测试及灰盒测试.

2.1白盒测试

它是基于源程序或代码内部逻辑结构来设计测试用例而进行的测试.它相当于一个打开的盒子,测试人员可以依据所看到了解的代码结构来设计测试用例.白盒测试分为两种,一种静态一种动态.静态的方法就是直接检查只要按一定步骤进行,包括桌面检查、代码审查等.这种方法一般是由有经验的测试人员做,只是初步大致的来检查系统中存在的错误.动态的方法就必须要生成测试用例来运行程序发现错误,包括有基本路径测试、条件测试数据流测试等.白盒测试一般由有经验的软件测试人员和开发人员进行,因为要需要了解产品的内部工作,关注程序的结构和内部逻辑.

2.2黑盒测试


它是相对于白盒测试而言,它是基于产品的需求和功能性而不是基于系统的内部设计和代码的任何知识,通过软件的外部表现来发现其缺陷和错误.同样可以把黑盒测试的对象看作是一个封闭的黑盒子,测试人员要根据规格说明在不考虑其程序内部结构和和处理过程,以用户视角进行的测试.黑盒测试是配合白盒测试发现其他错误,它并不是白盒测试的替代品.黑盒测试试图发现的错误主要有:系统功能对不对或者有没有遗漏、界面错误、数据结构或外部数据访问是否错误、性能错误以及初始化和终止错误.所以说一般黑盒测试主要在测试后期执行,而白盒测试一般在早期执行.常用的黑盒技术有边界值分析、因果测试、等价划分等.

2.3灰盒测试

灰盒测试是介于白盒测试和黑盒测试间的一种有效的软件测试技术,结合了是两种测试的有点,它即关注与程序的内部高层逻辑结构,也关注与程序运行时的外部得表现,然而这种关注不需要像白盒那样详细、完整,仅是通过一些表面的现象、事件、标志来判断其内部的运行状态,有时候输出是正确的,但内部实际是错误的,这种情况很常见,如果每次都是通过白盒测试进行操作,结果效率会大大降低,因此采取灰盒测试是一种有效的补救方法.

3软件测试现状

就国际而言,国际的软件测试领域已基本成熟,在软件业比较发达的国家,无论从投入的人力和时间上看,软件测试都受到了公司的极大重视,他们有严格的测试工作标准和范围规定,软件测试被公司认为不可或缺的.已美国为例,据说美国软件测试市场已作为软件产业中的一个独特市场,不仅是软件开发企业还是设有软件开发部门的公司,软件测试单位的设置都是必不可少的,其中软件测试人员的数量更是占软件开发工程师的75%左右.软,每一个开发人员都会配备一名测试人员,也就是说开发人员和测试人员的比例是1:1,并且这些测试人员的水平是很高的,往往负责软件测试质量的质量保证经理的职位和软件开发经理是平行的.美国几乎垄断了全球的软件市场,终其原因,当然是很多发面的综合因素,但更重要的一点的是当今美国的信息化水平非常高,人们对产品的质量更高,残酷的竞争更迫使各企业在产品质量方面加大投入,一定要在产品出厂前把质量把关好,美国的软件工厂概念已经完全形成,已CMM为标志的适应大规模生产的软件流程管理体系已经非常完备,使得软件行业真正成为制造业.

就国内而言,国内的软件市场才刚刚起步,虽然国家对软件业给了很多的鼓励政策,软件业在国内也有很大的发展,但是多数软件公司还是注重代码开发,而忽略代码质量,忽视了测试在整个软件工程项目的重要性,认为测试只是开发的附属品,即使有公司认识到测试的重要性但也是停留在认识阶段,只是做做简单的黑盒测试,功能性测试等.为什么国内的软件市场的表现令人担忧呢?首先很多人认为国内的产品大多数是基于互联网的,软件大部分是在怎么写作器端的,更新的成本大幅降低了,可以一味的借助网络更新,在使用中发现错误然后去弥补.即使有一些已经成规模、有一定的研发的大企业,也没有一套完整的测试流程体系,他们可能花费大量的人力、物力来通过CMM,ISO的认证,却不能踏实的做好测试,在他们眼里,认证才是公认的公司实力的体现,测试则只是一个可有可无的过程.说到底这是对测试重要性的理解还不够透彻.另一方面费用问题也较突出,开发方在支付软件开发费用后,就不愿意再为软件测试支付费用而增加新的成本,这其中也包含了测试工具的,有些软件公司即使他们有那个心也没那个力,昂贵的测试工具会立即扼杀他们抓测试的信心,即使有的项目有意委托第三方测试,可是开发方也会考虑到需要提供源代码,担心知识产权受到侵犯.软件公司较为缺乏专业测试力量也是重要原因之一,严格来说,专业的测试人员要懂的技术甚至比开发的要高的多,这又要追溯到对测试的态度观念问题.总的来说,,技术和企业愿望是目前测试发展缓慢的原因.4挑战

诚然,,技术和企业愿望是目前国内测试走的很难的原因,当今快速发展的企业信息化进程导致软件测试面临着诸多挑战,产品的多样性,复杂化使得软件测试在技术上面临着挑战.随着复杂的分布式应用技术的快速发展,电子商务应用的部署结构日益复杂,所涉及的协议和接口标准日益增多,对应用部署的性能评价要求也越来越严格,这就导致了测试的复杂性增加了,同时迫于市场的压力,产品开发周期变的越来越短,应用系统更新、升级越来越频繁,在这种情况下必须特别关注整个应用的完整性和可靠性.另一方面的挑战来自软件测试工程师的素质.测试团队核心人物的人数可能因为产品的的测试组织机构不同而有所不同,测试工程师的综合素质体现在:责任心、综合技术水平、学习和解决问题的能力,还有对软件业发展趋势的了解.

5总结

虽然中国的测试领域才刚刚开始,我们还有很多东西要学,可是该如何推动我们的软件测试业,不是靠你和我,而是靠全名总动员,树立正确的软件测试观,大家要培养这个意识,并把这个意识贯穿在研发的全过程中,将软件项目管理和软件测试结合起来,使得软件测试业不断发展和成熟,总有一天中国的软件质量会在世界上有属于自己的一席之地的.

#91;6]毕波.嵌入式Web怎么写作器的远程监控系统的实现[J].重庆职业技术学院学报,2004,13(2):138-140.

[7]毛志雄.软件测试理论与实践[M].北京:中国铁道出版社,2008.

[8]贺平.软件测试教程[M].北京:电子工业出版社,2007.

[9]佟伟光.软件测试技术[M].北京:人民邮电出版社,2005.